AArch64: add support for DFP (Decimal Floating point)
authorChristophe Lyon <christophe.lyon@arm.com>
Wed, 27 Apr 2022 15:29:32 +0000 (16:29 +0100)
committerChristophe Lyon <christophe.lyon@arm.com>
Tue, 24 May 2022 09:47:29 +0000 (10:47 +0100)
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.

gdb/aarch64-tdep.c

index e35c083454d7432f67fa6b9f72f149fbfaa6c99a..67a3f96e1a7655b82f64547871cc337d2cd97564 100644 (file)
@@ -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;