Reference TESTNUM instead of x28 directly
[riscv-tests.git] / isa / rv32ui / fence_i.S
1 #*****************************************************************************
2 # fence_i.S
3 #-----------------------------------------------------------------------------
4 #
5 # Test self-modifying code and the fence.i instruction.
6 #
7
8 #include "riscv_test.h"
9 #include "test_macros.h"
10
11 RVTEST_RV32U
12 RVTEST_CODE_BEGIN
13
14 li a3, 111
15 la a0, 3f
16 la a1, 1f
17 la a2, 2f
18 lw a0, 0(a0)
19
20 # test I$ hit
21 .align 6
22 sw a0, 0(a1)
23 fence.i
24
25 1: addi a3, a3, 222
26 TEST_CASE( 2, a3, 444, nop )
27
28 # test prefetcher hit
29 li a4, 100
30 1: addi a4, a4, -1
31 bnez a4, 1b
32
33 sw a0, 0(a2)
34 fence.i
35
36 .align 6
37 2: addi a3, a3, 555
38 TEST_CASE( 3, a3, 777, nop )
39
40 3: addi a3, a3, 333
41
42 TEST_PASSFAIL
43
44 RVTEST_CODE_END
45
46 .data
47 RVTEST_DATA_BEGIN
48
49 TEST_DATA
50
51 RVTEST_DATA_END