From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cagney To: jkingdon@engr.sgi.com Cc: gdb-patches@sources.redhat.com Subject: Re: Fix Irix core dumps Date: Mon, 19 Feb 2001 17:08:00 -0000 Message-id: <3A91C2EF.83BB492F@cygnus.com> References: <200102092321.SAA05354@panix3.panix.com> X-SW-Source: 2001-02/msg00396.html jkingdon@engr.sgi.com wrote: > > 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. I'm checking this in (indented slightly different) (just got to wait for a build). I'm pretty sure it will affect GDBs ability to communicate with some obscure remote target (what register_raw_size() returns changed :-/) however, as it was it was certainly wrong. Thanks! Andrew PS: Have I ever mentioned my desire to completly separate remote.c from register_raw_size() and instead have something outside of GDB specifying what a packet looks like? :-) > 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