Skip to content

Commit 443f392

Browse files
committed
!fixup rebase and update test
1 parent 39a8698 commit 443f392

File tree

1 file changed

+64
-2
lines changed

1 file changed

+64
-2
lines changed

llvm/test/CodeGen/RISCV/shadowcallstack.ll

Lines changed: 64 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,9 @@ define i32 @f3() shadowcallstack {
104104
; RV32-ZICFISS-NEXT: .cfi_restore ra
105105
; RV32-ZICFISS-NEXT: addi sp, sp, 16
106106
; RV32-ZICFISS-NEXT: .cfi_def_cfa_offset 0
107-
; RV32-ZICFISS-NEXT: sspopchk ra
107+
; RV32-ZICFISS-NEXT: lw ra, -4(gp)
108+
; RV32-ZICFISS-NEXT: addi gp, gp, -4
109+
; RV32-ZICFISS-NEXT: .cfi_restore gp
108110
; RV32-ZICFISS-NEXT: ret
109111
;
110112
; RV64-ZICFISS-LABEL: f3:
@@ -121,7 +123,9 @@ define i32 @f3() shadowcallstack {
121123
; RV64-ZICFISS-NEXT: .cfi_restore ra
122124
; RV64-ZICFISS-NEXT: addi sp, sp, 16
123125
; RV64-ZICFISS-NEXT: .cfi_def_cfa_offset 0
124-
; RV64-ZICFISS-NEXT: sspopchk ra
126+
; RV64-ZICFISS-NEXT: ld ra, -8(gp)
127+
; RV64-ZICFISS-NEXT: addi gp, gp, -8
128+
; RV64-ZICFISS-NEXT: .cfi_restore gp
125129
; RV64-ZICFISS-NEXT: ret
126130
%res = call i32 @bar()
127131
%res1 = add i32 %res, 1
@@ -243,6 +247,7 @@ define i32 @f4() shadowcallstack {
243247
; RV32-ZICFISS-NEXT: .cfi_restore s1
244248
; RV32-ZICFISS-NEXT: .cfi_restore s2
245249
; RV32-ZICFISS-NEXT: addi sp, sp, 16
250+
; RV32-ZICFISS-NEXT: .cfi_def_cfa_offset 0
246251
; RV32-ZICFISS-NEXT: lw ra, -4(gp)
247252
; RV32-ZICFISS-NEXT: addi gp, gp, -4
248253
; RV32-ZICFISS-NEXT: .cfi_restore gp
@@ -282,6 +287,7 @@ define i32 @f4() shadowcallstack {
282287
; RV64-ZICFISS-NEXT: .cfi_restore s1
283288
; RV64-ZICFISS-NEXT: .cfi_restore s2
284289
; RV64-ZICFISS-NEXT: addi sp, sp, 32
290+
; RV64-ZICFISS-NEXT: .cfi_def_cfa_offset 0
285291
; RV64-ZICFISS-NEXT: ld ra, -8(gp)
286292
; RV64-ZICFISS-NEXT: addi gp, gp, -8
287293
; RV64-ZICFISS-NEXT: .cfi_restore gp
@@ -401,7 +407,9 @@ define i32 @f3_hw() "hw-shadow-stack" {
401407
; RV32-NEXT: .cfi_offset ra, -4
402408
; RV32-NEXT: call bar
403409
; RV32-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
410+
; RV32-NEXT: .cfi_restore ra
404411
; RV32-NEXT: addi sp, sp, 16
412+
; RV32-NEXT: .cfi_def_cfa_offset 0
405413
; RV32-NEXT: ret
406414
;
407415
; RV64-LABEL: f3_hw:
@@ -412,7 +420,9 @@ define i32 @f3_hw() "hw-shadow-stack" {
412420
; RV64-NEXT: .cfi_offset ra, -8
413421
; RV64-NEXT: call bar
414422
; RV64-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
423+
; RV64-NEXT: .cfi_restore ra
415424
; RV64-NEXT: addi sp, sp, 16
425+
; RV64-NEXT: .cfi_def_cfa_offset 0
416426
; RV64-NEXT: ret
417427
;
418428
; RV32-ZICFISS-LABEL: f3_hw:
@@ -424,7 +434,9 @@ define i32 @f3_hw() "hw-shadow-stack" {
424434
; RV32-ZICFISS-NEXT: .cfi_offset ra, -4
425435
; RV32-ZICFISS-NEXT: call bar
426436
; RV32-ZICFISS-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
437+
; RV32-ZICFISS-NEXT: .cfi_restore ra
427438
; RV32-ZICFISS-NEXT: addi sp, sp, 16
439+
; RV32-ZICFISS-NEXT: .cfi_def_cfa_offset 0
428440
; RV32-ZICFISS-NEXT: sspopchk ra
429441
; RV32-ZICFISS-NEXT: ret
430442
;
@@ -437,7 +449,9 @@ define i32 @f3_hw() "hw-shadow-stack" {
437449
; RV64-ZICFISS-NEXT: .cfi_offset ra, -8
438450
; RV64-ZICFISS-NEXT: call bar
439451
; RV64-ZICFISS-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
452+
; RV64-ZICFISS-NEXT: .cfi_restore ra
440453
; RV64-ZICFISS-NEXT: addi sp, sp, 16
454+
; RV64-ZICFISS-NEXT: .cfi_def_cfa_offset 0
441455
; RV64-ZICFISS-NEXT: sspopchk ra
442456
; RV64-ZICFISS-NEXT: ret
443457
%res = call i32 @bar()
@@ -472,7 +486,12 @@ define i32 @f4_hw() "hw-shadow-stack" {
472486
; RV32-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
473487
; RV32-NEXT: lw s1, 4(sp) # 4-byte Folded Reload
474488
; RV32-NEXT: lw s2, 0(sp) # 4-byte Folded Reload
489+
; RV32-NEXT: .cfi_restore ra
490+
; RV32-NEXT: .cfi_restore s0
491+
; RV32-NEXT: .cfi_restore s1
492+
; RV32-NEXT: .cfi_restore s2
475493
; RV32-NEXT: addi sp, sp, 16
494+
; RV32-NEXT: .cfi_def_cfa_offset 0
476495
; RV32-NEXT: ret
477496
;
478497
; RV64-LABEL: f4_hw:
@@ -501,7 +520,12 @@ define i32 @f4_hw() "hw-shadow-stack" {
501520
; RV64-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
502521
; RV64-NEXT: ld s1, 8(sp) # 8-byte Folded Reload
503522
; RV64-NEXT: ld s2, 0(sp) # 8-byte Folded Reload
523+
; RV64-NEXT: .cfi_restore ra
524+
; RV64-NEXT: .cfi_restore s0
525+
; RV64-NEXT: .cfi_restore s1
526+
; RV64-NEXT: .cfi_restore s2
504527
; RV64-NEXT: addi sp, sp, 32
528+
; RV64-NEXT: .cfi_def_cfa_offset 0
505529
; RV64-NEXT: ret
506530
;
507531
; RV32-ZICFISS-LABEL: f4_hw:
@@ -531,7 +555,12 @@ define i32 @f4_hw() "hw-shadow-stack" {
531555
; RV32-ZICFISS-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
532556
; RV32-ZICFISS-NEXT: lw s1, 4(sp) # 4-byte Folded Reload
533557
; RV32-ZICFISS-NEXT: lw s2, 0(sp) # 4-byte Folded Reload
558+
; RV32-ZICFISS-NEXT: .cfi_restore ra
559+
; RV32-ZICFISS-NEXT: .cfi_restore s0
560+
; RV32-ZICFISS-NEXT: .cfi_restore s1
561+
; RV32-ZICFISS-NEXT: .cfi_restore s2
534562
; RV32-ZICFISS-NEXT: addi sp, sp, 16
563+
; RV32-ZICFISS-NEXT: .cfi_def_cfa_offset 0
535564
; RV32-ZICFISS-NEXT: sspopchk ra
536565
; RV32-ZICFISS-NEXT: ret
537566
;
@@ -562,7 +591,12 @@ define i32 @f4_hw() "hw-shadow-stack" {
562591
; RV64-ZICFISS-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
563592
; RV64-ZICFISS-NEXT: ld s1, 8(sp) # 8-byte Folded Reload
564593
; RV64-ZICFISS-NEXT: ld s2, 0(sp) # 8-byte Folded Reload
594+
; RV64-ZICFISS-NEXT: .cfi_restore ra
595+
; RV64-ZICFISS-NEXT: .cfi_restore s0
596+
; RV64-ZICFISS-NEXT: .cfi_restore s1
597+
; RV64-ZICFISS-NEXT: .cfi_restore s2
565598
; RV64-ZICFISS-NEXT: addi sp, sp, 32
599+
; RV64-ZICFISS-NEXT: .cfi_def_cfa_offset 0
566600
; RV64-ZICFISS-NEXT: sspopchk ra
567601
; RV64-ZICFISS-NEXT: ret
568602
%res1 = call i32 @bar()
@@ -671,7 +705,9 @@ define i32 @f3_both() "hw-shadow-stack" shadowcallstack {
671705
; RV32-NEXT: .cfi_offset ra, -4
672706
; RV32-NEXT: call bar
673707
; RV32-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
708+
; RV32-NEXT: .cfi_restore ra
674709
; RV32-NEXT: addi sp, sp, 16
710+
; RV32-NEXT: .cfi_def_cfa_offset 0
675711
; RV32-NEXT: lw ra, -4(gp)
676712
; RV32-NEXT: addi gp, gp, -4
677713
; RV32-NEXT: .cfi_restore gp
@@ -688,7 +724,9 @@ define i32 @f3_both() "hw-shadow-stack" shadowcallstack {
688724
; RV64-NEXT: .cfi_offset ra, -8
689725
; RV64-NEXT: call bar
690726
; RV64-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
727+
; RV64-NEXT: .cfi_restore ra
691728
; RV64-NEXT: addi sp, sp, 16
729+
; RV64-NEXT: .cfi_def_cfa_offset 0
692730
; RV64-NEXT: ld ra, -8(gp)
693731
; RV64-NEXT: addi gp, gp, -8
694732
; RV64-NEXT: .cfi_restore gp
@@ -703,7 +741,9 @@ define i32 @f3_both() "hw-shadow-stack" shadowcallstack {
703741
; RV32-ZICFISS-NEXT: .cfi_offset ra, -4
704742
; RV32-ZICFISS-NEXT: call bar
705743
; RV32-ZICFISS-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
744+
; RV32-ZICFISS-NEXT: .cfi_restore ra
706745
; RV32-ZICFISS-NEXT: addi sp, sp, 16
746+
; RV32-ZICFISS-NEXT: .cfi_def_cfa_offset 0
707747
; RV32-ZICFISS-NEXT: sspopchk ra
708748
; RV32-ZICFISS-NEXT: ret
709749
;
@@ -716,7 +756,9 @@ define i32 @f3_both() "hw-shadow-stack" shadowcallstack {
716756
; RV64-ZICFISS-NEXT: .cfi_offset ra, -8
717757
; RV64-ZICFISS-NEXT: call bar
718758
; RV64-ZICFISS-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
759+
; RV64-ZICFISS-NEXT: .cfi_restore ra
719760
; RV64-ZICFISS-NEXT: addi sp, sp, 16
761+
; RV64-ZICFISS-NEXT: .cfi_def_cfa_offset 0
720762
; RV64-ZICFISS-NEXT: sspopchk ra
721763
; RV64-ZICFISS-NEXT: ret
722764
%res = call i32 @bar()
@@ -754,7 +796,12 @@ define i32 @f4_both() "hw-shadow-stack" shadowcallstack {
754796
; RV32-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
755797
; RV32-NEXT: lw s1, 4(sp) # 4-byte Folded Reload
756798
; RV32-NEXT: lw s2, 0(sp) # 4-byte Folded Reload
799+
; RV32-NEXT: .cfi_restore ra
800+
; RV32-NEXT: .cfi_restore s0
801+
; RV32-NEXT: .cfi_restore s1
802+
; RV32-NEXT: .cfi_restore s2
757803
; RV32-NEXT: addi sp, sp, 16
804+
; RV32-NEXT: .cfi_def_cfa_offset 0
758805
; RV32-NEXT: lw ra, -4(gp)
759806
; RV32-NEXT: addi gp, gp, -4
760807
; RV32-NEXT: .cfi_restore gp
@@ -789,7 +836,12 @@ define i32 @f4_both() "hw-shadow-stack" shadowcallstack {
789836
; RV64-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
790837
; RV64-NEXT: ld s1, 8(sp) # 8-byte Folded Reload
791838
; RV64-NEXT: ld s2, 0(sp) # 8-byte Folded Reload
839+
; RV64-NEXT: .cfi_restore ra
840+
; RV64-NEXT: .cfi_restore s0
841+
; RV64-NEXT: .cfi_restore s1
842+
; RV64-NEXT: .cfi_restore s2
792843
; RV64-NEXT: addi sp, sp, 32
844+
; RV64-NEXT: .cfi_def_cfa_offset 0
793845
; RV64-NEXT: ld ra, -8(gp)
794846
; RV64-NEXT: addi gp, gp, -8
795847
; RV64-NEXT: .cfi_restore gp
@@ -822,7 +874,12 @@ define i32 @f4_both() "hw-shadow-stack" shadowcallstack {
822874
; RV32-ZICFISS-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
823875
; RV32-ZICFISS-NEXT: lw s1, 4(sp) # 4-byte Folded Reload
824876
; RV32-ZICFISS-NEXT: lw s2, 0(sp) # 4-byte Folded Reload
877+
; RV32-ZICFISS-NEXT: .cfi_restore ra
878+
; RV32-ZICFISS-NEXT: .cfi_restore s0
879+
; RV32-ZICFISS-NEXT: .cfi_restore s1
880+
; RV32-ZICFISS-NEXT: .cfi_restore s2
825881
; RV32-ZICFISS-NEXT: addi sp, sp, 16
882+
; RV32-ZICFISS-NEXT: .cfi_def_cfa_offset 0
826883
; RV32-ZICFISS-NEXT: sspopchk ra
827884
; RV32-ZICFISS-NEXT: ret
828885
;
@@ -853,7 +910,12 @@ define i32 @f4_both() "hw-shadow-stack" shadowcallstack {
853910
; RV64-ZICFISS-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
854911
; RV64-ZICFISS-NEXT: ld s1, 8(sp) # 8-byte Folded Reload
855912
; RV64-ZICFISS-NEXT: ld s2, 0(sp) # 8-byte Folded Reload
913+
; RV64-ZICFISS-NEXT: .cfi_restore ra
914+
; RV64-ZICFISS-NEXT: .cfi_restore s0
915+
; RV64-ZICFISS-NEXT: .cfi_restore s1
916+
; RV64-ZICFISS-NEXT: .cfi_restore s2
856917
; RV64-ZICFISS-NEXT: addi sp, sp, 32
918+
; RV64-ZICFISS-NEXT: .cfi_def_cfa_offset 0
857919
; RV64-ZICFISS-NEXT: sspopchk ra
858920
; RV64-ZICFISS-NEXT: ret
859921
%res1 = call i32 @bar()

0 commit comments

Comments
 (0)