1313RVTEST_RV64UF
1414RVTEST_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
2632insn:
2733 .word 0
2834
@@ -32,10 +38,60 @@ insn:
3238 sw t1, (t0)
33391 :
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
4197RVTEST_CODE_END
0 commit comments