112771Sqtt2@cornell.edu# See LICENSE for license details.
212771Sqtt2@cornell.edu
312771Sqtt2@cornell.edu#*****************************************************************************
412771Sqtt2@cornell.edu# fence_i.S
512771Sqtt2@cornell.edu#-----------------------------------------------------------------------------
612771Sqtt2@cornell.edu#
712771Sqtt2@cornell.edu# Test self-modifying code and the fence.i instruction.
812771Sqtt2@cornell.edu#
912771Sqtt2@cornell.edu
1012771Sqtt2@cornell.edu#include "riscv_test.h"
1112771Sqtt2@cornell.edu#include "test_macros.h"
1212771Sqtt2@cornell.edu
1312771Sqtt2@cornell.eduRVTEST_RV64U
1412771Sqtt2@cornell.eduRVTEST_CODE_BEGIN
1512771Sqtt2@cornell.edu
1612771Sqtt2@cornell.eduli a3, 111
1712771Sqtt2@cornell.edulh a0, insn
1812771Sqtt2@cornell.edulh a1, insn+2
1912771Sqtt2@cornell.edu
2012771Sqtt2@cornell.edu# test I$ hit
2112771Sqtt2@cornell.edu.align 6
2212771Sqtt2@cornell.edush a0, 1f, t0
2312771Sqtt2@cornell.edush a1, 1f+2, t0
2412771Sqtt2@cornell.edufence.i
2512771Sqtt2@cornell.edu
2612771Sqtt2@cornell.edu1: addi a3, a3, 222
2712771Sqtt2@cornell.eduTEST_CASE( 2, a3, 444, nop )
2812771Sqtt2@cornell.edu
2912771Sqtt2@cornell.edu# test prefetcher hit
3012771Sqtt2@cornell.eduli a4, 100
3112771Sqtt2@cornell.edu1: addi a4, a4, -1
3212771Sqtt2@cornell.edubnez a4, 1b
3312771Sqtt2@cornell.edu
3412771Sqtt2@cornell.edush a0, 1f, t0
3512771Sqtt2@cornell.edush a1, 1f+2, t0
3612771Sqtt2@cornell.edufence.i
3712771Sqtt2@cornell.edu
3812771Sqtt2@cornell.edu.align 6
3912771Sqtt2@cornell.edu1: addi a3, a3, 555
4012771Sqtt2@cornell.eduTEST_CASE( 3, a3, 777, nop )
4112771Sqtt2@cornell.edu
4212771Sqtt2@cornell.eduTEST_PASSFAIL
4312771Sqtt2@cornell.edu
4412771Sqtt2@cornell.eduRVTEST_CODE_END
4512771Sqtt2@cornell.edu
4612771Sqtt2@cornell.edu  .data
4712771Sqtt2@cornell.eduRVTEST_DATA_BEGIN
4812771Sqtt2@cornell.edu
4912771Sqtt2@cornell.edu  TEST_DATA
5012771Sqtt2@cornell.edu
5112771Sqtt2@cornell.eduinsn:
5212771Sqtt2@cornell.edu  addi a3, a3, 333
5312771Sqtt2@cornell.edu
5412771Sqtt2@cornell.eduRVTEST_DATA_END
55