@@ -427,7 +427,7 @@ define i32 @f3_hw() "hw-shadow-stack" {
427
427
;
428
428
; RV32-ZICFISS-LABEL: f3_hw:
429
429
; RV32-ZICFISS: # %bb.0:
430
- ; RV32-ZICFISS-NEXT: sspush ra
430
+ ; RV32-ZICFISS-NEXT: mop.rr.7 zero, zero, ra
431
431
; RV32-ZICFISS-NEXT: addi sp, sp, -16
432
432
; RV32-ZICFISS-NEXT: .cfi_def_cfa_offset 16
433
433
; RV32-ZICFISS-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
@@ -437,12 +437,12 @@ define i32 @f3_hw() "hw-shadow-stack" {
437
437
; RV32-ZICFISS-NEXT: .cfi_restore ra
438
438
; RV32-ZICFISS-NEXT: addi sp, sp, 16
439
439
; RV32-ZICFISS-NEXT: .cfi_def_cfa_offset 0
440
- ; RV32-ZICFISS-NEXT: sspopchk ra
440
+ ; RV32-ZICFISS-NEXT: mop.r.28 zero, ra
441
441
; RV32-ZICFISS-NEXT: ret
442
442
;
443
443
; RV64-ZICFISS-LABEL: f3_hw:
444
444
; RV64-ZICFISS: # %bb.0:
445
- ; RV64-ZICFISS-NEXT: sspush ra
445
+ ; RV64-ZICFISS-NEXT: mop.rr.7 zero, zero, ra
446
446
; RV64-ZICFISS-NEXT: addi sp, sp, -16
447
447
; RV64-ZICFISS-NEXT: .cfi_def_cfa_offset 16
448
448
; RV64-ZICFISS-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
@@ -452,7 +452,7 @@ define i32 @f3_hw() "hw-shadow-stack" {
452
452
; RV64-ZICFISS-NEXT: .cfi_restore ra
453
453
; RV64-ZICFISS-NEXT: addi sp, sp, 16
454
454
; RV64-ZICFISS-NEXT: .cfi_def_cfa_offset 0
455
- ; RV64-ZICFISS-NEXT: sspopchk ra
455
+ ; RV64-ZICFISS-NEXT: mop.r.28 zero, ra
456
456
; RV64-ZICFISS-NEXT: ret
457
457
%res = call i32 @bar ()
458
458
%res1 = add i32 %res , 1
@@ -530,7 +530,7 @@ define i32 @f4_hw() "hw-shadow-stack" {
530
530
;
531
531
; RV32-ZICFISS-LABEL: f4_hw:
532
532
; RV32-ZICFISS: # %bb.0:
533
- ; RV32-ZICFISS-NEXT: sspush ra
533
+ ; RV32-ZICFISS-NEXT: mop.rr.7 zero, zero, ra
534
534
; RV32-ZICFISS-NEXT: addi sp, sp, -16
535
535
; RV32-ZICFISS-NEXT: .cfi_def_cfa_offset 16
536
536
; RV32-ZICFISS-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
@@ -561,12 +561,12 @@ define i32 @f4_hw() "hw-shadow-stack" {
561
561
; RV32-ZICFISS-NEXT: .cfi_restore s2
562
562
; RV32-ZICFISS-NEXT: addi sp, sp, 16
563
563
; RV32-ZICFISS-NEXT: .cfi_def_cfa_offset 0
564
- ; RV32-ZICFISS-NEXT: sspopchk ra
564
+ ; RV32-ZICFISS-NEXT: mop.r.28 zero, ra
565
565
; RV32-ZICFISS-NEXT: ret
566
566
;
567
567
; RV64-ZICFISS-LABEL: f4_hw:
568
568
; RV64-ZICFISS: # %bb.0:
569
- ; RV64-ZICFISS-NEXT: sspush ra
569
+ ; RV64-ZICFISS-NEXT: mop.rr.7 zero, zero, ra
570
570
; RV64-ZICFISS-NEXT: addi sp, sp, -32
571
571
; RV64-ZICFISS-NEXT: .cfi_def_cfa_offset 32
572
572
; RV64-ZICFISS-NEXT: sd ra, 24(sp) # 8-byte Folded Spill
@@ -597,7 +597,7 @@ define i32 @f4_hw() "hw-shadow-stack" {
597
597
; RV64-ZICFISS-NEXT: .cfi_restore s2
598
598
; RV64-ZICFISS-NEXT: addi sp, sp, 32
599
599
; RV64-ZICFISS-NEXT: .cfi_def_cfa_offset 0
600
- ; RV64-ZICFISS-NEXT: sspopchk ra
600
+ ; RV64-ZICFISS-NEXT: mop.r.28 zero, ra
601
601
; RV64-ZICFISS-NEXT: ret
602
602
%res1 = call i32 @bar ()
603
603
%res2 = call i32 @bar ()
@@ -630,24 +630,24 @@ define i32 @f5_hw() "hw-shadow-stack" nounwind {
630
630
;
631
631
; RV32-ZICFISS-LABEL: f5_hw:
632
632
; RV32-ZICFISS: # %bb.0:
633
- ; RV32-ZICFISS-NEXT: sspush ra
633
+ ; RV32-ZICFISS-NEXT: mop.rr.7 zero, zero, ra
634
634
; RV32-ZICFISS-NEXT: addi sp, sp, -16
635
635
; RV32-ZICFISS-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
636
636
; RV32-ZICFISS-NEXT: call bar
637
637
; RV32-ZICFISS-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
638
638
; RV32-ZICFISS-NEXT: addi sp, sp, 16
639
- ; RV32-ZICFISS-NEXT: sspopchk ra
639
+ ; RV32-ZICFISS-NEXT: mop.r.28 zero, ra
640
640
; RV32-ZICFISS-NEXT: ret
641
641
;
642
642
; RV64-ZICFISS-LABEL: f5_hw:
643
643
; RV64-ZICFISS: # %bb.0:
644
- ; RV64-ZICFISS-NEXT: sspush ra
644
+ ; RV64-ZICFISS-NEXT: mop.rr.7 zero, zero, ra
645
645
; RV64-ZICFISS-NEXT: addi sp, sp, -16
646
646
; RV64-ZICFISS-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
647
647
; RV64-ZICFISS-NEXT: call bar
648
648
; RV64-ZICFISS-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
649
649
; RV64-ZICFISS-NEXT: addi sp, sp, 16
650
- ; RV64-ZICFISS-NEXT: sspopchk ra
650
+ ; RV64-ZICFISS-NEXT: mop.r.28 zero, ra
651
651
; RV64-ZICFISS-NEXT: ret
652
652
%res = call i32 @bar ()
653
653
%res1 = add i32 %res , 1
@@ -734,7 +734,7 @@ define i32 @f3_both() "hw-shadow-stack" shadowcallstack {
734
734
;
735
735
; RV32-ZICFISS-LABEL: f3_both:
736
736
; RV32-ZICFISS: # %bb.0:
737
- ; RV32-ZICFISS-NEXT: sspush ra
737
+ ; RV32-ZICFISS-NEXT: mop.rr.7 zero, zero, ra
738
738
; RV32-ZICFISS-NEXT: addi sp, sp, -16
739
739
; RV32-ZICFISS-NEXT: .cfi_def_cfa_offset 16
740
740
; RV32-ZICFISS-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
@@ -744,12 +744,12 @@ define i32 @f3_both() "hw-shadow-stack" shadowcallstack {
744
744
; RV32-ZICFISS-NEXT: .cfi_restore ra
745
745
; RV32-ZICFISS-NEXT: addi sp, sp, 16
746
746
; RV32-ZICFISS-NEXT: .cfi_def_cfa_offset 0
747
- ; RV32-ZICFISS-NEXT: sspopchk ra
747
+ ; RV32-ZICFISS-NEXT: mop.r.28 zero, ra
748
748
; RV32-ZICFISS-NEXT: ret
749
749
;
750
750
; RV64-ZICFISS-LABEL: f3_both:
751
751
; RV64-ZICFISS: # %bb.0:
752
- ; RV64-ZICFISS-NEXT: sspush ra
752
+ ; RV64-ZICFISS-NEXT: mop.rr.7 zero, zero, ra
753
753
; RV64-ZICFISS-NEXT: addi sp, sp, -16
754
754
; RV64-ZICFISS-NEXT: .cfi_def_cfa_offset 16
755
755
; RV64-ZICFISS-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
@@ -759,7 +759,7 @@ define i32 @f3_both() "hw-shadow-stack" shadowcallstack {
759
759
; RV64-ZICFISS-NEXT: .cfi_restore ra
760
760
; RV64-ZICFISS-NEXT: addi sp, sp, 16
761
761
; RV64-ZICFISS-NEXT: .cfi_def_cfa_offset 0
762
- ; RV64-ZICFISS-NEXT: sspopchk ra
762
+ ; RV64-ZICFISS-NEXT: mop.r.28 zero, ra
763
763
; RV64-ZICFISS-NEXT: ret
764
764
%res = call i32 @bar ()
765
765
%res1 = add i32 %res , 1
@@ -849,7 +849,7 @@ define i32 @f4_both() "hw-shadow-stack" shadowcallstack {
849
849
;
850
850
; RV32-ZICFISS-LABEL: f4_both:
851
851
; RV32-ZICFISS: # %bb.0:
852
- ; RV32-ZICFISS-NEXT: sspush ra
852
+ ; RV32-ZICFISS-NEXT: mop.rr.7 zero, zero, ra
853
853
; RV32-ZICFISS-NEXT: addi sp, sp, -16
854
854
; RV32-ZICFISS-NEXT: .cfi_def_cfa_offset 16
855
855
; RV32-ZICFISS-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
@@ -880,12 +880,12 @@ define i32 @f4_both() "hw-shadow-stack" shadowcallstack {
880
880
; RV32-ZICFISS-NEXT: .cfi_restore s2
881
881
; RV32-ZICFISS-NEXT: addi sp, sp, 16
882
882
; RV32-ZICFISS-NEXT: .cfi_def_cfa_offset 0
883
- ; RV32-ZICFISS-NEXT: sspopchk ra
883
+ ; RV32-ZICFISS-NEXT: mop.r.28 zero, ra
884
884
; RV32-ZICFISS-NEXT: ret
885
885
;
886
886
; RV64-ZICFISS-LABEL: f4_both:
887
887
; RV64-ZICFISS: # %bb.0:
888
- ; RV64-ZICFISS-NEXT: sspush ra
888
+ ; RV64-ZICFISS-NEXT: mop.rr.7 zero, zero, ra
889
889
; RV64-ZICFISS-NEXT: addi sp, sp, -32
890
890
; RV64-ZICFISS-NEXT: .cfi_def_cfa_offset 32
891
891
; RV64-ZICFISS-NEXT: sd ra, 24(sp) # 8-byte Folded Spill
@@ -916,7 +916,7 @@ define i32 @f4_both() "hw-shadow-stack" shadowcallstack {
916
916
; RV64-ZICFISS-NEXT: .cfi_restore s2
917
917
; RV64-ZICFISS-NEXT: addi sp, sp, 32
918
918
; RV64-ZICFISS-NEXT: .cfi_def_cfa_offset 0
919
- ; RV64-ZICFISS-NEXT: sspopchk ra
919
+ ; RV64-ZICFISS-NEXT: mop.r.28 zero, ra
920
920
; RV64-ZICFISS-NEXT: ret
921
921
%res1 = call i32 @bar ()
922
922
%res2 = call i32 @bar ()
@@ -957,24 +957,24 @@ define i32 @f5_both() "hw-shadow-stack" shadowcallstack nounwind {
957
957
;
958
958
; RV32-ZICFISS-LABEL: f5_both:
959
959
; RV32-ZICFISS: # %bb.0:
960
- ; RV32-ZICFISS-NEXT: sspush ra
960
+ ; RV32-ZICFISS-NEXT: mop.rr.7 zero, zero, ra
961
961
; RV32-ZICFISS-NEXT: addi sp, sp, -16
962
962
; RV32-ZICFISS-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
963
963
; RV32-ZICFISS-NEXT: call bar
964
964
; RV32-ZICFISS-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
965
965
; RV32-ZICFISS-NEXT: addi sp, sp, 16
966
- ; RV32-ZICFISS-NEXT: sspopchk ra
966
+ ; RV32-ZICFISS-NEXT: mop.r.28 zero, ra
967
967
; RV32-ZICFISS-NEXT: ret
968
968
;
969
969
; RV64-ZICFISS-LABEL: f5_both:
970
970
; RV64-ZICFISS: # %bb.0:
971
- ; RV64-ZICFISS-NEXT: sspush ra
971
+ ; RV64-ZICFISS-NEXT: mop.rr.7 zero, zero, ra
972
972
; RV64-ZICFISS-NEXT: addi sp, sp, -16
973
973
; RV64-ZICFISS-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
974
974
; RV64-ZICFISS-NEXT: call bar
975
975
; RV64-ZICFISS-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
976
976
; RV64-ZICFISS-NEXT: addi sp, sp, 16
977
- ; RV64-ZICFISS-NEXT: sspopchk ra
977
+ ; RV64-ZICFISS-NEXT: mop.r.28 zero, ra
978
978
; RV64-ZICFISS-NEXT: ret
979
979
%res = call i32 @bar ()
980
980
%res1 = add i32 %res , 1
0 commit comments