aboutsummaryrefslogtreecommitdiff
path: root/gdb/aarch64-tdep.c
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@arm.com>2022-04-27 16:29:32 +0100
committerChristophe Lyon <christophe.lyon@arm.com>2022-05-24 10:47:29 +0100
commit81657e580045026b3a79f3a8db6fac5e7e5dad66 (patch)
tree936f57875fc1162e3eeb5c90548e85913ad873fd /gdb/aarch64-tdep.c
parenta55dfbb9abeda5255f002ae4445d9c390c3f6025 (diff)
downloadbinutils-81657e580045026b3a79f3a8db6fac5e7e5dad66.zip
binutils-81657e580045026b3a79f3a8db6fac5e7e5dad66.tar.gz
binutils-81657e580045026b3a79f3a8db6fac5e7e5dad66.tar.bz2
AArch64: add support for DFP (Decimal Floating point)
This small patch adds support for TYPE_CODE_DECFLOAT in aapcs_is_vfp_call_or_return_candidate_1 and pass_in_v_vfp_candidate, so that GDB for AArch64 knows how to pass DFP parameters and how to read DFP results when calling a function. Tested on aarch64-linux-gnu, with a GCC with DFP support in the PATH, all of GDB's DFP tests pass.
Diffstat (limited to 'gdb/aarch64-tdep.c')
-rw-r--r--gdb/aarch64-tdep.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c
index e35c083..67a3f96 100644
--- a/gdb/aarch64-tdep.c
+++ b/gdb/aarch64-tdep.c
@@ -1470,6 +1470,7 @@ aapcs_is_vfp_call_or_return_candidate_1 (struct type *type,
switch (type->code ())
{
case TYPE_CODE_FLT:
+ case TYPE_CODE_DECFLOAT:
if (TYPE_LENGTH (type) > 16)
return -1;
@@ -1780,6 +1781,7 @@ pass_in_v_vfp_candidate (struct gdbarch *gdbarch, struct regcache *regcache,
switch (arg_type->code ())
{
case TYPE_CODE_FLT:
+ case TYPE_CODE_DECFLOAT:
return pass_in_v (gdbarch, regcache, info, TYPE_LENGTH (arg_type),
value_contents (arg).data ());
break;