1  /* Test AAPCS layout */
       2  /* C.5 If the argument is a Half- or Single- precision Floating-point type,
       3     then the size of the argument is set to 8 bytes.  The effect is as if
       4     the argument had been copied to the least significant bits of a 64-bit
       5     register and the remaining bits filled with unspecified values.  */
       6  /* TODO: add the check of half-precision floating-point when it is supported
       7     by the A64 GCC.  */
       8  
       9  /* { dg-do run { target aarch64*-*-* } } */
      10  
      11  #ifndef IN_FRAMEWORK
      12  #define VFP
      13  #define TESTFILE "test_dfp_16.c"
      14  
      15  #include "abitest.h"
      16  #else
      17    ARG(_Decimal32, 1.0df, S0)
      18    ARG(_Decimal32, 2.0df, S1)
      19    ARG(_Decimal32, 3.0df, S2)
      20    ARG(_Decimal32, 4.0df, S3)
      21    ARG(_Decimal32, 5.0df, S4)
      22    ARG(_Decimal32, 6.0df, S5)
      23    ARG(_Decimal32, 7.0df, S6)
      24    ARG(_Decimal32, 8.0df, S7)
      25  #ifndef __AAPCS64_BIG_ENDIAN__
      26    ARG(_Decimal32, 9.0df, STACK)
      27    LAST_ARG(_Decimal32, 10.0df, STACK+8)
      28  #else
      29    ARG(_Decimal32, 9.0df, STACK+4)
      30    LAST_ARG(_Decimal32, 10.0df, STACK+12)
      31  #endif
      32  #endif