.option push
.option norvc
- li a2, 0
- li a3, 0
+ li a2, 0
+ li a3, 0
+ li a4, 0
- SET_SV_MVL(2)
- SET_SV_2CSRS( SV_REG_CSR(1, 12, 0, 12, 1, 0),
- SV_REG_CSR(1, 2, 0, 2, 1, 0) )
- SET_SV_VL(2)
+ SET_SV_MVL(3)
+ SET_SV_2CSRS( SV_REG_CSR(1, 12, 0, 12, 1),
+ SV_REG_CSR(1, 2, 0, 28, 0) )
+ SET_SV_VL(3)
+
+ # store addr of data in x28 because CSR redirects x2 to x28
+ # and c.lwsp is an element-offset (if isvec=true that is)
+ la x28, data;
+
+ .option push;
+ .option rvc;
+ .align 2;
+ c.lwsp a2, 0(sp); # SP is actually redirected to x28!
+ .option pop
+
+
+ SET_SV_VL(1)
+ CLR_SV_CSRS()
+ SET_SV_MVL(1)
+
+ TEST_SV_IMM(a2, 1001)
+ TEST_SV_IMM(a3, 1002)
+ TEST_SV_IMM(a4, 1005)
+
+ .option pop
+
+ .align 2
+ .option push
+ .option norvc
+
+ li a2, 0
+ li a3, 0
+ li a4, 0
+
+ SET_SV_MVL(3)
+ SET_SV_2CSRS( SV_REG_CSR(1, 12, 0, 12, 1),
+ SV_REG_CSR(1, 2, 0, 2, 0) )
+ SET_SV_VL(3)
mv a1, sp
la sp, data;
.option push;
- .option rvc;
- .align 2;
+ .option rvc;
+ .align 2;
c.lwsp a2, 0(sp);
#lw a2, 0(sp);
.option pop
- SET_SV_VL(0)
+ SET_SV_VL(1)
CLR_SV_CSRS()
- SET_SV_MVL(0)
+ SET_SV_MVL(1)
mv sp, a1
- TEST_SV_IMM(a2, 1001)
+ TEST_SV_IMM(a2, 1001)
TEST_SV_IMM(a3, 1002)
+ TEST_SV_IMM(a4, 1005)
.option pop
data:
.word 1001;
.word 1002;
- .word 0x01234567;
+ .word 1005;
RVTEST_DATA_BEGIN