@@ -41,27 +41,25 @@ define i32 @foo() {
41
41
;
42
42
; RV32IZCMP-SR-LABEL: foo:
43
43
; RV32IZCMP-SR: # %bb.0:
44
- ; RV32IZCMP-SR-NEXT: call t0, __riscv_save_0
45
- ; RV32IZCMP-SR-NEXT: addi sp, sp, -512
44
+ ; RV32IZCMP-SR-NEXT: cm.push {ra}, -64
45
+ ; RV32IZCMP-SR-NEXT: addi sp, sp, -464
46
46
; RV32IZCMP-SR-NEXT: .cfi_def_cfa_offset 528
47
47
; RV32IZCMP-SR-NEXT: .cfi_offset ra, -4
48
48
; RV32IZCMP-SR-NEXT: mv a0, sp
49
49
; RV32IZCMP-SR-NEXT: call test@plt
50
- ; RV32IZCMP-SR-NEXT: li a0, 0
51
- ; RV32IZCMP-SR-NEXT: addi sp, sp, 512
52
- ; RV32IZCMP-SR-NEXT: tail __riscv_restore_0
50
+ ; RV32IZCMP-SR-NEXT: addi sp, sp, 464
51
+ ; RV32IZCMP-SR-NEXT: cm.popretz {ra}, 64
53
52
;
54
53
; RV64IZCMP-SR-LABEL: foo:
55
54
; RV64IZCMP-SR: # %bb.0:
56
- ; RV64IZCMP-SR-NEXT: call t0, __riscv_save_0
57
- ; RV64IZCMP-SR-NEXT: addi sp, sp, -512
55
+ ; RV64IZCMP-SR-NEXT: cm.push {ra}, -64
56
+ ; RV64IZCMP-SR-NEXT: addi sp, sp, -464
58
57
; RV64IZCMP-SR-NEXT: .cfi_def_cfa_offset 528
59
58
; RV64IZCMP-SR-NEXT: .cfi_offset ra, -8
60
59
; RV64IZCMP-SR-NEXT: mv a0, sp
61
60
; RV64IZCMP-SR-NEXT: call test@plt
62
- ; RV64IZCMP-SR-NEXT: li a0, 0
63
- ; RV64IZCMP-SR-NEXT: addi sp, sp, 512
64
- ; RV64IZCMP-SR-NEXT: tail __riscv_restore_0
61
+ ; RV64IZCMP-SR-NEXT: addi sp, sp, 464
62
+ ; RV64IZCMP-SR-NEXT: cm.popretz {ra}, 64
65
63
;
66
64
; RV32I-LABEL: foo:
67
65
; RV32I: # %bb.0:
@@ -131,27 +129,26 @@ define i32 @pushpopret0(i32 signext %size){
131
129
;
132
130
; RV32IZCMP-SR-LABEL: pushpopret0:
133
131
; RV32IZCMP-SR: # %bb.0: # %entry
134
- ; RV32IZCMP-SR-NEXT: call t0, __riscv_save_1
132
+ ; RV32IZCMP-SR-NEXT: cm.push {ra, s0}, -16
135
133
; RV32IZCMP-SR-NEXT: .cfi_def_cfa_offset 16
136
- ; RV32IZCMP-SR-NEXT: .cfi_offset ra, -4
137
- ; RV32IZCMP-SR-NEXT: .cfi_offset s0, -8
134
+ ; RV32IZCMP-SR-NEXT: .cfi_offset ra, -8
135
+ ; RV32IZCMP-SR-NEXT: .cfi_offset s0, -4
138
136
; RV32IZCMP-SR-NEXT: addi s0, sp, 16
139
137
; RV32IZCMP-SR-NEXT: .cfi_def_cfa s0, 0
140
138
; RV32IZCMP-SR-NEXT: addi a0, a0, 15
141
139
; RV32IZCMP-SR-NEXT: andi a0, a0, -16
142
140
; RV32IZCMP-SR-NEXT: sub a0, sp, a0
143
141
; RV32IZCMP-SR-NEXT: mv sp, a0
144
142
; RV32IZCMP-SR-NEXT: call callee_void@plt
145
- ; RV32IZCMP-SR-NEXT: li a0, 0
146
143
; RV32IZCMP-SR-NEXT: addi sp, s0, -16
147
- ; RV32IZCMP-SR-NEXT: tail __riscv_restore_1
144
+ ; RV32IZCMP-SR-NEXT: cm.popretz {ra, s0}, 16
148
145
;
149
146
; RV64IZCMP-SR-LABEL: pushpopret0:
150
147
; RV64IZCMP-SR: # %bb.0: # %entry
151
- ; RV64IZCMP-SR-NEXT: call t0, __riscv_save_1
148
+ ; RV64IZCMP-SR-NEXT: cm.push {ra, s0}, -16
152
149
; RV64IZCMP-SR-NEXT: .cfi_def_cfa_offset 16
153
- ; RV64IZCMP-SR-NEXT: .cfi_offset ra, -8
154
- ; RV64IZCMP-SR-NEXT: .cfi_offset s0, -16
150
+ ; RV64IZCMP-SR-NEXT: .cfi_offset ra, -16
151
+ ; RV64IZCMP-SR-NEXT: .cfi_offset s0, -8
155
152
; RV64IZCMP-SR-NEXT: addi s0, sp, 16
156
153
; RV64IZCMP-SR-NEXT: .cfi_def_cfa s0, 0
157
154
; RV64IZCMP-SR-NEXT: slli a0, a0, 32
@@ -161,9 +158,8 @@ define i32 @pushpopret0(i32 signext %size){
161
158
; RV64IZCMP-SR-NEXT: sub a0, sp, a0
162
159
; RV64IZCMP-SR-NEXT: mv sp, a0
163
160
; RV64IZCMP-SR-NEXT: call callee_void@plt
164
- ; RV64IZCMP-SR-NEXT: li a0, 0
165
161
; RV64IZCMP-SR-NEXT: addi sp, s0, -16
166
- ; RV64IZCMP-SR-NEXT: tail __riscv_restore_1
162
+ ; RV64IZCMP-SR-NEXT: cm.popretz {ra, s0}, 16
167
163
;
168
164
; RV32I-LABEL: pushpopret0:
169
165
; RV32I: # %bb.0: # %entry
@@ -255,10 +251,10 @@ define i32 @pushpopret1(i32 signext %size) {
255
251
;
256
252
; RV32IZCMP-SR-LABEL: pushpopret1:
257
253
; RV32IZCMP-SR: # %bb.0: # %entry
258
- ; RV32IZCMP-SR-NEXT: call t0, __riscv_save_1
254
+ ; RV32IZCMP-SR-NEXT: cm.push {ra, s0}, -16
259
255
; RV32IZCMP-SR-NEXT: .cfi_def_cfa_offset 16
260
- ; RV32IZCMP-SR-NEXT: .cfi_offset ra, -4
261
- ; RV32IZCMP-SR-NEXT: .cfi_offset s0, -8
256
+ ; RV32IZCMP-SR-NEXT: .cfi_offset ra, -8
257
+ ; RV32IZCMP-SR-NEXT: .cfi_offset s0, -4
262
258
; RV32IZCMP-SR-NEXT: addi s0, sp, 16
263
259
; RV32IZCMP-SR-NEXT: .cfi_def_cfa s0, 0
264
260
; RV32IZCMP-SR-NEXT: addi a0, a0, 15
@@ -268,14 +264,14 @@ define i32 @pushpopret1(i32 signext %size) {
268
264
; RV32IZCMP-SR-NEXT: call callee_void@plt
269
265
; RV32IZCMP-SR-NEXT: li a0, 1
270
266
; RV32IZCMP-SR-NEXT: addi sp, s0, -16
271
- ; RV32IZCMP-SR-NEXT: tail __riscv_restore_1
267
+ ; RV32IZCMP-SR-NEXT: cm.popret {ra, s0}, 16
272
268
;
273
269
; RV64IZCMP-SR-LABEL: pushpopret1:
274
270
; RV64IZCMP-SR: # %bb.0: # %entry
275
- ; RV64IZCMP-SR-NEXT: call t0, __riscv_save_1
271
+ ; RV64IZCMP-SR-NEXT: cm.push {ra, s0}, -16
276
272
; RV64IZCMP-SR-NEXT: .cfi_def_cfa_offset 16
277
- ; RV64IZCMP-SR-NEXT: .cfi_offset ra, -8
278
- ; RV64IZCMP-SR-NEXT: .cfi_offset s0, -16
273
+ ; RV64IZCMP-SR-NEXT: .cfi_offset ra, -16
274
+ ; RV64IZCMP-SR-NEXT: .cfi_offset s0, -8
279
275
; RV64IZCMP-SR-NEXT: addi s0, sp, 16
280
276
; RV64IZCMP-SR-NEXT: .cfi_def_cfa s0, 0
281
277
; RV64IZCMP-SR-NEXT: slli a0, a0, 32
@@ -287,7 +283,7 @@ define i32 @pushpopret1(i32 signext %size) {
287
283
; RV64IZCMP-SR-NEXT: call callee_void@plt
288
284
; RV64IZCMP-SR-NEXT: li a0, 1
289
285
; RV64IZCMP-SR-NEXT: addi sp, s0, -16
290
- ; RV64IZCMP-SR-NEXT: tail __riscv_restore_1
286
+ ; RV64IZCMP-SR-NEXT: cm.popret {ra, s0}, 16
291
287
;
292
288
; RV32I-LABEL: pushpopret1:
293
289
; RV32I: # %bb.0: # %entry
@@ -379,10 +375,10 @@ define i32 @pushpopretneg1(i32 signext %size) {
379
375
;
380
376
; RV32IZCMP-SR-LABEL: pushpopretneg1:
381
377
; RV32IZCMP-SR: # %bb.0: # %entry
382
- ; RV32IZCMP-SR-NEXT: call t0, __riscv_save_1
378
+ ; RV32IZCMP-SR-NEXT: cm.push {ra, s0}, -16
383
379
; RV32IZCMP-SR-NEXT: .cfi_def_cfa_offset 16
384
- ; RV32IZCMP-SR-NEXT: .cfi_offset ra, -4
385
- ; RV32IZCMP-SR-NEXT: .cfi_offset s0, -8
380
+ ; RV32IZCMP-SR-NEXT: .cfi_offset ra, -8
381
+ ; RV32IZCMP-SR-NEXT: .cfi_offset s0, -4
386
382
; RV32IZCMP-SR-NEXT: addi s0, sp, 16
387
383
; RV32IZCMP-SR-NEXT: .cfi_def_cfa s0, 0
388
384
; RV32IZCMP-SR-NEXT: addi a0, a0, 15
@@ -392,14 +388,14 @@ define i32 @pushpopretneg1(i32 signext %size) {
392
388
; RV32IZCMP-SR-NEXT: call callee_void@plt
393
389
; RV32IZCMP-SR-NEXT: li a0, -1
394
390
; RV32IZCMP-SR-NEXT: addi sp, s0, -16
395
- ; RV32IZCMP-SR-NEXT: tail __riscv_restore_1
391
+ ; RV32IZCMP-SR-NEXT: cm.popret {ra, s0}, 16
396
392
;
397
393
; RV64IZCMP-SR-LABEL: pushpopretneg1:
398
394
; RV64IZCMP-SR: # %bb.0: # %entry
399
- ; RV64IZCMP-SR-NEXT: call t0, __riscv_save_1
395
+ ; RV64IZCMP-SR-NEXT: cm.push {ra, s0}, -16
400
396
; RV64IZCMP-SR-NEXT: .cfi_def_cfa_offset 16
401
- ; RV64IZCMP-SR-NEXT: .cfi_offset ra, -8
402
- ; RV64IZCMP-SR-NEXT: .cfi_offset s0, -16
397
+ ; RV64IZCMP-SR-NEXT: .cfi_offset ra, -16
398
+ ; RV64IZCMP-SR-NEXT: .cfi_offset s0, -8
403
399
; RV64IZCMP-SR-NEXT: addi s0, sp, 16
404
400
; RV64IZCMP-SR-NEXT: .cfi_def_cfa s0, 0
405
401
; RV64IZCMP-SR-NEXT: slli a0, a0, 32
@@ -411,7 +407,7 @@ define i32 @pushpopretneg1(i32 signext %size) {
411
407
; RV64IZCMP-SR-NEXT: call callee_void@plt
412
408
; RV64IZCMP-SR-NEXT: li a0, -1
413
409
; RV64IZCMP-SR-NEXT: addi sp, s0, -16
414
- ; RV64IZCMP-SR-NEXT: tail __riscv_restore_1
410
+ ; RV64IZCMP-SR-NEXT: cm.popret {ra, s0}, 16
415
411
;
416
412
; RV32I-LABEL: pushpopretneg1:
417
413
; RV32I: # %bb.0: # %entry
@@ -503,10 +499,10 @@ define i32 @pushpopret2(i32 signext %size) {
503
499
;
504
500
; RV32IZCMP-SR-LABEL: pushpopret2:
505
501
; RV32IZCMP-SR: # %bb.0: # %entry
506
- ; RV32IZCMP-SR-NEXT: call t0, __riscv_save_1
502
+ ; RV32IZCMP-SR-NEXT: cm.push {ra, s0}, -16
507
503
; RV32IZCMP-SR-NEXT: .cfi_def_cfa_offset 16
508
- ; RV32IZCMP-SR-NEXT: .cfi_offset ra, -4
509
- ; RV32IZCMP-SR-NEXT: .cfi_offset s0, -8
504
+ ; RV32IZCMP-SR-NEXT: .cfi_offset ra, -8
505
+ ; RV32IZCMP-SR-NEXT: .cfi_offset s0, -4
510
506
; RV32IZCMP-SR-NEXT: addi s0, sp, 16
511
507
; RV32IZCMP-SR-NEXT: .cfi_def_cfa s0, 0
512
508
; RV32IZCMP-SR-NEXT: addi a0, a0, 15
@@ -516,14 +512,14 @@ define i32 @pushpopret2(i32 signext %size) {
516
512
; RV32IZCMP-SR-NEXT: call callee_void@plt
517
513
; RV32IZCMP-SR-NEXT: li a0, 2
518
514
; RV32IZCMP-SR-NEXT: addi sp, s0, -16
519
- ; RV32IZCMP-SR-NEXT: tail __riscv_restore_1
515
+ ; RV32IZCMP-SR-NEXT: cm.popret {ra, s0}, 16
520
516
;
521
517
; RV64IZCMP-SR-LABEL: pushpopret2:
522
518
; RV64IZCMP-SR: # %bb.0: # %entry
523
- ; RV64IZCMP-SR-NEXT: call t0, __riscv_save_1
519
+ ; RV64IZCMP-SR-NEXT: cm.push {ra, s0}, -16
524
520
; RV64IZCMP-SR-NEXT: .cfi_def_cfa_offset 16
525
- ; RV64IZCMP-SR-NEXT: .cfi_offset ra, -8
526
- ; RV64IZCMP-SR-NEXT: .cfi_offset s0, -16
521
+ ; RV64IZCMP-SR-NEXT: .cfi_offset ra, -16
522
+ ; RV64IZCMP-SR-NEXT: .cfi_offset s0, -8
527
523
; RV64IZCMP-SR-NEXT: addi s0, sp, 16
528
524
; RV64IZCMP-SR-NEXT: .cfi_def_cfa s0, 0
529
525
; RV64IZCMP-SR-NEXT: slli a0, a0, 32
@@ -535,7 +531,7 @@ define i32 @pushpopret2(i32 signext %size) {
535
531
; RV64IZCMP-SR-NEXT: call callee_void@plt
536
532
; RV64IZCMP-SR-NEXT: li a0, 2
537
533
; RV64IZCMP-SR-NEXT: addi sp, s0, -16
538
- ; RV64IZCMP-SR-NEXT: tail __riscv_restore_1
534
+ ; RV64IZCMP-SR-NEXT: cm.popret {ra, s0}, 16
539
535
;
540
536
; RV32I-LABEL: pushpopret2:
541
537
; RV32I: # %bb.0: # %entry
@@ -1220,7 +1216,7 @@ define void @many_args(i32, i32, i32, i32, i32, i32, i32, i32, i32) nounwind {
1220
1216
;
1221
1217
; RV32IZCMP-SR-LABEL: many_args:
1222
1218
; RV32IZCMP-SR: # %bb.0: # %entry
1223
- ; RV32IZCMP-SR-NEXT: call t0, __riscv_save_5
1219
+ ; RV32IZCMP-SR-NEXT: cm.push {ra, s0-s4}, -32
1224
1220
; RV32IZCMP-SR-NEXT: lui a0, %hi(var0)
1225
1221
; RV32IZCMP-SR-NEXT: lw a6, %lo(var0)(a0)
1226
1222
; RV32IZCMP-SR-NEXT: lw a7, %lo(var0+4)(a0)
@@ -1259,11 +1255,11 @@ define void @many_args(i32, i32, i32, i32, i32, i32, i32, i32, i32) nounwind {
1259
1255
; RV32IZCMP-SR-NEXT: sw t0, %lo(var0+8)(a0)
1260
1256
; RV32IZCMP-SR-NEXT: sw a7, %lo(var0+4)(a0)
1261
1257
; RV32IZCMP-SR-NEXT: sw a6, %lo(var0)(a0)
1262
- ; RV32IZCMP-SR-NEXT: tail __riscv_restore_5
1258
+ ; RV32IZCMP-SR-NEXT: cm.popret {ra, s0-s4}, 32
1263
1259
;
1264
1260
; RV64IZCMP-SR-LABEL: many_args:
1265
1261
; RV64IZCMP-SR: # %bb.0: # %entry
1266
- ; RV64IZCMP-SR-NEXT: call t0, __riscv_save_5
1262
+ ; RV64IZCMP-SR-NEXT: cm.push {ra, s0-s4}, -48
1267
1263
; RV64IZCMP-SR-NEXT: lui a0, %hi(var0)
1268
1264
; RV64IZCMP-SR-NEXT: lw a6, %lo(var0)(a0)
1269
1265
; RV64IZCMP-SR-NEXT: lw a7, %lo(var0+4)(a0)
@@ -1302,7 +1298,7 @@ define void @many_args(i32, i32, i32, i32, i32, i32, i32, i32, i32) nounwind {
1302
1298
; RV64IZCMP-SR-NEXT: sw t0, %lo(var0+8)(a0)
1303
1299
; RV64IZCMP-SR-NEXT: sw a7, %lo(var0+4)(a0)
1304
1300
; RV64IZCMP-SR-NEXT: sw a6, %lo(var0)(a0)
1305
- ; RV64IZCMP-SR-NEXT: tail __riscv_restore_5
1301
+ ; RV64IZCMP-SR-NEXT: cm.popret {ra, s0-s4}, 48
1306
1302
;
1307
1303
; RV32I-LABEL: many_args:
1308
1304
; RV32I: # %bb.0: # %entry
@@ -1456,7 +1452,7 @@ define void @alloca(i32 %n) nounwind {
1456
1452
;
1457
1453
; RV32IZCMP-SR-LABEL: alloca:
1458
1454
; RV32IZCMP-SR: # %bb.0:
1459
- ; RV32IZCMP-SR-NEXT: call t0, __riscv_save_2
1455
+ ; RV32IZCMP-SR-NEXT: cm.push {ra, s0-s1}, -16
1460
1456
; RV32IZCMP-SR-NEXT: addi s0, sp, 16
1461
1457
; RV32IZCMP-SR-NEXT: mv s1, sp
1462
1458
; RV32IZCMP-SR-NEXT: addi a0, a0, 15
@@ -1466,11 +1462,11 @@ define void @alloca(i32 %n) nounwind {
1466
1462
; RV32IZCMP-SR-NEXT: call notdead@plt
1467
1463
; RV32IZCMP-SR-NEXT: mv sp, s1
1468
1464
; RV32IZCMP-SR-NEXT: addi sp, s0, -16
1469
- ; RV32IZCMP-SR-NEXT: tail __riscv_restore_2
1465
+ ; RV32IZCMP-SR-NEXT: cm.popret {ra, s0-s1}, 16
1470
1466
;
1471
1467
; RV64IZCMP-SR-LABEL: alloca:
1472
1468
; RV64IZCMP-SR: # %bb.0:
1473
- ; RV64IZCMP-SR-NEXT: call t0, __riscv_save_2
1469
+ ; RV64IZCMP-SR-NEXT: cm.push {ra, s0-s1}, -32
1474
1470
; RV64IZCMP-SR-NEXT: addi s0, sp, 32
1475
1471
; RV64IZCMP-SR-NEXT: mv s1, sp
1476
1472
; RV64IZCMP-SR-NEXT: slli a0, a0, 32
@@ -1482,7 +1478,7 @@ define void @alloca(i32 %n) nounwind {
1482
1478
; RV64IZCMP-SR-NEXT: call notdead@plt
1483
1479
; RV64IZCMP-SR-NEXT: mv sp, s1
1484
1480
; RV64IZCMP-SR-NEXT: addi sp, s0, -32
1485
- ; RV64IZCMP-SR-NEXT: tail __riscv_restore_2
1481
+ ; RV64IZCMP-SR-NEXT: cm.popret {ra, s0-s1}, 32
1486
1482
;
1487
1483
; RV32I-LABEL: alloca:
1488
1484
; RV32I: # %bb.0:
@@ -1790,15 +1786,15 @@ define void @foo_no_irq() nounwind{
1790
1786
;
1791
1787
; RV32IZCMP-SR-LABEL: foo_no_irq:
1792
1788
; RV32IZCMP-SR: # %bb.0:
1793
- ; RV32IZCMP-SR-NEXT: call t0, __riscv_save_0
1789
+ ; RV32IZCMP-SR-NEXT: cm.push {ra}, -16
1794
1790
; RV32IZCMP-SR-NEXT: call foo_test_irq@plt
1795
- ; RV32IZCMP-SR-NEXT: tail __riscv_restore_0
1791
+ ; RV32IZCMP-SR-NEXT: cm.popret {ra}, 16
1796
1792
;
1797
1793
; RV64IZCMP-SR-LABEL: foo_no_irq:
1798
1794
; RV64IZCMP-SR: # %bb.0:
1799
- ; RV64IZCMP-SR-NEXT: call t0, __riscv_save_0
1795
+ ; RV64IZCMP-SR-NEXT: cm.push {ra}, -16
1800
1796
; RV64IZCMP-SR-NEXT: call foo_test_irq@plt
1801
- ; RV64IZCMP-SR-NEXT: tail __riscv_restore_0
1797
+ ; RV64IZCMP-SR-NEXT: cm.popret {ra}, 16
1802
1798
;
1803
1799
; RV32I-LABEL: foo_no_irq:
1804
1800
; RV32I: # %bb.0:
@@ -2739,8 +2735,7 @@ define void @callee_no_irq() nounwind{
2739
2735
;
2740
2736
; RV32IZCMP-SR-LABEL: callee_no_irq:
2741
2737
; RV32IZCMP-SR: # %bb.0:
2742
- ; RV32IZCMP-SR-NEXT: call t0, __riscv_save_12
2743
- ; RV32IZCMP-SR-NEXT: addi sp, sp, -32
2738
+ ; RV32IZCMP-SR-NEXT: cm.push {ra, s0-s11}, -96
2744
2739
; RV32IZCMP-SR-NEXT: lui a6, %hi(var_test_irq)
2745
2740
; RV32IZCMP-SR-NEXT: lw a0, %lo(var_test_irq)(a6)
2746
2741
; RV32IZCMP-SR-NEXT: sw a0, 28(sp) # 4-byte Folded Spill
@@ -2819,13 +2814,11 @@ define void @callee_no_irq() nounwind{
2819
2814
; RV32IZCMP-SR-NEXT: sw a0, %lo(var_test_irq+4)(a6)
2820
2815
; RV32IZCMP-SR-NEXT: lw a0, 28(sp) # 4-byte Folded Reload
2821
2816
; RV32IZCMP-SR-NEXT: sw a0, %lo(var_test_irq)(a6)
2822
- ; RV32IZCMP-SR-NEXT: addi sp, sp, 32
2823
- ; RV32IZCMP-SR-NEXT: tail __riscv_restore_12
2817
+ ; RV32IZCMP-SR-NEXT: cm.popret {ra, s0-s11}, 96
2824
2818
;
2825
2819
; RV64IZCMP-SR-LABEL: callee_no_irq:
2826
2820
; RV64IZCMP-SR: # %bb.0:
2827
- ; RV64IZCMP-SR-NEXT: call t0, __riscv_save_12
2828
- ; RV64IZCMP-SR-NEXT: addi sp, sp, -48
2821
+ ; RV64IZCMP-SR-NEXT: cm.push {ra, s0-s11}, -160
2829
2822
; RV64IZCMP-SR-NEXT: lui a6, %hi(var_test_irq)
2830
2823
; RV64IZCMP-SR-NEXT: lw a0, %lo(var_test_irq)(a6)
2831
2824
; RV64IZCMP-SR-NEXT: sd a0, 40(sp) # 8-byte Folded Spill
@@ -2904,8 +2897,7 @@ define void @callee_no_irq() nounwind{
2904
2897
; RV64IZCMP-SR-NEXT: sw a0, %lo(var_test_irq+4)(a6)
2905
2898
; RV64IZCMP-SR-NEXT: ld a0, 40(sp) # 8-byte Folded Reload
2906
2899
; RV64IZCMP-SR-NEXT: sw a0, %lo(var_test_irq)(a6)
2907
- ; RV64IZCMP-SR-NEXT: addi sp, sp, 48
2908
- ; RV64IZCMP-SR-NEXT: tail __riscv_restore_12
2900
+ ; RV64IZCMP-SR-NEXT: cm.popret {ra, s0-s11}, 160
2909
2901
;
2910
2902
; RV32I-LABEL: callee_no_irq:
2911
2903
; RV32I: # %bb.0:
0 commit comments