@@ -59,6 +59,7 @@ define i32 @va1(ptr %fmt, ...) {
59
59
; RV32-NEXT: sw a1, 12(sp)
60
60
; RV32-NEXT: lw a0, 0(a0)
61
61
; RV32-NEXT: addi sp, sp, 48
62
+ ; RV32-NEXT: .cfi_def_cfa_offset 0
62
63
; RV32-NEXT: ret
63
64
;
64
65
; RV64-LABEL: va1:
@@ -84,6 +85,7 @@ define i32 @va1(ptr %fmt, ...) {
84
85
; RV64-NEXT: sw a2, 12(sp)
85
86
; RV64-NEXT: lw a0, 0(a0)
86
87
; RV64-NEXT: addi sp, sp, 80
88
+ ; RV64-NEXT: .cfi_def_cfa_offset 0
87
89
; RV64-NEXT: ret
88
90
;
89
91
; RV32-WITHFP-LABEL: va1:
@@ -111,7 +113,10 @@ define i32 @va1(ptr %fmt, ...) {
111
113
; RV32-WITHFP-NEXT: lw a0, 0(a0)
112
114
; RV32-WITHFP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
113
115
; 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
114
118
; RV32-WITHFP-NEXT: addi sp, sp, 48
119
+ ; RV32-WITHFP-NEXT: .cfi_def_cfa_offset 0
115
120
; RV32-WITHFP-NEXT: ret
116
121
;
117
122
; RV64-WITHFP-LABEL: va1:
@@ -144,7 +149,10 @@ define i32 @va1(ptr %fmt, ...) {
144
149
; RV64-WITHFP-NEXT: lw a0, 0(a0)
145
150
; RV64-WITHFP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
146
151
; 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
147
154
; RV64-WITHFP-NEXT: addi sp, sp, 96
155
+ ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
148
156
; RV64-WITHFP-NEXT: ret
149
157
%va = alloca ptr
150
158
call void @llvm.va_start (ptr %va )
@@ -1588,6 +1596,7 @@ define i32 @va_large_stack(ptr %fmt, ...) {
1588
1596
; RV32-NEXT: lui a1, 24414
1589
1597
; RV32-NEXT: addi a1, a1, 304
1590
1598
; RV32-NEXT: add sp, sp, a1
1599
+ ; RV32-NEXT: .cfi_def_cfa_offset 0
1591
1600
; RV32-NEXT: ret
1592
1601
;
1593
1602
; RV64-LABEL: va_large_stack:
@@ -1633,6 +1642,7 @@ define i32 @va_large_stack(ptr %fmt, ...) {
1633
1642
; RV64-NEXT: lui a1, 24414
1634
1643
; RV64-NEXT: addiw a1, a1, 336
1635
1644
; RV64-NEXT: add sp, sp, a1
1645
+ ; RV64-NEXT: .cfi_def_cfa_offset 0
1636
1646
; RV64-NEXT: ret
1637
1647
;
1638
1648
; RV32-WITHFP-LABEL: va_large_stack:
@@ -1667,9 +1677,13 @@ define i32 @va_large_stack(ptr %fmt, ...) {
1667
1677
; RV32-WITHFP-NEXT: lui a1, 24414
1668
1678
; RV32-WITHFP-NEXT: addi a1, a1, -1728
1669
1679
; RV32-WITHFP-NEXT: add sp, sp, a1
1680
+ ; RV32-WITHFP-NEXT: .cfi_def_cfa_offset 2032
1670
1681
; RV32-WITHFP-NEXT: lw ra, 1996(sp) # 4-byte Folded Reload
1671
1682
; 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
1672
1685
; RV32-WITHFP-NEXT: addi sp, sp, 2032
1686
+ ; RV32-WITHFP-NEXT: .cfi_def_cfa_offset 0
1673
1687
; RV32-WITHFP-NEXT: ret
1674
1688
;
1675
1689
; RV64-WITHFP-LABEL: va_large_stack:
@@ -1709,9 +1723,13 @@ define i32 @va_large_stack(ptr %fmt, ...) {
1709
1723
; RV64-WITHFP-NEXT: lui a1, 24414
1710
1724
; RV64-WITHFP-NEXT: addiw a1, a1, -1680
1711
1725
; RV64-WITHFP-NEXT: add sp, sp, a1
1726
+ ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 2032
1712
1727
; RV64-WITHFP-NEXT: ld ra, 1960(sp) # 8-byte Folded Reload
1713
1728
; 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
1714
1731
; RV64-WITHFP-NEXT: addi sp, sp, 2032
1732
+ ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
1715
1733
; RV64-WITHFP-NEXT: ret
1716
1734
%large = alloca [ 100000000 x i8 ]
1717
1735
%va = alloca ptr
@@ -1739,6 +1757,7 @@ define iXLen @va_vprintf(ptr %fmt, ptr %arg_start) {
1739
1757
; RV32-NEXT: sw a1, 8(sp)
1740
1758
; RV32-NEXT: lw a0, 0(a0)
1741
1759
; RV32-NEXT: addi sp, sp, 16
1760
+ ; RV32-NEXT: .cfi_def_cfa_offset 0
1742
1761
; RV32-NEXT: ret
1743
1762
;
1744
1763
; RV64-LABEL: va_vprintf:
@@ -1755,6 +1774,7 @@ define iXLen @va_vprintf(ptr %fmt, ptr %arg_start) {
1755
1774
; RV64-NEXT: sd a1, 0(sp)
1756
1775
; RV64-NEXT: ld a0, 0(a0)
1757
1776
; RV64-NEXT: addi sp, sp, 16
1777
+ ; RV64-NEXT: .cfi_def_cfa_offset 0
1758
1778
; RV64-NEXT: ret
1759
1779
;
1760
1780
; RV32-WITHFP-LABEL: va_vprintf:
@@ -1778,7 +1798,10 @@ define iXLen @va_vprintf(ptr %fmt, ptr %arg_start) {
1778
1798
; RV32-WITHFP-NEXT: lw a0, 0(a0)
1779
1799
; RV32-WITHFP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
1780
1800
; 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
1781
1803
; RV32-WITHFP-NEXT: addi sp, sp, 16
1804
+ ; RV32-WITHFP-NEXT: .cfi_def_cfa_offset 0
1782
1805
; RV32-WITHFP-NEXT: ret
1783
1806
;
1784
1807
; RV64-WITHFP-LABEL: va_vprintf:
@@ -1802,7 +1825,10 @@ define iXLen @va_vprintf(ptr %fmt, ptr %arg_start) {
1802
1825
; RV64-WITHFP-NEXT: ld a0, 0(a0)
1803
1826
; RV64-WITHFP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
1804
1827
; 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
1805
1830
; RV64-WITHFP-NEXT: addi sp, sp, 32
1831
+ ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
1806
1832
; RV64-WITHFP-NEXT: ret
1807
1833
%args = alloca ptr
1808
1834
%args_cp = alloca ptr
@@ -1832,7 +1858,9 @@ define i32 @va_printf(ptr %fmt, ...) {
1832
1858
; RV32-NEXT: sw a7, 44(sp)
1833
1859
; RV32-NEXT: call va_vprintf
1834
1860
; RV32-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
1861
+ ; RV32-NEXT: .cfi_restore ra
1835
1862
; RV32-NEXT: addi sp, sp, 48
1863
+ ; RV32-NEXT: .cfi_def_cfa_offset 0
1836
1864
; RV32-NEXT: ret
1837
1865
;
1838
1866
; RV64-LABEL: va_printf:
@@ -1853,7 +1881,9 @@ define i32 @va_printf(ptr %fmt, ...) {
1853
1881
; RV64-NEXT: sd a7, 72(sp)
1854
1882
; RV64-NEXT: call va_vprintf
1855
1883
; RV64-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
1884
+ ; RV64-NEXT: .cfi_restore ra
1856
1885
; RV64-NEXT: addi sp, sp, 80
1886
+ ; RV64-NEXT: .cfi_def_cfa_offset 0
1857
1887
; RV64-NEXT: ret
1858
1888
;
1859
1889
; RV32-WITHFP-LABEL: va_printf:
@@ -1879,7 +1909,10 @@ define i32 @va_printf(ptr %fmt, ...) {
1879
1909
; RV32-WITHFP-NEXT: call va_vprintf
1880
1910
; RV32-WITHFP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
1881
1911
; 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
1882
1914
; RV32-WITHFP-NEXT: addi sp, sp, 48
1915
+ ; RV32-WITHFP-NEXT: .cfi_def_cfa_offset 0
1883
1916
; RV32-WITHFP-NEXT: ret
1884
1917
;
1885
1918
; RV64-WITHFP-LABEL: va_printf:
@@ -1905,7 +1938,10 @@ define i32 @va_printf(ptr %fmt, ...) {
1905
1938
; RV64-WITHFP-NEXT: call va_vprintf
1906
1939
; RV64-WITHFP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
1907
1940
; 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
1908
1943
; RV64-WITHFP-NEXT: addi sp, sp, 96
1944
+ ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
1909
1945
; RV64-WITHFP-NEXT: ret
1910
1946
%args = alloca ptr
1911
1947
call void @llvm.va_start (ptr %args )
0 commit comments