Imported Upstream version 4.8.1
[platform/upstream/gcc48.git] / gcc / testsuite / gcc.target / aarch64 / aapcs64 / test_1.c
1 /* Test AAPCS64 layout */
2
3 /* C.7  If the argument is an Integral Type, the size of the argument is
4         less than or equal to 8 bytes and the NGRN is less than 8, the
5         argument is copied to the least significant bits in x[NGRN].  The
6         NGRN is incremented by one.  The argument has now been allocated.  */
7
8 /* { dg-do run { target aarch64*-*-* } } */
9
10 #ifndef IN_FRAMEWORK
11 #define TESTFILE "test_1.c"
12 /* TODO: review if we need this */
13 #define RUNTIME_ENDIANNESS_CHECK
14 #include "abitest.h"
15 #else
16   ARG(int, 4, W0)
17   ARG(double, 4.0, D0)
18   ARG(int, 3, W1)
19   /* TODO: review the way of memcpy char, short, etc.  */
20 #ifndef __AAPCS64_BIG_ENDIAN__
21   ARG(char, 0xEF, X2)
22   ARG(short, 0xBEEF, X3)
23   ARG(int, 0xDEADBEEF, X4)
24 #else
25   /* TODO: need the model/qemu to be big-endian as well  */
26   ARG(char, 0xEF, X2+7)
27   ARG(short, 0xBEEF, X3+6)
28   ARG(int, 0xDEADBEEF, X4+4)
29 #endif
30   LAST_ARG(long long, 0xDEADBEEFCAFEBABELL, X5)
31 #endif