@@ -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:
@@ -84,6 +85,7 @@ define i32 @va1(ptr %fmt, ...) {
8485; RV64-NEXT: sw a2, 12(sp)
8586; RV64-NEXT: lw a0, 0(a0)
8687; RV64-NEXT: addi sp, sp, 80
88+ ; RV64-NEXT: .cfi_def_cfa_offset 0
8789; RV64-NEXT: ret
8890;
8991; RV32-WITHFP-LABEL: va1:
@@ -111,7 +113,10 @@ define i32 @va1(ptr %fmt, ...) {
111113; RV32-WITHFP-NEXT: lw a0, 0(a0)
112114; RV32-WITHFP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
113115; RV32-WITHFP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
116+ ; RV32-WITHFP-NEXT: .cfi_restore ra
117+ ; RV32-WITHFP-NEXT: .cfi_restore s0
114118; RV32-WITHFP-NEXT: addi sp, sp, 48
119+ ; RV32-WITHFP-NEXT: .cfi_def_cfa_offset 0
115120; RV32-WITHFP-NEXT: ret
116121;
117122; RV64-WITHFP-LABEL: va1:
@@ -144,7 +149,10 @@ define i32 @va1(ptr %fmt, ...) {
144149; RV64-WITHFP-NEXT: lw a0, 0(a0)
145150; RV64-WITHFP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
146151; RV64-WITHFP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
152+ ; RV64-WITHFP-NEXT: .cfi_restore ra
153+ ; RV64-WITHFP-NEXT: .cfi_restore s0
147154; RV64-WITHFP-NEXT: addi sp, sp, 96
155+ ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
148156; RV64-WITHFP-NEXT: ret
149157 %va = alloca ptr
150158 call void @llvm.va_start (ptr %va )
@@ -1588,6 +1596,7 @@ define i32 @va_large_stack(ptr %fmt, ...) {
15881596; RV32-NEXT: lui a1, 24414
15891597; RV32-NEXT: addi a1, a1, 304
15901598; RV32-NEXT: add sp, sp, a1
1599+ ; RV32-NEXT: .cfi_def_cfa_offset 0
15911600; RV32-NEXT: ret
15921601;
15931602; RV64-LABEL: va_large_stack:
@@ -1633,6 +1642,7 @@ define i32 @va_large_stack(ptr %fmt, ...) {
16331642; RV64-NEXT: lui a1, 24414
16341643; RV64-NEXT: addiw a1, a1, 336
16351644; RV64-NEXT: add sp, sp, a1
1645+ ; RV64-NEXT: .cfi_def_cfa_offset 0
16361646; RV64-NEXT: ret
16371647;
16381648; RV32-WITHFP-LABEL: va_large_stack:
@@ -1667,9 +1677,13 @@ define i32 @va_large_stack(ptr %fmt, ...) {
16671677; RV32-WITHFP-NEXT: lui a1, 24414
16681678; RV32-WITHFP-NEXT: addi a1, a1, -1728
16691679; RV32-WITHFP-NEXT: add sp, sp, a1
1680+ ; RV32-WITHFP-NEXT: .cfi_def_cfa_offset 2032
16701681; RV32-WITHFP-NEXT: lw ra, 1996(sp) # 4-byte Folded Reload
16711682; RV32-WITHFP-NEXT: lw s0, 1992(sp) # 4-byte Folded Reload
1683+ ; RV32-WITHFP-NEXT: .cfi_restore ra
1684+ ; RV32-WITHFP-NEXT: .cfi_restore s0
16721685; RV32-WITHFP-NEXT: addi sp, sp, 2032
1686+ ; RV32-WITHFP-NEXT: .cfi_def_cfa_offset 0
16731687; RV32-WITHFP-NEXT: ret
16741688;
16751689; RV64-WITHFP-LABEL: va_large_stack:
@@ -1709,9 +1723,13 @@ define i32 @va_large_stack(ptr %fmt, ...) {
17091723; RV64-WITHFP-NEXT: lui a1, 24414
17101724; RV64-WITHFP-NEXT: addiw a1, a1, -1680
17111725; RV64-WITHFP-NEXT: add sp, sp, a1
1726+ ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 2032
17121727; RV64-WITHFP-NEXT: ld ra, 1960(sp) # 8-byte Folded Reload
17131728; RV64-WITHFP-NEXT: ld s0, 1952(sp) # 8-byte Folded Reload
1729+ ; RV64-WITHFP-NEXT: .cfi_restore ra
1730+ ; RV64-WITHFP-NEXT: .cfi_restore s0
17141731; RV64-WITHFP-NEXT: addi sp, sp, 2032
1732+ ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
17151733; RV64-WITHFP-NEXT: ret
17161734 %large = alloca [ 100000000 x i8 ]
17171735 %va = alloca ptr
@@ -1739,6 +1757,7 @@ define iXLen @va_vprintf(ptr %fmt, ptr %arg_start) {
17391757; RV32-NEXT: sw a1, 8(sp)
17401758; RV32-NEXT: lw a0, 0(a0)
17411759; RV32-NEXT: addi sp, sp, 16
1760+ ; RV32-NEXT: .cfi_def_cfa_offset 0
17421761; RV32-NEXT: ret
17431762;
17441763; RV64-LABEL: va_vprintf:
@@ -1755,6 +1774,7 @@ define iXLen @va_vprintf(ptr %fmt, ptr %arg_start) {
17551774; RV64-NEXT: sd a1, 0(sp)
17561775; RV64-NEXT: ld a0, 0(a0)
17571776; RV64-NEXT: addi sp, sp, 16
1777+ ; RV64-NEXT: .cfi_def_cfa_offset 0
17581778; RV64-NEXT: ret
17591779;
17601780; RV32-WITHFP-LABEL: va_vprintf:
@@ -1778,7 +1798,10 @@ define iXLen @va_vprintf(ptr %fmt, ptr %arg_start) {
17781798; RV32-WITHFP-NEXT: lw a0, 0(a0)
17791799; RV32-WITHFP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
17801800; RV32-WITHFP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
1801+ ; RV32-WITHFP-NEXT: .cfi_restore ra
1802+ ; RV32-WITHFP-NEXT: .cfi_restore s0
17811803; RV32-WITHFP-NEXT: addi sp, sp, 16
1804+ ; RV32-WITHFP-NEXT: .cfi_def_cfa_offset 0
17821805; RV32-WITHFP-NEXT: ret
17831806;
17841807; RV64-WITHFP-LABEL: va_vprintf:
@@ -1802,7 +1825,10 @@ define iXLen @va_vprintf(ptr %fmt, ptr %arg_start) {
18021825; RV64-WITHFP-NEXT: ld a0, 0(a0)
18031826; RV64-WITHFP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
18041827; RV64-WITHFP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
1828+ ; RV64-WITHFP-NEXT: .cfi_restore ra
1829+ ; RV64-WITHFP-NEXT: .cfi_restore s0
18051830; RV64-WITHFP-NEXT: addi sp, sp, 32
1831+ ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
18061832; RV64-WITHFP-NEXT: ret
18071833 %args = alloca ptr
18081834 %args_cp = alloca ptr
@@ -1832,7 +1858,9 @@ define i32 @va_printf(ptr %fmt, ...) {
18321858; RV32-NEXT: sw a7, 44(sp)
18331859; RV32-NEXT: call va_vprintf
18341860; RV32-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
1861+ ; RV32-NEXT: .cfi_restore ra
18351862; RV32-NEXT: addi sp, sp, 48
1863+ ; RV32-NEXT: .cfi_def_cfa_offset 0
18361864; RV32-NEXT: ret
18371865;
18381866; RV64-LABEL: va_printf:
@@ -1853,7 +1881,9 @@ define i32 @va_printf(ptr %fmt, ...) {
18531881; RV64-NEXT: sd a7, 72(sp)
18541882; RV64-NEXT: call va_vprintf
18551883; RV64-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
1884+ ; RV64-NEXT: .cfi_restore ra
18561885; RV64-NEXT: addi sp, sp, 80
1886+ ; RV64-NEXT: .cfi_def_cfa_offset 0
18571887; RV64-NEXT: ret
18581888;
18591889; RV32-WITHFP-LABEL: va_printf:
@@ -1879,7 +1909,10 @@ define i32 @va_printf(ptr %fmt, ...) {
18791909; RV32-WITHFP-NEXT: call va_vprintf
18801910; RV32-WITHFP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
18811911; RV32-WITHFP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
1912+ ; RV32-WITHFP-NEXT: .cfi_restore ra
1913+ ; RV32-WITHFP-NEXT: .cfi_restore s0
18821914; RV32-WITHFP-NEXT: addi sp, sp, 48
1915+ ; RV32-WITHFP-NEXT: .cfi_def_cfa_offset 0
18831916; RV32-WITHFP-NEXT: ret
18841917;
18851918; RV64-WITHFP-LABEL: va_printf:
@@ -1905,7 +1938,10 @@ define i32 @va_printf(ptr %fmt, ...) {
19051938; RV64-WITHFP-NEXT: call va_vprintf
19061939; RV64-WITHFP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
19071940; RV64-WITHFP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
1941+ ; RV64-WITHFP-NEXT: .cfi_restore ra
1942+ ; RV64-WITHFP-NEXT: .cfi_restore s0
19081943; RV64-WITHFP-NEXT: addi sp, sp, 96
1944+ ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
19091945; RV64-WITHFP-NEXT: ret
19101946 %args = alloca ptr
19111947 call void @llvm.va_start (ptr %args )
0 commit comments