@@ -59,6 +59,7 @@ define i32 @va1(ptr %fmt, ...) {
5959; RV32-NEXT: sw a1, 12(sp)
6060; RV32-NEXT: lw a0, 0(a0)
6161; RV32-NEXT: addi sp, sp, 48
62+ ; RV32-NEXT: .cfi_def_cfa_offset 0
6263; RV32-NEXT: ret
6364;
6465; RV64-LABEL: va1:
@@ -85,6 +86,7 @@ define i32 @va1(ptr %fmt, ...) {
8586; RV64-NEXT: sw a2, 12(sp)
8687; RV64-NEXT: lw a0, 0(a0)
8788; RV64-NEXT: addi sp, sp, 80
89+ ; RV64-NEXT: .cfi_def_cfa_offset 0
8890; RV64-NEXT: ret
8991;
9092; RV32-WITHFP-LABEL: va1:
@@ -112,7 +114,10 @@ define i32 @va1(ptr %fmt, ...) {
112114; RV32-WITHFP-NEXT: lw a0, 0(a0)
113115; RV32-WITHFP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
114116; RV32-WITHFP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
117+ ; RV32-WITHFP-NEXT: .cfi_restore ra
118+ ; RV32-WITHFP-NEXT: .cfi_restore s0
115119; RV32-WITHFP-NEXT: addi sp, sp, 48
120+ ; RV32-WITHFP-NEXT: .cfi_def_cfa_offset 0
116121; RV32-WITHFP-NEXT: ret
117122;
118123; RV64-WITHFP-LABEL: va1:
@@ -146,7 +151,10 @@ define i32 @va1(ptr %fmt, ...) {
146151; RV64-WITHFP-NEXT: lw a0, 0(a0)
147152; RV64-WITHFP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
148153; RV64-WITHFP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
154+ ; RV64-WITHFP-NEXT: .cfi_restore ra
155+ ; RV64-WITHFP-NEXT: .cfi_restore s0
149156; RV64-WITHFP-NEXT: addi sp, sp, 96
157+ ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
150158; RV64-WITHFP-NEXT: ret
151159 %va = alloca ptr
152160 call void @llvm.va_start (ptr %va )
@@ -1602,6 +1610,7 @@ define i32 @va_large_stack(ptr %fmt, ...) {
16021610; RV32-NEXT: lui a1, 24414
16031611; RV32-NEXT: addi a1, a1, 304
16041612; RV32-NEXT: add sp, sp, a1
1613+ ; RV32-NEXT: .cfi_def_cfa_offset 0
16051614; RV32-NEXT: ret
16061615;
16071616; RV64-LABEL: va_large_stack:
@@ -1648,6 +1657,7 @@ define i32 @va_large_stack(ptr %fmt, ...) {
16481657; RV64-NEXT: lui a1, 24414
16491658; RV64-NEXT: addiw a1, a1, 336
16501659; RV64-NEXT: add sp, sp, a1
1660+ ; RV64-NEXT: .cfi_def_cfa_offset 0
16511661; RV64-NEXT: ret
16521662;
16531663; RV32-WITHFP-LABEL: va_large_stack:
@@ -1682,9 +1692,13 @@ define i32 @va_large_stack(ptr %fmt, ...) {
16821692; RV32-WITHFP-NEXT: lui a1, 24414
16831693; RV32-WITHFP-NEXT: addi a1, a1, -1728
16841694; RV32-WITHFP-NEXT: add sp, sp, a1
1695+ ; RV32-WITHFP-NEXT: .cfi_def_cfa_offset 2032
16851696; RV32-WITHFP-NEXT: lw ra, 1996(sp) # 4-byte Folded Reload
16861697; RV32-WITHFP-NEXT: lw s0, 1992(sp) # 4-byte Folded Reload
1698+ ; RV32-WITHFP-NEXT: .cfi_restore ra
1699+ ; RV32-WITHFP-NEXT: .cfi_restore s0
16871700; RV32-WITHFP-NEXT: addi sp, sp, 2032
1701+ ; RV32-WITHFP-NEXT: .cfi_def_cfa_offset 0
16881702; RV32-WITHFP-NEXT: ret
16891703;
16901704; RV64-WITHFP-LABEL: va_large_stack:
@@ -1724,9 +1738,13 @@ define i32 @va_large_stack(ptr %fmt, ...) {
17241738; RV64-WITHFP-NEXT: lui a1, 24414
17251739; RV64-WITHFP-NEXT: addiw a1, a1, -1680
17261740; RV64-WITHFP-NEXT: add sp, sp, a1
1741+ ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 2032
17271742; RV64-WITHFP-NEXT: ld ra, 1960(sp) # 8-byte Folded Reload
17281743; RV64-WITHFP-NEXT: ld s0, 1952(sp) # 8-byte Folded Reload
1744+ ; RV64-WITHFP-NEXT: .cfi_restore ra
1745+ ; RV64-WITHFP-NEXT: .cfi_restore s0
17291746; RV64-WITHFP-NEXT: addi sp, sp, 2032
1747+ ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
17301748; RV64-WITHFP-NEXT: ret
17311749 %large = alloca [ 100000000 x i8 ]
17321750 %va = alloca ptr
@@ -1754,6 +1772,7 @@ define iXLen @va_vprintf(ptr %fmt, ptr %arg_start) {
17541772; RV32-NEXT: sw a1, 8(sp)
17551773; RV32-NEXT: lw a0, 0(a0)
17561774; RV32-NEXT: addi sp, sp, 16
1775+ ; RV32-NEXT: .cfi_def_cfa_offset 0
17571776; RV32-NEXT: ret
17581777;
17591778; RV64-LABEL: va_vprintf:
@@ -1770,6 +1789,7 @@ define iXLen @va_vprintf(ptr %fmt, ptr %arg_start) {
17701789; RV64-NEXT: sd a1, 0(sp)
17711790; RV64-NEXT: ld a0, 0(a0)
17721791; RV64-NEXT: addi sp, sp, 16
1792+ ; RV64-NEXT: .cfi_def_cfa_offset 0
17731793; RV64-NEXT: ret
17741794;
17751795; RV32-WITHFP-LABEL: va_vprintf:
@@ -1793,7 +1813,10 @@ define iXLen @va_vprintf(ptr %fmt, ptr %arg_start) {
17931813; RV32-WITHFP-NEXT: lw a0, 0(a0)
17941814; RV32-WITHFP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
17951815; RV32-WITHFP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
1816+ ; RV32-WITHFP-NEXT: .cfi_restore ra
1817+ ; RV32-WITHFP-NEXT: .cfi_restore s0
17961818; RV32-WITHFP-NEXT: addi sp, sp, 16
1819+ ; RV32-WITHFP-NEXT: .cfi_def_cfa_offset 0
17971820; RV32-WITHFP-NEXT: ret
17981821;
17991822; RV64-WITHFP-LABEL: va_vprintf:
@@ -1817,7 +1840,10 @@ define iXLen @va_vprintf(ptr %fmt, ptr %arg_start) {
18171840; RV64-WITHFP-NEXT: ld a0, 0(a0)
18181841; RV64-WITHFP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
18191842; RV64-WITHFP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
1843+ ; RV64-WITHFP-NEXT: .cfi_restore ra
1844+ ; RV64-WITHFP-NEXT: .cfi_restore s0
18201845; RV64-WITHFP-NEXT: addi sp, sp, 32
1846+ ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
18211847; RV64-WITHFP-NEXT: ret
18221848 %args = alloca ptr
18231849 %args_cp = alloca ptr
@@ -1847,7 +1873,9 @@ define i32 @va_printf(ptr %fmt, ...) {
18471873; RV32-NEXT: sw a7, 44(sp)
18481874; RV32-NEXT: call va_vprintf
18491875; RV32-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
1876+ ; RV32-NEXT: .cfi_restore ra
18501877; RV32-NEXT: addi sp, sp, 48
1878+ ; RV32-NEXT: .cfi_def_cfa_offset 0
18511879; RV32-NEXT: ret
18521880;
18531881; RV64-LABEL: va_printf:
@@ -1868,7 +1896,9 @@ define i32 @va_printf(ptr %fmt, ...) {
18681896; RV64-NEXT: sd a7, 72(sp)
18691897; RV64-NEXT: call va_vprintf
18701898; RV64-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
1899+ ; RV64-NEXT: .cfi_restore ra
18711900; RV64-NEXT: addi sp, sp, 80
1901+ ; RV64-NEXT: .cfi_def_cfa_offset 0
18721902; RV64-NEXT: ret
18731903;
18741904; RV32-WITHFP-LABEL: va_printf:
@@ -1894,7 +1924,10 @@ define i32 @va_printf(ptr %fmt, ...) {
18941924; RV32-WITHFP-NEXT: call va_vprintf
18951925; RV32-WITHFP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
18961926; RV32-WITHFP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
1927+ ; RV32-WITHFP-NEXT: .cfi_restore ra
1928+ ; RV32-WITHFP-NEXT: .cfi_restore s0
18971929; RV32-WITHFP-NEXT: addi sp, sp, 48
1930+ ; RV32-WITHFP-NEXT: .cfi_def_cfa_offset 0
18981931; RV32-WITHFP-NEXT: ret
18991932;
19001933; RV64-WITHFP-LABEL: va_printf:
@@ -1920,7 +1953,10 @@ define i32 @va_printf(ptr %fmt, ...) {
19201953; RV64-WITHFP-NEXT: call va_vprintf
19211954; RV64-WITHFP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
19221955; RV64-WITHFP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
1956+ ; RV64-WITHFP-NEXT: .cfi_restore ra
1957+ ; RV64-WITHFP-NEXT: .cfi_restore s0
19231958; RV64-WITHFP-NEXT: addi sp, sp, 96
1959+ ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
19241960; RV64-WITHFP-NEXT: ret
19251961 %args = alloca ptr
19261962 call void @llvm.va_start (ptr %args )
0 commit comments