PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / interrupt-redzone-1.c
blob10098848c506007c5ff3dcafd41df44233ddcdc5
1 /* { dg-do compile { target { ! ia32 } } } */
2 /* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mred-zone" } */
4 void
5 __attribute__((interrupt))
6 fn (void *frame)
8 /* No need to adjust stack if less than 128 bytes are used on stack
9 with a 128-byte red zone. */
10 long long int i0;
11 long long int i1;
12 long long int i2;
13 long long int i3;
14 long long int i4;
15 long long int i5;
16 long long int i6;
17 long long int i7;
18 long long int i8;
19 long long int i9;
20 long long int i10;
21 long long int i11;
22 long long int i12;
23 long long int i13;
24 asm ("# %0, %1, %2, %3, %4, %5, %6, %7"
25 : "=m" (i0), "=m" (i1), "=m" (i2), "=m" (i3),
26 "=m" (i4), "=m" (i5), "=m" (i6), "=m" (i7),
27 "=m" (i8), "=m" (i9), "=m" (i10), "=m" (i11),
28 "=m" (i12), "=m" (i13));
31 /* { dg-final { scan-assembler-not "(sub|add)(l|q)\[\\t \]*\\$\[0-9\]*,\[\\t \]*%\[re\]?sp" } } */
32 /* { dg-final { scan-assembler-not "\tcld" } } */