/* Test AAPCS64 layout */ /* C.7 If the argument is an Integral Type, the size of the argument is less than or equal to 8 bytes and the NGRN is less than 8, the argument is copied to the least significant bits in x[NGRN]. The NGRN is incremented by one. The argument has now been allocated. */ /* { dg-do run { target aarch64*-*-* } } */ #ifndef IN_FRAMEWORK #define TESTFILE "test_1.c" /* TODO: review if we need this */ #define RUNTIME_ENDIANNESS_CHECK #include "abitest.h" #else ARG(int, 4, W0) ARG(double, 4.0, D0) ARG(int, 3, W1) /* TODO: review the way of memcpy char, short, etc. */ #ifndef __AAPCS64_BIG_ENDIAN__ ARG(char, 0xEF, X2) ARG(short, 0xBEEF, X3) ARG(int, 0xDEADBEEF, X4) #else /* TODO: need the model/qemu to be big-endian as well */ ARG(char, 0xEF, X2+7) ARG(short, 0xBEEF, X3+6) ARG(int, 0xDEADBEEF, X4+4) #endif LAST_ARG(long long, 0xDEADBEEFCAFEBABELL, X5) #endif