]>
git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_2048.c
1 /* { dg-do compile } */
2 /* { dg-options "-O -fshrink-wrap -fstack-clash-protection -msve-vector-bits=2048 -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, 256\]
32 ** str x26, \[sp, 272\]
37 ** ldp x24, x25, \[sp, 256\]
38 ** ldr x26, \[sp, 272\]
46 asm volatile ("" ::: "z16", "x24", "x25", "x26");
54 ** stp x24, x25, \[sp, 256\]
55 ** str x26, \[sp, 272\]
60 ** ldp x24, x25, \[sp, 256\]
61 ** ldr x26, \[sp, 272\]
69 asm volatile ("" :: "r" (x
) : "z16", "x24", "x25", "x26");
88 asm volatile ("" ::: "z16");
89 return svptrue_b16 ();
95 ** stp x24, x25, \[sp, 256\]
96 ** str x26, \[sp, 272\]
101 ** ldp x24, x25, \[sp, 256\]
102 ** ldr x26, \[sp, 272\]
109 volatile svint32_t b
;
111 asm volatile ("" ::: "z16", "x24", "x25", "x26");
112 return svptrue_b16 ();
117 ** stp x29, x30, \[sp, -16\]!
122 ** ptrue p0\.b, vl256
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, 256\]
142 ** add x29, sp, #?256
146 ** ptrue p0\.b, vl256
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, 256\]
169 ** add x29, sp, #?256
170 ** stp x24, x25, \[sp, 272\]
171 ** str x26, \[sp, 288\]
175 ** ptrue p0\.b, vl256
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, 256\]
200 ** add x29, sp, #?256
204 ** ptrue p0\.b, vl256
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, 256\]
227 ** add x29, sp, #?256
228 ** stp x24, x25, \[sp, 272\]
229 ** str x26, \[sp, 288\]
233 ** ptrue p0\.b, vl256
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 ** str xzr, \[sp, 1024\]
260 ** stp x29, x30, \[sp, 256\]
261 ** add x29, sp, #?256
262 ** stp x24, x25, \[sp, 272\]
263 ** str x26, \[sp, 288\]
267 ** ptrue p0\.b, vl256
271 ** ldp x24, x25, \[sp, 16\]
272 ** ldr x26, \[sp, 32\]
273 ** ldp x29, x30, \[sp\]
274 ** add sp, sp, #?3008
275 ** add sp, sp, #?126976
281 volatile int x
[0x7ee4];
282 take_stack_args (x
, __builtin_alloca (n
), 1, 2, 3, 4, 5, 6, 7);
283 asm volatile ("" ::: "z16", "x24", "x25", "x26");
284 return svptrue_b8 ();