PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.target / ia64 / pr48496.c
blob2548b0a551ffc5bfbd1f60264e6fae77c86aa49a
1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
4 typedef unsigned int UINT64 __attribute__((__mode__(__DI__)));
6 typedef struct
8 UINT64 x[2] __attribute__((aligned(16)));
9 } fpreg;
11 struct ia64_args
13 fpreg fp_regs[8];
14 UINT64 gp_regs[8];
17 void
18 ffi_call(long i, long gpcount, long fpcount, void **avalue)
20 struct ia64_args *stack;
21 stack = __builtin_alloca (64);
22 asm ("stf.spill %0 = %1%P0" : "=m" (*&stack->fp_regs[fpcount++])
23 : "f"(*(double *)avalue[i]));
24 stack->gp_regs[gpcount++] = *(UINT64 *)avalue[i];