Skip to content

Commit f09fa81

Browse files
committed
Improve Ziccid test to handle in-order fetch rule
1 parent 5ec687b commit f09fa81

File tree

1 file changed

+61
-5
lines changed

1 file changed

+61
-5
lines changed

isa/rv64uziccid/ziccid.S

Lines changed: 61 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,22 @@
1313
RVTEST_RV64UF
1414
RVTEST_CODE_BEGIN
1515

16+
.option norvc
17+
18+
#
19+
# Test the eventuality property
20+
#
21+
1622
la t0, insn
1723
li t1, 0x00100513 # li a0, 1
18-
li t2, 0x00000513 # li a0, 0
24+
li t5, 0x00000513 # li a0, 0
25+
li t3, 0x00100593 # li a1, 1
26+
li t4, 0x00000593 # li a1, 0
1927

20-
sw t2, (t0)
28+
sw t5, (t0)
2129
fence.i
2230

2331
li a1, 100
24-
loop:
25-
.balign 2
2632
insn:
2733
.word 0
2834

@@ -32,10 +38,60 @@ insn:
3238
sw t1, (t0)
3339
1:
3440
# break out of loop if the modified instruction is executed
35-
beqz a0, loop
41+
beqz a0, insn
3642

3743
TEST_CASE(2, x0, 0, nop)
3844

45+
46+
#
47+
# Test the ordering property
48+
#
49+
la t0, loop2
50+
li a2, 16
51+
j loop2
52+
53+
.balign 4096
54+
loop2:
55+
li a0, 0
56+
.balign 64
57+
li a1, 0
58+
59+
sw t3, 64(t0)
60+
fence
61+
sw t1, 0(t0)
62+
63+
bnez a1, next_loop2
64+
65+
# detect illegal outcome a0=1, a1=0
66+
TEST_CASE(3, a0, 0, nop)
67+
68+
# try to evict force an I$ eviction
69+
addi a3, a2, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
70+
addi a3, a3, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
71+
addi a3, a3, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
72+
addi a3, a3, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
73+
addi a3, a3, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
74+
addi a3, a3, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
75+
addi a3, a3, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
76+
addi a3, a3, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
77+
addi a3, a3, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
78+
addi a3, a3, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
79+
addi a3, a3, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
80+
addi a3, a3, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
81+
addi a3, a3, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
82+
addi a3, a3, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
83+
addi a3, a3, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
84+
addi a3, a3, -1; bltz a3, loop2; j 1f; .balign 8192; 1:
85+
86+
j loop2
87+
88+
next_loop2:
89+
sw t4, 64(t0)
90+
sw t5, 0(t0)
91+
fence.i
92+
addi a2, a2, -1
93+
bgez a2, loop2
94+
3995
TEST_PASSFAIL
4096

4197
RVTEST_CODE_END

0 commit comments

Comments
 (0)