aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.target/aarch64/aapcs64/test_16.c
blob: 1aa9725fd64fae189c55f1893693eaedbc6c9f07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/* 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