avoid non-standard predefined macros
[riscv-tests.git] / isa / rv64ui / 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_RV64U
14 RVTEST_CODE_BEGIN
15
16 li a3, 111
17 lh a0, insn
18 lh a1, insn+2
19
20 # test I$ hit
21 .align 6
22 sh a0, 1f, t0
23 sh a1, 1f+2, t0
24 fence.i
25
26 1: addi a3, a3, 222
27 TEST_CASE( 2, a3, 444, nop )
28
29 # test prefetcher hit
30 li a4, 100
31 1: addi a4, a4, -1
32 bnez a4, 1b
33
34 sh a0, 1f, t0
35 sh a1, 1f+2, t0
36 fence.i
37
38 .align 6
39 1: addi a3, a3, 555
40 TEST_CASE( 3, a3, 777, nop )
41
42 TEST_PASSFAIL
43
44 RVTEST_CODE_END
45
46 .data
47 RVTEST_DATA_BEGIN
48
49 TEST_DATA
50
51 insn:
52 addi a3, a3, 333
53
54 RVTEST_DATA_END