[Ping][PATCH 0/4] Aarch64: Correctly support args passed in float registers.

Alan Hayward Alan.Hayward@arm.com
Tue Aug 28 09:39:00 GMT 2018


Ping.


> On 20 Aug 2018, at 10:29, Alan Hayward <Alan.Hayward@arm.com> wrote:
> 
> GDB currently does not adhere to the AAPCS spec when passing structures that
> contain float arguments. It works for simple structures but does not correctly
> detect nested structures.
> This is shown by the failing tests in the recently added
> infcall-nested-structs.exp. See PR gdb/22943.
> 
> Patch 1 contains a new function for correctly detecting float args.
> I wrote this by taking the equivalent function in GCC and modifying it until
> it fit into GDB, then simplified and cleaned up.
> Patches 2 and 3 then use this function.
> 
> Patch 4 extends the infcall-nested-structs test to cover structures with 4
> and 5 fields - 4 fields is the maximum number of fields that can be passed
> via float args.
> 
> For the full spec see:
> http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042f/IHI0042F_aapcs.pdf
> 
> 
> Alan Hayward (4):
>  Aarch64: Add function to detect args passed in float registers
>  Aarch64: Float register detection for _push_dummy_call
>  Aarch64: Float register detection for return values.
>  infcall-nested-structs: Test up to five fields
> 
> gdb/aarch64-tdep.c                                | 444 ++++++++++++----------
> gdb/testsuite/gdb.base/infcall-nested-structs.c   | 168 +++++---
> gdb/testsuite/gdb.base/infcall-nested-structs.exp |   5 +-
> 3 files changed, 366 insertions(+), 251 deletions(-)
> 
> -- 
> 2.15.2 (Apple Git-101.1)
> 



More information about the Gdb-patches mailing list