@@ -63,9 +63,7 @@ define i32 @f3() shadowcallstack {
6363; RV32-NEXT: .cfi_offset ra, -4
6464; RV32-NEXT: call bar
6565; RV32-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
66- ; RV32-NEXT: .cfi_restore ra
6766; RV32-NEXT: addi sp, sp, 16
68- ; RV32-NEXT: .cfi_def_cfa_offset 0
6967; RV32-NEXT: lw ra, -4(gp)
7068; RV32-NEXT: addi gp, gp, -4
7169; RV32-NEXT: .cfi_restore gp
@@ -82,9 +80,7 @@ define i32 @f3() shadowcallstack {
8280; RV64-NEXT: .cfi_offset ra, -8
8381; RV64-NEXT: call bar
8482; RV64-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
85- ; RV64-NEXT: .cfi_restore ra
8683; RV64-NEXT: addi sp, sp, 16
87- ; RV64-NEXT: .cfi_def_cfa_offset 0
8884; RV64-NEXT: ld ra, -8(gp)
8985; RV64-NEXT: addi gp, gp, -8
9086; RV64-NEXT: .cfi_restore gp
@@ -101,10 +97,10 @@ define i32 @f3() shadowcallstack {
10197; RV32-ZICFISS-NEXT: .cfi_offset ra, -4
10298; RV32-ZICFISS-NEXT: call bar
10399; RV32-ZICFISS-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
104- ; RV32-ZICFISS-NEXT: .cfi_restore ra
105100; RV32-ZICFISS-NEXT: addi sp, sp, 16
106- ; RV32-ZICFISS-NEXT: .cfi_def_cfa_offset 0
107- ; RV32-ZICFISS-NEXT: sspopchk ra
101+ ; RV32-ZICFISS-NEXT: lw ra, -4(gp)
102+ ; RV32-ZICFISS-NEXT: addi gp, gp, -4
103+ ; RV32-ZICFISS-NEXT: .cfi_restore gp
108104; RV32-ZICFISS-NEXT: ret
109105;
110106; RV64-ZICFISS-LABEL: f3:
@@ -118,10 +114,10 @@ define i32 @f3() shadowcallstack {
118114; RV64-ZICFISS-NEXT: .cfi_offset ra, -8
119115; RV64-ZICFISS-NEXT: call bar
120116; RV64-ZICFISS-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
121- ; RV64-ZICFISS-NEXT: .cfi_restore ra
122117; RV64-ZICFISS-NEXT: addi sp, sp, 16
123- ; RV64-ZICFISS-NEXT: .cfi_def_cfa_offset 0
124- ; RV64-ZICFISS-NEXT: sspopchk ra
118+ ; RV64-ZICFISS-NEXT: ld ra, -8(gp)
119+ ; RV64-ZICFISS-NEXT: addi gp, gp, -8
120+ ; RV64-ZICFISS-NEXT: .cfi_restore gp
125121; RV64-ZICFISS-NEXT: ret
126122 %res = call i32 @bar ()
127123 %res1 = add i32 %res , 1
@@ -158,12 +154,7 @@ define i32 @f4() shadowcallstack {
158154; RV32-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
159155; RV32-NEXT: lw s1, 4(sp) # 4-byte Folded Reload
160156; RV32-NEXT: lw s2, 0(sp) # 4-byte Folded Reload
161- ; RV32-NEXT: .cfi_restore ra
162- ; RV32-NEXT: .cfi_restore s0
163- ; RV32-NEXT: .cfi_restore s1
164- ; RV32-NEXT: .cfi_restore s2
165157; RV32-NEXT: addi sp, sp, 16
166- ; RV32-NEXT: .cfi_def_cfa_offset 0
167158; RV32-NEXT: lw ra, -4(gp)
168159; RV32-NEXT: addi gp, gp, -4
169160; RV32-NEXT: .cfi_restore gp
@@ -198,12 +189,7 @@ define i32 @f4() shadowcallstack {
198189; RV64-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
199190; RV64-NEXT: ld s1, 8(sp) # 8-byte Folded Reload
200191; RV64-NEXT: ld s2, 0(sp) # 8-byte Folded Reload
201- ; RV64-NEXT: .cfi_restore ra
202- ; RV64-NEXT: .cfi_restore s0
203- ; RV64-NEXT: .cfi_restore s1
204- ; RV64-NEXT: .cfi_restore s2
205192; RV64-NEXT: addi sp, sp, 32
206- ; RV64-NEXT: .cfi_def_cfa_offset 0
207193; RV64-NEXT: ld ra, -8(gp)
208194; RV64-NEXT: addi gp, gp, -8
209195; RV64-NEXT: .cfi_restore gp
@@ -238,10 +224,6 @@ define i32 @f4() shadowcallstack {
238224; RV32-ZICFISS-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
239225; RV32-ZICFISS-NEXT: lw s1, 4(sp) # 4-byte Folded Reload
240226; RV32-ZICFISS-NEXT: lw s2, 0(sp) # 4-byte Folded Reload
241- ; RV32-ZICFISS-NEXT: .cfi_restore ra
242- ; RV32-ZICFISS-NEXT: .cfi_restore s0
243- ; RV32-ZICFISS-NEXT: .cfi_restore s1
244- ; RV32-ZICFISS-NEXT: .cfi_restore s2
245227; RV32-ZICFISS-NEXT: addi sp, sp, 16
246228; RV32-ZICFISS-NEXT: lw ra, -4(gp)
247229; RV32-ZICFISS-NEXT: addi gp, gp, -4
@@ -277,10 +259,6 @@ define i32 @f4() shadowcallstack {
277259; RV64-ZICFISS-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
278260; RV64-ZICFISS-NEXT: ld s1, 8(sp) # 8-byte Folded Reload
279261; RV64-ZICFISS-NEXT: ld s2, 0(sp) # 8-byte Folded Reload
280- ; RV64-ZICFISS-NEXT: .cfi_restore ra
281- ; RV64-ZICFISS-NEXT: .cfi_restore s0
282- ; RV64-ZICFISS-NEXT: .cfi_restore s1
283- ; RV64-ZICFISS-NEXT: .cfi_restore s2
284262; RV64-ZICFISS-NEXT: addi sp, sp, 32
285263; RV64-ZICFISS-NEXT: ld ra, -8(gp)
286264; RV64-ZICFISS-NEXT: addi gp, gp, -8
0 commit comments