From mboxrd@z Thu Jan 1 00:00:00 1970 From: jkingdon@engr.sgi.com To: gdb-patches@sources.redhat.com Subject: Fix Irix core dumps Date: Fri, 09 Feb 2001 15:23:00 -0000 Message-id: <200102092321.SAA05354@panix3.panix.com> X-SW-Source: 2001-02/msg00161.html 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 * 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