/* Test AAPCS layout */ /* C.5 If the argument is a Half- or Single- precision Floating-point type, then the size of the argument is set to 8 bytes. The effect is as if the argument had been copied to the least significant bits of a 64-bit register and the remaining bits filled with unspecified values. */ /* TODO: add the check of half-precision floating-point when it is supported by the A64 GCC. */ /* { dg-do run { target aarch64*-*-* } } */ #ifndef IN_FRAMEWORK #define VFP #define TESTFILE "test_16.c" #include "abitest.h" #else ARG(float, 1.0, S0) ARG(float, 2.0, S1) ARG(float, 3.0, S2) ARG(float, 4.0, S3) ARG(float, 5.0, S4) ARG(float, 6.0, S5) ARG(float, 7.0, S6) ARG(float, 8.0, S7) #ifndef __AAPCS64_BIG_ENDIAN__ ARG(float, 9.0, STACK) LAST_ARG(float, 10.0, STACK+8) #else ARG(float, 9.0, STACK+4) LAST_ARG(float, 10.0, STACK+12) #endif #endif