Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Alan Hayward <alan.hayward@arm.com>
To: gdb-patches@sourceware.org
Cc: nd@arm.com,	Alan Hayward <alan.hayward@arm.com>
Subject: [PATCH 0/4] Aarch64: Correctly support args passed in float registers.
Date: Mon, 20 Aug 2018 09:29:00 -0000	[thread overview]
Message-ID: <20180820092933.83224-1-alan.hayward@arm.com> (raw)

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)


             reply	other threads:[~2018-08-20  9:29 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-20  9:29 Alan Hayward [this message]
2018-08-20  9:29 ` [PATCH 1/4] Aarch64: Func to detect args passed in float regs Alan Hayward
2018-08-28 15:43   ` Simon Marchi
2018-08-28 15:49     ` Alan Hayward
2018-08-28 16:00       ` Simon Marchi
2018-08-20  9:30 ` [PATCH 4/4] infcall-nested-structs: Test up to five fields Alan Hayward
2018-08-28 16:52   ` Simon Marchi
2018-08-20  9:30 ` [PATCH 3/4] Aarch64: Float register detection for return values Alan Hayward
2018-08-28 16:03   ` Simon Marchi
2018-08-20  9:30 ` [PATCH 2/4] Aarch64: Float register detection for _push_dummy_call Alan Hayward
2018-08-28 15:58   ` Simon Marchi
2018-08-28  9:39 ` [Ping][PATCH 0/4] Aarch64: Correctly support args passed in float registers Alan Hayward

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180820092933.83224-1-alan.hayward@arm.com \
    --to=alan.hayward@arm.com \
    --cc=gdb-patches@sourceware.org \
    --cc=nd@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox