1 # See LICENSE for license details.
3 #*****************************************************************************
4 # sv_c_lwsp_predication.S
5 #-----------------------------------------------------------------------------
7 # Test RVC c.lwsp with twin-predication.
10 #include "riscv_test.h"
11 #include "sv_test_macros.h"
23 li a0, 0x6; // targetted by use of sp: means skip, copy, copy
24 li a1, 0x5; // targetted by use of a2: meanss a2, skip, a4
31 SET_SV_2CSRS( SV_REG_CSR(1, 12, 0, 12, 1),
32 SV_REG_CSR(1, 2, 0, 2, 1) )
34 SV_PRED_CSR(1, 2, 0, 0, 10, 0),
35 SV_PRED_CSR(1, 12, 0, 0, 11, 0) );
43 c.lwsp a2, 0(sp); # actually lw a2, 4(sp); lw a4 8(sp) due to twin-predication
54 TEST_SV_IMM(a2, 1002) # data[0] was skipped (a0 & 1 == 0)
55 TEST_SV_IMM(a3, 0) # a3 was skipped (a1 & 2 == 0)
60 RVTEST_PASS # Signal success.
64 RVTEST_CODE_END # End of test code.