|
97 | 97 | # CHECK-NEXT: RET_ReallyLR |
98 | 98 |
|
99 | 99 | # ASM-LABEL: test_allocate_split_sve: |
100 | | -# ASM: .cfi_def_cfa_offset 16 |
101 | | -# ASM-NEXT: .cfi_offset w29, -16 |
102 | | -# ASM: sub sp, sp, #1024 |
103 | | -# ASM: .cfi_def_cfa_offset 1040 |
104 | | -# ASM: .cfi_escape 0x0f, 0x09, 0x8f, 0x90, 0x08, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 1040 + 8 * VG |
105 | | -# ASM: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 2080 + 8 * VG |
106 | | -# ASM: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 2080 + 24 * VG |
| 100 | +# ASM: str x29, [sp, #-16]! |
| 101 | +# ASM-NEXT: .cfi_def_cfa_offset 16 |
| 102 | +# ASM-NEXT: .cfi_offset w29, -16 |
| 103 | +# ASM-NEXT: sub sp, sp, #1024 |
| 104 | +# ASM-NEXT: .cfi_def_cfa_offset 1040 |
| 105 | +# ASM-NEXT: addvl sp, sp, #-1 |
| 106 | +# ASM-NEXT: .cfi_escape 0x0f, 0x09, 0x8f, 0x90, 0x08, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 1040 + 8 * VG |
| 107 | +# ASM-NEXT: sub sp, sp, #1040 |
| 108 | +# ASM-NEXT: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 2080 + 8 * VG |
| 109 | +# ASM-NEXT: addvl sp, sp, #-2 |
| 110 | +# ASM-NEXT: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 2080 + 24 * VG |
107 | 111 | # |
108 | | -# ASM: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 2080 + 8 * VG |
109 | | -# ASM: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x08, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 1056 + 8 * VG |
110 | | -# ASM: .cfi_def_cfa wsp, 1056 |
111 | | -# ASM: .cfi_def_cfa_offset 16 |
112 | | -# ASM: .cfi_def_cfa_offset 0 |
113 | | -# ASM: .cfi_restore w29 |
| 112 | +# ASM: addvl sp, sp, #2 |
| 113 | +# ASM-NEXT: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 2080 + 8 * VG |
| 114 | +# ASM-NEXT: add sp, sp, #1024 |
| 115 | +# ASM-NEXT: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x08, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 1056 + 8 * VG |
| 116 | +# ASM-NEXT: addvl sp, sp, #1 |
| 117 | +# ASM-NEXT: .cfi_def_cfa wsp, 1056 |
| 118 | +# ASM-NEXT: add sp, sp, #1040 |
| 119 | +# ASM-NEXT: .cfi_def_cfa_offset 16 |
| 120 | +# ASM-NEXT: ldr x29, [sp], #16 |
| 121 | +# ASM-NEXT: .cfi_def_cfa_offset 0 |
| 122 | +# ASM-NEXT: .cfi_restore w29 |
114 | 123 |
|
115 | 124 | # UNWINDINFO: DW_CFA_def_cfa_offset: +16 |
116 | 125 | # UNWINDINFO-NEXT: DW_CFA_offset: reg29 -16 |
@@ -206,15 +215,23 @@ body: | |
206 | 215 | # CHECK-NEXT: RET_ReallyLR |
207 | 216 |
|
208 | 217 | # ASM-LABEL: test_allocate_split_sve_realigned |
209 | | -# ASM: .cfi_def_cfa_offset 1040 |
210 | | -# ASM: .cfi_def_cfa w29, 16 |
211 | | -# ASM-NEXT: .cfi_offset w30, -8 |
212 | | -# ASM-NEXT: .cfi_offset w29, -16 |
| 218 | +# ASM: sub sp, sp, #1040 |
| 219 | +# ASM-NEXT: .cfi_def_cfa_offset 1040 |
| 220 | +# ASM-NEXT: str x29, [sp, #1024] |
| 221 | +# ASM-NEXT: str x30, [sp, #1032] |
| 222 | +# ASM-NEXT: add x29, sp, #1024 |
| 223 | +# ASM-NEXT: .cfi_def_cfa w29, 16 |
| 224 | +# ASM-NEXT: .cfi_offset w30, -8 |
| 225 | +# ASM-NEXT: .cfi_offset w29, -16 |
213 | 226 | # |
214 | | -# ASM: .cfi_def_cfa wsp, 1040 |
215 | | -# ASM: .cfi_def_cfa_offset 0 |
216 | | -# ASM-NEXT: .cfi_restore w30 |
217 | | -# ASM-NEXT: .cfi_restore w29 |
| 227 | +# ASM: sub sp, x29, #1024 |
| 228 | +# ASM-NEXT: .cfi_def_cfa wsp, 1040 |
| 229 | +# ASM-NEXT: ldr x30, [sp, #1032] |
| 230 | +# ASM-NEXT: ldr x29, [sp, #1024] |
| 231 | +# ASM-NEXT: add sp, sp, #1040 |
| 232 | +# ASM-NEXT: .cfi_def_cfa_offset 0 |
| 233 | +# ASM-NEXT: .cfi_restore w30 |
| 234 | +# ASM-NEXT: .cfi_restore w29 |
218 | 235 |
|
219 | 236 | # UNWINDINFO: DW_CFA_def_cfa_offset: +1040 |
220 | 237 | # UNWINDINFO: DW_CFA_def_cfa: reg29 +16 |
@@ -283,19 +300,29 @@ body: | |
283 | 300 | # CHECK-NEXT: RET_ReallyLR |
284 | 301 |
|
285 | 302 | # ASM-LABEL: test_address_split_sve |
286 | | -# ASM: .cfi_def_cfa_offset 16 |
287 | | -# ASM-NEXT: .cfi_offset w29, -16 |
288 | | -# ASM: .cfi_def_cfa_offset 1040 |
289 | | -# ASM: .cfi_escape 0x0f, 0x09, 0x8f, 0x90, 0x08, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 1040 + 8 * VG |
290 | | -# ASM: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 2080 + 8 * VG |
291 | | -# ASM: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 2080 + 24 * VG |
| 303 | +# ASM: str x29, [sp, #-16]! |
| 304 | +# ASM-NEXT: .cfi_def_cfa_offset 16 |
| 305 | +# ASM-NEXT: .cfi_offset w29, -16 |
| 306 | +# ASM-NEXT: sub sp, sp, #1024 |
| 307 | +# ASM-NEXT: .cfi_def_cfa_offset 1040 |
| 308 | +# ASM-NEXT: addvl sp, sp, #-1 |
| 309 | +# ASM-NEXT: .cfi_escape 0x0f, 0x09, 0x8f, 0x90, 0x08, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 1040 + 8 * VG |
| 310 | +# ASM-NEXT: sub sp, sp, #1040 |
| 311 | +# ASM-NEXT: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 2080 + 8 * VG |
| 312 | +# ASM-NEXT: addvl sp, sp, #-2 |
| 313 | +# ASM-NEXT: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 2080 + 24 * VG |
292 | 314 | # |
293 | | -# ASM: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 2080 + 8 * VG |
294 | | -# ASM: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x08, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 1056 + 8 * VG |
295 | | -# ASM: .cfi_def_cfa wsp, 1056 |
296 | | -# ASM: .cfi_def_cfa_offset 16 |
297 | | -# ASM: .cfi_def_cfa_offset 0 |
298 | | -# ASM-NEXT: .cfi_restore w29 |
| 315 | +# ASM: addvl sp, sp, #2 |
| 316 | +# ASM-NEXT: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 2080 + 8 * VG |
| 317 | +# ASM-NEXT: add sp, sp, #1024 |
| 318 | +# ASM-NEXT: .cfi_escape 0x0f, 0x09, 0x8f, 0xa0, 0x08, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 1056 + 8 * VG |
| 319 | +# ASM-NEXT: addvl sp, sp, #1 |
| 320 | +# ASM-NEXT: .cfi_def_cfa wsp, 1056 |
| 321 | +# ASM-NEXT: add sp, sp, #1040 |
| 322 | +# ASM-NEXT: .cfi_def_cfa_offset 16 |
| 323 | +# ASM-NEXT: ldr x29, [sp], #16 |
| 324 | +# ASM-NEXT: .cfi_def_cfa_offset 0 |
| 325 | +# ASM-NEXT: .cfi_restore w29 |
299 | 326 |
|
300 | 327 | # UNWINDINFO: DW_CFA_def_cfa_offset: +16 |
301 | 328 | # UNWINDINFO-NEXT: DW_CFA_offset: reg29 -16 |
@@ -381,15 +408,26 @@ body: | |
381 | 408 | # CHECK-NEXT: RET_ReallyLR |
382 | 409 |
|
383 | 410 | # ASM-LABEL: test_address_split_sve_fp |
384 | | -# ASM: .cfi_def_cfa_offset 16 |
385 | | -# ASM: .cfi_def_cfa w29, 16 |
386 | | -# ASM-NEXT: .cfi_offset w30, -8 |
387 | | -# ASM-NEXT: .cfi_offset w29, -16 |
| 411 | +# ASM: stp x29, x30, [sp, #-16]! |
| 412 | +# ASM-NEXT: .cfi_def_cfa_offset 16 |
| 413 | +# ASM-NEXT: mov x29, sp |
| 414 | +# ASM-NEXT: .cfi_def_cfa w29, 16 |
| 415 | +# ASM-NEXT: .cfi_offset w30, -8 |
| 416 | +# ASM-NEXT: .cfi_offset w29, -16 |
| 417 | +# ASM-NEXT: sub sp, sp, #1024 |
| 418 | +# ASM-NEXT: addvl sp, sp, #-1 |
| 419 | +# ASM-NEXT: sub sp, sp, #1040 |
| 420 | +# ASM-NEXT: addvl sp, sp, #-2 |
388 | 421 | # |
389 | | -# ASM: .cfi_def_cfa wsp, 16 |
390 | | -# ASM: .cfi_def_cfa_offset 0 |
391 | | -# ASM-NEXT: .cfi_restore w30 |
392 | | -# ASM-NEXT: .cfi_restore w29 |
| 422 | +# ASM: addvl sp, sp, #2 |
| 423 | +# ASM-NEXT: add sp, sp, #1024 |
| 424 | +# ASM-NEXT: addvl sp, sp, #1 |
| 425 | +# ASM-NEXT: add sp, sp, #1040 |
| 426 | +# ASM-NEXT: .cfi_def_cfa wsp, 16 |
| 427 | +# ASM-NEXT: ldp x29, x30, [sp], #16 |
| 428 | +# ASM-NEXT: .cfi_def_cfa_offset 0 |
| 429 | +# ASM-NEXT: .cfi_restore w30 |
| 430 | +# ASM-NEXT: .cfi_restore w29 |
393 | 431 |
|
394 | 432 | # UNWINDINFO: DW_CFA_def_cfa_offset: +16 |
395 | 433 | # UNWINDINFO: DW_CFA_def_cfa: reg29 +16 |
@@ -471,25 +509,47 @@ body: | |
471 | 509 | # CHECK-NEXT: RET_ReallyLR |
472 | 510 |
|
473 | 511 | # ASM-LABEL: save_restore_ppr_zpr: |
474 | | -# ASM: .cfi_def_cfa_offset 16 |
475 | | -# ASM-NEXT: .cfi_offset w29, -16 |
476 | | -# ASM: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG |
477 | | -# ASM: .cfi_escape 0x0f, 0x09, 0x8f, 0x90, 0x08, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 1040 + 8 * VG |
478 | | -# ASM: .cfi_escape 0x0f, 0x0a, 0x8f, 0x90, 0x08, 0x92, 0x2e, 0x00, 0x11, 0x20, 0x1e, 0x22 // sp + 1040 + 32 * VG |
479 | | -# ASM: .cfi_escape 0x10, 0x48, 0x0b, 0x92, 0x2e, 0x00, 0x11, 0x70, 0x1e, 0x22, 0x11, 0xf0, 0x77, 0x22 // $d8 @ cfa - 16 * VG - 1040 |
480 | | -# ASM-NEXT: .cfi_escape 0x10, 0x49, 0x0b, 0x92, 0x2e, 0x00, 0x11, 0x68, 0x1e, 0x22, 0x11, 0xf0, 0x77, 0x22 // $d9 @ cfa - 24 * VG - 1040 |
481 | | -# ASM-NEXT: .cfi_escape 0x10, 0x4a, 0x0b, 0x92, 0x2e, 0x00, 0x11, 0x60, 0x1e, 0x22, 0x11, 0xf0, 0x77, 0x22 // $d10 @ cfa - 32 * VG - 1040 |
482 | | -# ASM: .cfi_escape 0x0f, 0x0a, 0x8f, 0xb0, 0x10, 0x92, 0x2e, 0x00, 0x11, 0x20, 0x1e, 0x22 // sp + 2096 + 32 * VG |
| 512 | +# ASM: str x29, [sp, #-16]! |
| 513 | +# ASM-NEXT: .cfi_def_cfa_offset 16 |
| 514 | +# ASM-NEXT: .cfi_offset w29, -16 |
| 515 | +# ASM-NEXT: addvl sp, sp, #-1 |
| 516 | +# ASM-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG |
| 517 | +# ASM-NEXT: str p6, [sp, #5, mul vl] |
| 518 | +# ASM-NEXT: str p5, [sp, #6, mul vl] |
| 519 | +# ASM-NEXT: str p4, [sp, #7, mul vl] |
| 520 | +# ASM-NEXT: sub sp, sp, #1024 |
| 521 | +# ASM-NEXT: .cfi_escape 0x0f, 0x09, 0x8f, 0x90, 0x08, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 1040 + 8 * VG |
| 522 | +# ASM-NEXT: addvl sp, sp, #-3 |
| 523 | +# ASM-NEXT: .cfi_escape 0x0f, 0x0a, 0x8f, 0x90, 0x08, 0x92, 0x2e, 0x00, 0x11, 0x20, 0x1e, 0x22 // sp + 1040 + 32 * VG |
| 524 | +# ASM-NEXT: str z10, [sp] |
| 525 | +# ASM-NEXT: str z9, [sp, #1, mul vl] |
| 526 | +# ASM-NEXT: str z8, [sp, #2, mul vl] |
| 527 | +# ASM-NEXT: .cfi_escape 0x10, 0x48, 0x0b, 0x92, 0x2e, 0x00, 0x11, 0x70, 0x1e, 0x22, 0x11, 0xf0, 0x77, 0x22 // $d8 @ cfa - 16 * VG - 1040 |
| 528 | +# ASM-NEXT: .cfi_escape 0x10, 0x49, 0x0b, 0x92, 0x2e, 0x00, 0x11, 0x68, 0x1e, 0x22, 0x11, 0xf0, 0x77, 0x22 // $d9 @ cfa - 24 * VG - 1040 |
| 529 | +# ASM-NEXT: .cfi_escape 0x10, 0x4a, 0x0b, 0x92, 0x2e, 0x00, 0x11, 0x60, 0x1e, 0x22, 0x11, 0xf0, 0x77, 0x22 // $d10 @ cfa - 32 * VG - 1040 |
| 530 | +# ASM-NEXT: sub sp, sp, #1056 |
| 531 | +# ASM-NEXT: .cfi_escape 0x0f, 0x0a, 0x8f, 0xb0, 0x10, 0x92, 0x2e, 0x00, 0x11, 0x20, 0x1e, 0x22 // sp + 2096 + 32 * VG |
483 | 532 | # |
484 | | -# ASM: .cfi_escape 0x0f, 0x0a, 0x8f, 0x90, 0x08, 0x92, 0x2e, 0x00, 0x11, 0x20, 0x1e, 0x22 // sp + 1040 + 32 * VG |
485 | | -# ASM: .cfi_escape 0x0f, 0x09, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x11, 0x20, 0x1e, 0x22 // sp + 16 + 32 * VG |
486 | | -# ASM: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG |
| 533 | +# ASM: add sp, sp, #1056 |
| 534 | +# ASM-NEXT: .cfi_escape 0x0f, 0x0a, 0x8f, 0x90, 0x08, 0x92, 0x2e, 0x00, 0x11, 0x20, 0x1e, 0x22 // sp + 1040 + 32 * VG |
| 535 | +# ASM-NEXT: ldr z10, [sp] |
| 536 | +# ASM-NEXT: ldr z9, [sp, #1, mul vl] |
| 537 | +# ASM-NEXT: ldr z8, [sp, #2, mul vl] |
| 538 | +# ASM-NEXT: add sp, sp, #1024 |
| 539 | +# ASM-NEXT: .cfi_escape 0x0f, 0x09, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x11, 0x20, 0x1e, 0x22 // sp + 16 + 32 * VG |
| 540 | +# ASM-NEXT: addvl sp, sp, #3 |
| 541 | +# ASM-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG |
487 | 542 | # ASM-NEXT: .cfi_restore z8 |
488 | 543 | # ASM-NEXT: .cfi_restore z9 |
489 | 544 | # ASM-NEXT: .cfi_restore z10 |
490 | | -# ASM: .cfi_def_cfa wsp, 16 |
491 | | -# ASM: .cfi_def_cfa_offset 0 |
492 | | -# ASM-NEXT: .cfi_restore w29 |
| 545 | +# ASM-NEXT: ldr p6, [sp, #5, mul vl] |
| 546 | +# ASM-NEXT: ldr p5, [sp, #6, mul vl] |
| 547 | +# ASM-NEXT: ldr p4, [sp, #7, mul vl] |
| 548 | +# ASM-NEXT: addvl sp, sp, #1 |
| 549 | +# ASM-NEXT: .cfi_def_cfa wsp, 16 |
| 550 | +# ASM-NEXT: ldr x29, [sp], #16 |
| 551 | +# ASM-NEXT: .cfi_def_cfa_offset 0 |
| 552 | +# ASM-NEXT: .cfi_restore w29 |
493 | 553 |
|
494 | 554 | # UNWINDINFO: DW_CFA_def_cfa_offset: +16 |
495 | 555 | # UNWINDINFO-NEXT: DW_CFA_offset: reg29 -16 |
|
0 commit comments