Skip to content

Commit 6bb1b9c

Browse files
rmacnak-googleCommit Queue
authored andcommitted
[vm] Fix RISC-V ClobberAndCall to actually call.
TEST=ci Change-Id: I6729c1b9c76094d88363cf0cb79e92288c3aa4eb Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/393600 Commit-Queue: Ryan Macnak <[email protected]> Reviewed-by: Alexander Aprelev <[email protected]>
1 parent 0b55c16 commit 6bb1b9c

File tree

2 files changed

+100
-2
lines changed

2 files changed

+100
-2
lines changed

runtime/bin/ffi_test/clobber_riscv32.S

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,27 @@ ClobberAndCall:
99
_ClobberAndCall:
1010
#endif
1111

12-
li a0, 1
12+
/* Clobber all volatile registers and call the nullary function which is
13+
passed in as the first argument. */
14+
15+
addi sp, sp, -64
16+
sw ra, 60(sp)
17+
sw fp, 56(sp)
18+
addi fp, sp, 64
19+
20+
sw s1, 40(sp)
21+
sw s2, 36(sp)
22+
sw s3, 32(sp)
23+
sw s4, 28(sp)
24+
sw s5, 24(sp)
25+
sw s6, 20(sp)
26+
sw s7, 16(sp)
27+
sw s8, 12(sp)
28+
sw s9, 8(sp)
29+
sw s10, 4(sp)
30+
sw s11, 0(sp)
31+
32+
li ra, 1
1333
li a1, 1
1434
li a2, 1
1535
li a3, 1
@@ -24,4 +44,33 @@ li t3, 1
2444
li t4, 1
2545
li t5, 1
2646
li t6, 1
47+
li s1, 1
48+
li s2, 1
49+
li s3, 1
50+
li s4, 1
51+
li s5, 1
52+
li s6, 1
53+
li s7, 1
54+
li s8, 1
55+
li s9, 1
56+
li s10, 1
57+
li s11, 1
58+
59+
jalr a0
60+
61+
lw s11, 0(sp)
62+
lw s10, 4(sp)
63+
lw s9, 8(sp)
64+
lw s8, 12(sp)
65+
lw s7, 16(sp)
66+
lw s6, 20(sp)
67+
lw s5, 24(sp)
68+
lw s4, 28(sp)
69+
lw s3, 32(sp)
70+
lw s2, 36(sp)
71+
lw s1, 40(sp)
72+
73+
lw fp, 56(sp)
74+
lw ra, 60(sp)
75+
addi sp, sp, 64
2776
ret

runtime/bin/ffi_test/clobber_riscv64.S

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,27 @@ ClobberAndCall:
99
_ClobberAndCall:
1010
#endif
1111

12-
li a0, 1
12+
/* Clobber all volatile registers and call the nullary function which is
13+
passed in as the first argument. */
14+
15+
addi sp, sp, -112
16+
sd ra, 104(sp)
17+
sd fp, 96(sp)
18+
addi fp, sp, 112
19+
20+
sd s1, 80(sp)
21+
sd s2, 72(sp)
22+
sd s3, 64(sp)
23+
sd s4, 56(sp)
24+
sd s5, 48(sp)
25+
sd s6, 40(sp)
26+
sd s7, 32(sp)
27+
sd s8, 24(sp)
28+
sd s9, 16(sp)
29+
sd s10, 8(sp)
30+
sd s11, 0(sp)
31+
32+
li ra, 1
1333
li a1, 1
1434
li a2, 1
1535
li a3, 1
@@ -24,4 +44,33 @@ li t3, 1
2444
li t4, 1
2545
li t5, 1
2646
li t6, 1
47+
li s1, 1
48+
li s2, 1
49+
li s3, 1
50+
li s4, 1
51+
li s5, 1
52+
li s6, 1
53+
li s7, 1
54+
li s8, 1
55+
li s9, 1
56+
li s10, 1
57+
li s11, 1
58+
59+
jalr a0
60+
61+
ld s11, 0(sp)
62+
ld s10, 8(sp)
63+
ld s9, 16(sp)
64+
ld s8, 24(sp)
65+
ld s7, 32(sp)
66+
ld s6, 40(sp)
67+
ld s5, 48(sp)
68+
ld s4, 56(sp)
69+
ld s3, 64(sp)
70+
ld s2, 72(sp)
71+
ld s1, 80(sp)
72+
73+
ld fp, 96(sp)
74+
ld ra, 104(sp)
75+
addi sp, sp, 112
2776
ret

0 commit comments

Comments
 (0)