[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