blob: 1aa9725fd64fae189c55f1893693eaedbc6c9f07 [file] [log] [blame]
/* 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