@@ -69,12 +69,12 @@ define i32 @va1(ptr %fmt, ...) {
6969; RV64-NEXT: sd a2, 32(sp)
7070; RV64-NEXT: sd a3, 40(sp)
7171; RV64-NEXT: sd a4, 48(sp)
72- ; RV64-NEXT: sd a5, 56(sp)
7372; RV64-NEXT: addi a0, sp, 8
7473; RV64-NEXT: addi a1, sp, 24
7574; RV64-NEXT: sd a1, 8(sp)
7675; RV64-NEXT: lw a0, 4(a0)
7776; RV64-NEXT: lwu a1, 8(sp)
77+ ; RV64-NEXT: sd a5, 56(sp)
7878; RV64-NEXT: sd a6, 64(sp)
7979; RV64-NEXT: sd a7, 72(sp)
8080; RV64-NEXT: slli a0, a0, 32
@@ -129,12 +129,12 @@ define i32 @va1(ptr %fmt, ...) {
129129; RV64-WITHFP-NEXT: sd a2, 16(s0)
130130; RV64-WITHFP-NEXT: sd a3, 24(s0)
131131; RV64-WITHFP-NEXT: sd a4, 32(s0)
132- ; RV64-WITHFP-NEXT: sd a5, 40(s0)
133132; RV64-WITHFP-NEXT: addi a0, s0, -24
134133; RV64-WITHFP-NEXT: addi a1, s0, 8
135134; RV64-WITHFP-NEXT: sd a1, -24(s0)
136135; RV64-WITHFP-NEXT: lw a0, 4(a0)
137136; RV64-WITHFP-NEXT: lwu a1, -24(s0)
137+ ; RV64-WITHFP-NEXT: sd a5, 40(s0)
138138; RV64-WITHFP-NEXT: sd a6, 48(s0)
139139; RV64-WITHFP-NEXT: sd a7, 56(s0)
140140; RV64-WITHFP-NEXT: slli a0, a0, 32
@@ -844,11 +844,11 @@ define i64 @va3(i32 %a, i64 %b, ...) nounwind {
844844; ILP32-LABEL: va3:
845845; ILP32: # %bb.0:
846846; ILP32-NEXT: addi sp, sp, -32
847- ; ILP32-NEXT: sw a3, 12(sp)
848- ; ILP32-NEXT: sw a4, 16(sp)
849847; ILP32-NEXT: addi a0, sp, 12
850848; ILP32-NEXT: sw a0, 4(sp)
851849; ILP32-NEXT: lw a0, 4(sp)
850+ ; ILP32-NEXT: sw a3, 12(sp)
851+ ; ILP32-NEXT: sw a4, 16(sp)
852852; ILP32-NEXT: sw a5, 20(sp)
853853; ILP32-NEXT: sw a6, 24(sp)
854854; ILP32-NEXT: sw a7, 28(sp)
@@ -868,11 +868,11 @@ define i64 @va3(i32 %a, i64 %b, ...) nounwind {
868868; RV32D-ILP32-LABEL: va3:
869869; RV32D-ILP32: # %bb.0:
870870; RV32D-ILP32-NEXT: addi sp, sp, -48
871- ; RV32D-ILP32-NEXT: sw a3, 28(sp)
872- ; RV32D-ILP32-NEXT: sw a4, 32(sp)
873871; RV32D-ILP32-NEXT: addi a0, sp, 28
874872; RV32D-ILP32-NEXT: sw a0, 20(sp)
875873; RV32D-ILP32-NEXT: lw a0, 20(sp)
874+ ; RV32D-ILP32-NEXT: sw a3, 28(sp)
875+ ; RV32D-ILP32-NEXT: sw a4, 32(sp)
876876; RV32D-ILP32-NEXT: sw a5, 36(sp)
877877; RV32D-ILP32-NEXT: sw a6, 40(sp)
878878; RV32D-ILP32-NEXT: sw a7, 44(sp)
@@ -894,11 +894,11 @@ define i64 @va3(i32 %a, i64 %b, ...) nounwind {
894894; RV32D-ILP32F-LABEL: va3:
895895; RV32D-ILP32F: # %bb.0:
896896; RV32D-ILP32F-NEXT: addi sp, sp, -48
897- ; RV32D-ILP32F-NEXT: sw a3, 28(sp)
898- ; RV32D-ILP32F-NEXT: sw a4, 32(sp)
899897; RV32D-ILP32F-NEXT: addi a0, sp, 28
900898; RV32D-ILP32F-NEXT: sw a0, 20(sp)
901899; RV32D-ILP32F-NEXT: lw a0, 20(sp)
900+ ; RV32D-ILP32F-NEXT: sw a3, 28(sp)
901+ ; RV32D-ILP32F-NEXT: sw a4, 32(sp)
902902; RV32D-ILP32F-NEXT: sw a5, 36(sp)
903903; RV32D-ILP32F-NEXT: sw a6, 40(sp)
904904; RV32D-ILP32F-NEXT: sw a7, 44(sp)
@@ -920,11 +920,11 @@ define i64 @va3(i32 %a, i64 %b, ...) nounwind {
920920; RV32D-ILP32D-LABEL: va3:
921921; RV32D-ILP32D: # %bb.0:
922922; RV32D-ILP32D-NEXT: addi sp, sp, -48
923- ; RV32D-ILP32D-NEXT: sw a3, 28(sp)
924- ; RV32D-ILP32D-NEXT: sw a4, 32(sp)
925923; RV32D-ILP32D-NEXT: addi a0, sp, 28
926924; RV32D-ILP32D-NEXT: sw a0, 20(sp)
927925; RV32D-ILP32D-NEXT: lw a0, 20(sp)
926+ ; RV32D-ILP32D-NEXT: sw a3, 28(sp)
927+ ; RV32D-ILP32D-NEXT: sw a4, 32(sp)
928928; RV32D-ILP32D-NEXT: sw a5, 36(sp)
929929; RV32D-ILP32D-NEXT: sw a6, 40(sp)
930930; RV32D-ILP32D-NEXT: sw a7, 44(sp)
@@ -946,12 +946,12 @@ define i64 @va3(i32 %a, i64 %b, ...) nounwind {
946946; RV64-LABEL: va3:
947947; RV64: # %bb.0:
948948; RV64-NEXT: addi sp, sp, -64
949- ; RV64-NEXT: sd a2, 16(sp)
950- ; RV64-NEXT: sd a3, 24(sp)
951- ; RV64-NEXT: sd a4, 32(sp)
952949; RV64-NEXT: addi a0, sp, 16
953950; RV64-NEXT: sd a0, 8(sp)
954951; RV64-NEXT: ld a0, 8(sp)
952+ ; RV64-NEXT: sd a2, 16(sp)
953+ ; RV64-NEXT: sd a3, 24(sp)
954+ ; RV64-NEXT: sd a4, 32(sp)
955955; RV64-NEXT: sd a5, 40(sp)
956956; RV64-NEXT: sd a6, 48(sp)
957957; RV64-NEXT: sd a7, 56(sp)
@@ -970,11 +970,11 @@ define i64 @va3(i32 %a, i64 %b, ...) nounwind {
970970; RV32-WITHFP-NEXT: sw ra, 20(sp) # 4-byte Folded Spill
971971; RV32-WITHFP-NEXT: sw s0, 16(sp) # 4-byte Folded Spill
972972; RV32-WITHFP-NEXT: addi s0, sp, 24
973- ; RV32-WITHFP-NEXT: sw a3, 4(s0)
974- ; RV32-WITHFP-NEXT: sw a4, 8(s0)
975973; RV32-WITHFP-NEXT: addi a0, s0, 4
976974; RV32-WITHFP-NEXT: sw a0, -12(s0)
977975; RV32-WITHFP-NEXT: lw a0, -12(s0)
976+ ; RV32-WITHFP-NEXT: sw a3, 4(s0)
977+ ; RV32-WITHFP-NEXT: sw a4, 8(s0)
978978; RV32-WITHFP-NEXT: sw a5, 12(s0)
979979; RV32-WITHFP-NEXT: sw a6, 16(s0)
980980; RV32-WITHFP-NEXT: sw a7, 20(s0)
@@ -999,12 +999,12 @@ define i64 @va3(i32 %a, i64 %b, ...) nounwind {
999999; RV64-WITHFP-NEXT: sd ra, 24(sp) # 8-byte Folded Spill
10001000; RV64-WITHFP-NEXT: sd s0, 16(sp) # 8-byte Folded Spill
10011001; RV64-WITHFP-NEXT: addi s0, sp, 32
1002- ; RV64-WITHFP-NEXT: sd a2, 0(s0)
1003- ; RV64-WITHFP-NEXT: sd a3, 8(s0)
1004- ; RV64-WITHFP-NEXT: sd a4, 16(s0)
10051002; RV64-WITHFP-NEXT: mv a0, s0
10061003; RV64-WITHFP-NEXT: sd a0, -24(s0)
10071004; RV64-WITHFP-NEXT: ld a0, -24(s0)
1005+ ; RV64-WITHFP-NEXT: sd a2, 0(s0)
1006+ ; RV64-WITHFP-NEXT: sd a3, 8(s0)
1007+ ; RV64-WITHFP-NEXT: sd a4, 16(s0)
10081008; RV64-WITHFP-NEXT: sd a5, 24(s0)
10091009; RV64-WITHFP-NEXT: sd a6, 32(s0)
10101010; RV64-WITHFP-NEXT: sd a7, 40(s0)
@@ -1622,9 +1622,6 @@ define i32 @va_large_stack(ptr %fmt, ...) {
16221622; RV64-NEXT: lui a0, 24414
16231623; RV64-NEXT: add a0, sp, a0
16241624; RV64-NEXT: sd a4, 304(a0)
1625- ; RV64-NEXT: lui a0, 24414
1626- ; RV64-NEXT: add a0, sp, a0
1627- ; RV64-NEXT: sd a5, 312(a0)
16281625; RV64-NEXT: addi a0, sp, 8
16291626; RV64-NEXT: lui a1, 24414
16301627; RV64-NEXT: addiw a1, a1, 280
@@ -1634,6 +1631,9 @@ define i32 @va_large_stack(ptr %fmt, ...) {
16341631; RV64-NEXT: lwu a1, 8(sp)
16351632; RV64-NEXT: lui a2, 24414
16361633; RV64-NEXT: add a2, sp, a2
1634+ ; RV64-NEXT: sd a5, 312(a2)
1635+ ; RV64-NEXT: lui a2, 24414
1636+ ; RV64-NEXT: add a2, sp, a2
16371637; RV64-NEXT: sd a6, 320(a2)
16381638; RV64-NEXT: lui a2, 24414
16391639; RV64-NEXT: add a2, sp, a2
0 commit comments