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]
Other format: [Raw text]

Re: [RFA] mips-o64-extract-return-value


Andrew Cagney wrote:
Hi Andrew,

This change fixes 100s of FAILs for mips64-elf, 'cause gdb can't
find the function's return value.  It follows some work that you
were apparently doing w.r.t. the mips internal register representation.

I suspect that the same thing needs to be done for mips_eabi_extract...,
but I haven't tested that.  What do you think?


Ok.

Amended and committed as follows:


2003-11-25  Michael Snyder  <msnyder@redhat.com>

        * mips-tdep.c (mips_o64_extract_return_value): Correct for
	NUM_REGS (see changes 2003-06-21).
	(mips_eabi_extract_return_value): Ditto.

Index: mips-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mips-tdep.c,v
retrieving revision 1.261
diff -p -r1.261 mips-tdep.c
*** mips-tdep.c	23 Nov 2003 21:49:12 -0000	1.261
--- mips-tdep.c	25 Nov 2003 22:14:08 -0000
*************** mips_eabi_extract_return_value (struct t
*** 4696,4707 ****
    return_value_location (valtype, &hi, &lo);
  
    memcpy (valbuf + lo.buf_offset,
! 	  regbuf + DEPRECATED_REGISTER_BYTE (lo.reg) + lo.reg_offset,
  	  lo.len);
  
    if (hi.len > 0)
      memcpy (valbuf + hi.buf_offset,
! 	    regbuf + DEPRECATED_REGISTER_BYTE (hi.reg) + hi.reg_offset,
  	    hi.len);
  }
  
--- 4696,4707 ----
    return_value_location (valtype, &hi, &lo);
  
    memcpy (valbuf + lo.buf_offset,
! 	  regbuf + DEPRECATED_REGISTER_BYTE (NUM_REGS + lo.reg) + lo.reg_offset,
  	  lo.len);
  
    if (hi.len > 0)
      memcpy (valbuf + hi.buf_offset,
! 	    regbuf + DEPRECATED_REGISTER_BYTE (NUM_REGS + hi.reg) + hi.reg_offset,
  	    hi.len);
  }
  
*************** mips_o64_extract_return_value (struct ty
*** 4715,4726 ****
    return_value_location (valtype, &hi, &lo);
  
    memcpy (valbuf + lo.buf_offset,
! 	  regbuf + DEPRECATED_REGISTER_BYTE (lo.reg) + lo.reg_offset,
  	  lo.len);
  
    if (hi.len > 0)
      memcpy (valbuf + hi.buf_offset,
! 	    regbuf + DEPRECATED_REGISTER_BYTE (hi.reg) + hi.reg_offset,
  	    hi.len);
  }
  
--- 4715,4726 ----
    return_value_location (valtype, &hi, &lo);
  
    memcpy (valbuf + lo.buf_offset,
! 	  regbuf + DEPRECATED_REGISTER_BYTE (NUM_REGS + lo.reg) + lo.reg_offset,
  	  lo.len);
  
    if (hi.len > 0)
      memcpy (valbuf + hi.buf_offset,
! 	    regbuf + DEPRECATED_REGISTER_BYTE (NUM_REGS + hi.reg) + hi.reg_offset,
  	    hi.len);
  }
  

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