This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Fix Irix core dumps


Reading a core dump on Irix has bit-rotted some time since GDB 4.18
(which works).  The culprit has to do with the size of the floating
point registers (which thus affects all the registers after them in
the registers array).  The enclosed fix does enable GDB to read Irix
core dumps and doesn't look too hideous to me.  But I'd welcome
suggestions if there is a better way.

I also had to make a straightforward fix to bfd/irix-core.c; I'll be
sending that one to the binutils list.

2001-02-09  Jim Kingdon  <jkingdon@engr.sgi.com>

	* mips-tdep.c (mips_register_raw_size): If FP_REGISTER_DOUBLE,
	then floating point registers are 8 bytes.

Index: mips-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mips-tdep.c,v
retrieving revision 1.40
diff -u -r1.40 mips-tdep.c
--- mips-tdep.c	2001/02/08 06:03:53	1.40
+++ mips-tdep.c	2001/02/09 22:59:43
@@ -420,7 +420,15 @@
   if (mips64_transfers_32bit_regs_p)
     return REGISTER_VIRTUAL_SIZE (reg_nr);
   else
-    return MIPS_REGSIZE;
+    {
+      /* For MIPS_ABI_N32 (for example) we need 8 byte floating point
+         registers.  */
+      if (reg_nr >= FP0_REGNUM && reg_nr < FP0_REGNUM+32
+	  && FP_REGISTER_DOUBLE)
+	return 8;
+
+      return MIPS_REGSIZE;
+    }
 }
 
 int


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]