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