]>
git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_256.c
1 /* { dg-do compile } */
2 /* { dg-options "-O -fshrink-wrap -fstack-clash-protection -msve-vector-bits=256 -g" } */
3 /* { dg-final { check-function-bodies "**" "" } } */
5 #pragma GCC aarch64 "arm_sve.h"
7 svbool_t
take_stack_args (volatile void *, void *, int, int, int,
24 asm volatile ("" ::: "z16");
31 ** stp x24, x25, \[sp, 32\]
32 ** str x26, \[sp, 48\]
37 ** ldp x24, x25, \[sp, 32\]
38 ** ldr x26, \[sp, 48\]
46 asm volatile ("" ::: "z16", "x24", "x25", "x26");
54 ** stp x24, x25, \[sp, 32\]
55 ** str x26, \[sp, 48\]
60 ** ldp x24, x25, \[sp, 32\]
61 ** ldr x26, \[sp, 48\]
69 asm volatile ("" :: "r" (x
) : "z16", "x24", "x25", "x26");
88 asm volatile ("" ::: "z16");
89 return svptrue_b16 ();
95 ** stp x24, x25, \[sp, 32\]
96 ** str x26, \[sp, 48\]
101 ** ldp x24, x25, \[sp, 32\]
102 ** ldr x26, \[sp, 48\]
109 volatile svint32_t b
;
111 asm volatile ("" ::: "z16", "x24", "x25", "x26");
112 return svptrue_b16 ();
117 ** stp x29, x30, \[sp, -16\]!
126 ** ldp x29, x30, \[sp\], 16
132 take_stack_args (0, 0, 1, 2, 3, 4, 5, 6, 7);
133 asm volatile ("" ::: "z16");
134 return svptrue_b8 ();
141 ** stp x29, x30, \[sp, 32\]
150 ** ldp x29, x30, \[sp\]
158 volatile int x
[1024];
159 take_stack_args (x
, 0, 1, 2, 3, 4, 5, 6, 7);
160 asm volatile ("" ::: "z16");
161 return svptrue_b8 ();
168 ** stp x29, x30, \[sp, 32\]
170 ** stp x24, x25, \[sp, 48\]
171 ** str x26, \[sp, 64\]
179 ** ldp x24, x25, \[sp, 16\]
180 ** ldr x26, \[sp, 32\]
181 ** ldp x29, x30, \[sp\]
189 volatile int x
[1024];
190 take_stack_args (x
, 0, 1, 2, 3, 4, 5, 6, 7);
191 asm volatile ("" ::: "z16", "x24", "x25", "x26");
192 return svptrue_b8 ();
199 ** stp x29, x30, \[sp, 32\]
208 ** ldp x29, x30, \[sp\]
216 volatile int x
[1024];
217 take_stack_args (x
, __builtin_alloca (n
), 1, 2, 3, 4, 5, 6, 7);
218 asm volatile ("" ::: "z16");
219 return svptrue_b8 ();
226 ** stp x29, x30, \[sp, 32\]
228 ** stp x24, x25, \[sp, 48\]
229 ** str x26, \[sp, 64\]
237 ** ldp x24, x25, \[sp, 16\]
238 ** ldr x26, \[sp, 32\]
239 ** ldp x29, x30, \[sp\]
247 volatile int x
[1024];
248 take_stack_args (x
, __builtin_alloca (n
), 1, 2, 3, 4, 5, 6, 7);
249 asm volatile ("" ::: "z16", "x24", "x25", "x26");
250 return svptrue_b8 ();
255 ** sub sp, sp, #65536
256 ** str xzr, \[sp, 1024\]
259 ** stp x29, x30, \[sp, 32\]
261 ** stp x24, x25, \[sp, 48\]
262 ** str x26, \[sp, 64\]
270 ** ldp x24, x25, \[sp, 16\]
271 ** ldr x26, \[sp, 32\]
272 ** ldp x29, x30, \[sp\]
273 ** add sp, sp, #?3008
274 ** add sp, sp, #?126976
280 volatile int x
[0x7ee4];
281 take_stack_args (x
, __builtin_alloca (n
), 1, 2, 3, 4, 5, 6, 7);
282 asm volatile ("" ::: "z16", "x24", "x25", "x26");
283 return svptrue_b8 ();