[RFC/RFA] MIPS extract_return_value

Michael Snyder msnyder@redhat.com
Mon Jun 7 19:24:00 GMT 2004

Andrew Cagney wrote:
>> Hey Andrew, Daniel,
>> I encountered another problem with 32/64 bit mips.  Don't know if this
>> is the right way to fix it, but it illustrates it (and fixes several
>> hundred failures).
>> The problem is that extract_return_value and store_return_value both
>> call return_value_location, but then one of them uses the raw register
>> and the other uses the cooked register (which are not the same size).
>> So the offset into the register cache, computed by
>> return_value_location, has to be wrong for one of them.
> The underlying problem here is that eabi (32 and 64) and o64 still use:
>       set_gdbarch_deprecated_store_return_value (gdbarch,
>       set_gdbarch_deprecated_extract_return_value (gdbarch,
> There should instead be separate eabi and o64 return_value methods (see 
>  mips_n32n64_return_value for an example).
> If this is done the return/finish code will really be fixed (and as a 
> side effect return_value_location will be eliminated).  Can that be done?

Obviously this is the correct thing to do, but it requires more
investment than I have to give in the foreseeable future.

More information about the Gdb-patches mailing list