@@ -449,7 +449,7 @@ body: |
449
449
# CHECK: frame-setup STR_PXI killed $p5, $sp, 6
450
450
# CHECK: frame-setup STR_PXI killed $p4, $sp, 7
451
451
# CHECK: $sp = frame-setup SUBXri $sp, 32, 0
452
- # CHECK-COUNT-5 : frame-setup CFI_INSTRUCTION
452
+ # CHECK-COUNT-2 : frame-setup CFI_INSTRUCTION
453
453
454
454
# CHECK: $sp = frame-destroy ADDXri $sp, 32, 0
455
455
# CHECK: $p6 = frame-destroy LDR_PXI $sp, 5
@@ -460,11 +460,9 @@ body: |
460
460
#
461
461
# ASM-LABEL: save_restore_pregs_sve:
462
462
# ASM: .cfi_escape 0x0f, 0x0c, 0x8f, 0x00, 0x11, 0x30, 0x22, 0x11, 0x08, 0x92, 0x2e, 0x00, 0x1e, 0x22 // sp + 48 + 8 * VG
463
- # ASM-COUNT-3: .cfi_offset
464
463
# ASM-NEXT: .cfi_offset w29, -16
465
464
#
466
465
# UNWINDINFO: DW_CFA_def_cfa_expression: DW_OP_breg31 +0, DW_OP_consts +48, DW_OP_plus, DW_OP_consts +8, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
467
- # UNWINDINFO-COUNT-3: DW_CFA_offset
468
466
# UNWINDINFO-NEXT: DW_CFA_offset: reg29 -16
469
467
name : save_restore_pregs_sve
470
468
stack :
@@ -498,11 +496,16 @@ body: |
498
496
#
499
497
# ASM-LABEL: save_restore_zregs_sve:
500
498
# ASM: .cfi_escape 0x0f, 0x0c, 0x8f, 0x00, 0x11, 0x30, 0x22, 0x11, 0x18, 0x92, 0x2e, 0x00, 0x1e, 0x22 // sp + 48 + 24 * VG
501
- # ASM-COUNT-3: .cfi_offset
502
- #
503
- # UNWINDINFO: DW_CFA_def_cfa_expression: DW_OP_breg31 +0, DW_OP_consts +48, DW_OP_plus, DW_OP_consts +24, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
504
- # UNWINDINFO-COUNT-3: DW_CFA_offset
505
- # UNWINDINFO-NEXT: DW_CFA_offset: reg29 -16
499
+ # ASM-NEXT: .cfi_escape 0x10, 0x48, 0x0a, 0x11, 0x70, 0x22, 0x11, 0x78, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d8 @ cfa - 16 - 8 * VG
500
+ # ASM-NEXT: .cfi_escape 0x10, 0x49, 0x0a, 0x11, 0x70, 0x22, 0x11, 0x70, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d9 @ cfa - 16 - 16 * VG
501
+ # ASM-NEXT: .cfi_escape 0x10, 0x4a, 0x0a, 0x11, 0x70, 0x22, 0x11, 0x68, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d10 @ cfa - 16 - 24 * VG
502
+
503
+ # UNWINDINFO: DW_CFA_def_cfa_expression: DW_OP_breg31 +0, DW_OP_consts +48, DW_OP_plus, DW_OP_consts +24, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
504
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg72 DW_OP_consts -16, DW_OP_plus, DW_OP_consts -8, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
505
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg73 DW_OP_consts -16, DW_OP_plus, DW_OP_consts -16, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
506
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg74 DW_OP_consts -16, DW_OP_plus, DW_OP_consts -24, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
507
+ # UNWINDINFO-NEXT: DW_CFA_offset: reg29 -16
508
+
506
509
name : save_restore_zregs_sve
507
510
stack :
508
511
- { id: 0, stack-id: default, size: 32, alignment: 16 }
@@ -536,7 +539,7 @@ body: |
536
539
# CHECK: frame-setup STR_ZXI killed $z8, $sp, 17
537
540
# CHECK: $sp = frame-setup ADDVL_XXI $sp, -1
538
541
# CHECK: $sp = frame-setup SUBXri $sp, 32, 0
539
- # CHECK-COUNT-33 : frame-setup CFI_INSTRUCTION
542
+ # CHECK-COUNT-13 : frame-setup CFI_INSTRUCTION
540
543
541
544
# CHECK: $sp = frame-destroy ADDXri $sp, 32, 0
542
545
# CHECK: $sp = frame-destroy ADDVL_XXI $sp, 1
@@ -555,18 +558,32 @@ body: |
555
558
#
556
559
# ASM-LABEL: save_restore_sve:
557
560
# ASM: .cfi_escape 0x0f, 0x0e, 0x8f, 0x00, 0x11, 0xc0, 0x00, 0x22, 0x11, 0x98, 0x01, 0x92, 0x2e, 0x00, 0x1e, 0x22 // sp + 64 + 152 * VG
558
- # ASM-COUNT-28: .cfi_offset
561
+ # ASM-NEXT: .cfi_escape 0x10, 0x48, 0x0a, 0x11, 0x60, 0x22, 0x11, 0x78, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d8 @ cfa - 32 - 8 * VG
562
+ # ASM-NEXT: .cfi_escape 0x10, 0x49, 0x0a, 0x11, 0x60, 0x22, 0x11, 0x70, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d9 @ cfa - 32 - 16 * VG
563
+ # ASM-NEXT: .cfi_escape 0x10, 0x4a, 0x0a, 0x11, 0x60, 0x22, 0x11, 0x68, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d10 @ cfa - 32 - 24 * VG
564
+ # ASM-NEXT: .cfi_escape 0x10, 0x4b, 0x0a, 0x11, 0x60, 0x22, 0x11, 0x60, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d11 @ cfa - 32 - 32 * VG
565
+ # ASM-NEXT: .cfi_escape 0x10, 0x4c, 0x0a, 0x11, 0x60, 0x22, 0x11, 0x58, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d12 @ cfa - 32 - 40 * VG
566
+ # ASM-NEXT: .cfi_escape 0x10, 0x4d, 0x0a, 0x11, 0x60, 0x22, 0x11, 0x50, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d13 @ cfa - 32 - 48 * VG
567
+ # ASM-NEXT: .cfi_escape 0x10, 0x4e, 0x0a, 0x11, 0x60, 0x22, 0x11, 0x48, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d14 @ cfa - 32 - 56 * VG
568
+ # ASM-NEXT: .cfi_escape 0x10, 0x4f, 0x0a, 0x11, 0x60, 0x22, 0x11, 0x40, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d15 @ cfa - 32 - 64 * VG
559
569
# ASM-NEXT: .cfi_offset w19, -8
560
570
# ASM-NEXT: .cfi_offset w20, -16
561
571
# ASM-NEXT: .cfi_offset w21, -24
562
572
# ASM-NEXT: .cfi_offset w29, -32
563
573
#
564
- # UNWINDINFO: DW_CFA_def_cfa_expression: DW_OP_breg31 +0, DW_OP_consts +64, DW_OP_plus, DW_OP_consts +152, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
565
- # UNWINDINFO-COUNT-28: DW_CFA_offset
566
- # UNWINDINFO-NEXT: DW_CFA_offset: reg19 -8
567
- # UNWINDINFO-NEXT: DW_CFA_offset: reg20 -16
568
- # UNWINDINFO-NEXT: DW_CFA_offset: reg21 -24
569
- # UNWINDINFO-NEXT: DW_CFA_offset: reg29 -32
574
+ # UNWINDINFO: DW_CFA_def_cfa_expression: DW_OP_breg31 +0, DW_OP_consts +64, DW_OP_plus, DW_OP_consts +152, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
575
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg72 DW_OP_consts -32, DW_OP_plus, DW_OP_consts -8, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
576
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg73 DW_OP_consts -32, DW_OP_plus, DW_OP_consts -16, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
577
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg74 DW_OP_consts -32, DW_OP_plus, DW_OP_consts -24, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
578
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg75 DW_OP_consts -32, DW_OP_plus, DW_OP_consts -32, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
579
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg76 DW_OP_consts -32, DW_OP_plus, DW_OP_consts -40, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
580
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg77 DW_OP_consts -32, DW_OP_plus, DW_OP_consts -48, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
581
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg78 DW_OP_consts -32, DW_OP_plus, DW_OP_consts -56, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
582
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg79 DW_OP_consts -32, DW_OP_plus, DW_OP_consts -64, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
583
+ # UNWINDINFO-NEXT: DW_CFA_offset: reg19 -8
584
+ # UNWINDINFO-NEXT: DW_CFA_offset: reg20 -16
585
+ # UNWINDINFO-NEXT: DW_CFA_offset: reg21 -24
586
+ # UNWINDINFO-NEXT: DW_CFA_offset: reg29 -32
570
587
571
588
name : save_restore_sve
572
589
stack :
@@ -620,7 +637,7 @@ body: |
620
637
# CHECK-NEXT: $sp = frame-setup ADDVL_XXI $sp, -1
621
638
# CHECK-NEXT: $[[TMP:x[0-9]+]] = frame-setup SUBXri $sp, 16, 0
622
639
# CHECK-NEXT: $sp = ANDXri killed $[[TMP]]
623
- # CHECK-COUNT-31 : frame-setup CFI_INSTRUCTION
640
+ # CHECK-COUNT-11 : frame-setup CFI_INSTRUCTION
624
641
625
642
# CHECK: $sp = frame-destroy ADDVL_XXI $fp, -18
626
643
# CHECK-NEXT: $p15 = frame-destroy LDR_PXI $sp, 4
@@ -635,10 +652,30 @@ body: |
635
652
# CHECK-NEXT: $sp, $fp, $lr = frame-destroy LDPXpost $sp, 2
636
653
# CHECK-NEXT: RET_ReallyLR
637
654
#
638
- # UNWINDINFO: DW_CFA_def_cfa: reg29 +16
639
- # UNWINDINFO-COUNT-28: DW_CFA_offset
640
- # UNWINDINFO-NEXT: DW_CFA_offset: reg30 -8
641
- # UNWINDINFO-NEXT: DW_CFA_offset: reg29 -16
655
+ # ASM-LABEL: save_restore_sve_realign:
656
+ # ASM: .cfi_def_cfa w29, 16
657
+ # ASM-NEXT: .cfi_escape 0x10, 0x48, 0x0a, 0x11, 0x70, 0x22, 0x11, 0x78, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d8 @ cfa - 16 - 8 * VG
658
+ # ASM-NEXT: .cfi_escape 0x10, 0x49, 0x0a, 0x11, 0x70, 0x22, 0x11, 0x70, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d9 @ cfa - 16 - 16 * VG
659
+ # ASM-NEXT: .cfi_escape 0x10, 0x4a, 0x0a, 0x11, 0x70, 0x22, 0x11, 0x68, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d10 @ cfa - 16 - 24 * VG
660
+ # ASM-NEXT: .cfi_escape 0x10, 0x4b, 0x0a, 0x11, 0x70, 0x22, 0x11, 0x60, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d11 @ cfa - 16 - 32 * VG
661
+ # ASM-NEXT: .cfi_escape 0x10, 0x4c, 0x0a, 0x11, 0x70, 0x22, 0x11, 0x58, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d12 @ cfa - 16 - 40 * VG
662
+ # ASM-NEXT: .cfi_escape 0x10, 0x4d, 0x0a, 0x11, 0x70, 0x22, 0x11, 0x50, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d13 @ cfa - 16 - 48 * VG
663
+ # ASM-NEXT: .cfi_escape 0x10, 0x4e, 0x0a, 0x11, 0x70, 0x22, 0x11, 0x48, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d14 @ cfa - 16 - 56 * VG
664
+ # ASM-NEXT: .cfi_escape 0x10, 0x4f, 0x0a, 0x11, 0x70, 0x22, 0x11, 0x40, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d15 @ cfa - 16 - 64 * VG
665
+ # ASM-NEXT: .cfi_offset w30, -8
666
+ # ASM-NEXT: .cfi_offset w29, -16
667
+ #
668
+ # UNWINDINFO: DW_CFA_def_cfa: reg29 +16
669
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg72 DW_OP_consts -16, DW_OP_plus, DW_OP_consts -8, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
670
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg73 DW_OP_consts -16, DW_OP_plus, DW_OP_consts -16, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
671
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg74 DW_OP_consts -16, DW_OP_plus, DW_OP_consts -24, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
672
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg75 DW_OP_consts -16, DW_OP_plus, DW_OP_consts -32, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
673
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg76 DW_OP_consts -16, DW_OP_plus, DW_OP_consts -40, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
674
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg77 DW_OP_consts -16, DW_OP_plus, DW_OP_consts -48, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
675
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg78 DW_OP_consts -16, DW_OP_plus, DW_OP_consts -56, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
676
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg79 DW_OP_consts -16, DW_OP_plus, DW_OP_consts -64, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
677
+ # UNWINDINFO-NEXT: DW_CFA_offset: reg30 -8
678
+ # UNWINDINFO-NEXT: DW_CFA_offset: reg29 -16
642
679
name : save_restore_sve_realign
643
680
stack :
644
681
- { id: 0, stack-id: sve-vec, size: 16, alignment: 16 }
@@ -713,15 +750,15 @@ body: |
713
750
# CHECK-NEXT: STR_ZXI killed $z23, $sp, 1
714
751
# CHECK-NEXT: STR_ZXI killed $z8, $sp, 2
715
752
# CHECK-NEXT: $sp = frame-setup ADDVL_XXI $sp, -7
716
- # CHECK-COUNT-6 : frame-setup CFI_INSTRUCTION
753
+ # CHECK-COUNT-3 : frame-setup CFI_INSTRUCTION
717
754
# ASM-LABEL: frame_layout:
718
755
# ASM: .cfi_escape 0x0f, 0x0d, 0x8f, 0x00, 0x11, 0x10, 0x22, 0x11, 0xd0, 0x00, 0x92, 0x2e, 0x00, 0x1e, 0x22 // sp + 16 + 80 * VG
719
- # ASM-COUNT-4: .cfi_offset
756
+ # ASM-NEXT: .cfi_escape 0x10, 0x48, 0x0a, 0x11, 0x70, 0x22, 0x11, 0x78, 0x92, 0x2e, 0x00, 0x1e, 0x22 // $d8 @ cfa - 16 - 8 * VG
720
757
# ASM-NEXT: .cfi_offset w29, -16
721
758
#
722
- # UNWINDINFO: DW_CFA_def_cfa_expression: DW_OP_breg31 +0, DW_OP_consts +16, DW_OP_plus, DW_OP_consts +80, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
723
- # UNWINDINFO-COUNT-4: DW_CFA_offset
724
- # UNWINDINFO-NEXT: DW_CFA_offset: reg29 -16
759
+ # UNWINDINFO: DW_CFA_def_cfa_expression: DW_OP_breg31 +0, DW_OP_consts +16, DW_OP_plus, DW_OP_consts +80, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
760
+ # UNWINDINFO-NEXT: DW_CFA_expression: reg72 DW_OP_consts -16, DW_OP_plus, DW_OP_consts -8, DW_OP_bregx 0x2e +0, DW_OP_mul, DW_OP_plus
761
+ # UNWINDINFO-NEXT: DW_CFA_offset: reg29 -16
725
762
name : frame_layout
726
763
stack :
727
764
- { id: 0, type: default, size: 32, alignment: 16, stack-id: sve-vec }
0 commit comments