X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=isa%2Frv64uc%2Fsv_c_lwsp.S;h=a64220334ce0a4573b7a08f211c7bb255bc68499;hb=bf9f76229e6055d71cc33f71249ce02ce6c3f566;hp=38dcaa2135ce134ce287e7d9c7374a248b389444;hpb=4356f24e698c32c96fb6fd0ea7e8e2f32a8f7b97;p=riscv-tests.git diff --git a/isa/rv64uc/sv_c_lwsp.S b/isa/rv64uc/sv_c_lwsp.S index 38dcaa2..a642203 100644 --- a/isa/rv64uc/sv_c_lwsp.S +++ b/isa/rv64uc/sv_c_lwsp.S @@ -17,9 +17,43 @@ RVTEST_CODE_BEGIN .option push .option norvc - li a2, 0 - li a3, 0 - li a4, 0 + 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, 28, 1) ) + 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), @@ -30,8 +64,8 @@ RVTEST_CODE_BEGIN la sp, data; .option push; - .option rvc; - .align 2; + .option rvc; + .align 2; c.lwsp a2, 0(sp); #lw a2, 0(sp); .option pop @@ -43,7 +77,7 @@ RVTEST_CODE_BEGIN mv sp, a1 - TEST_SV_IMM(a2, 1001) + TEST_SV_IMM(a2, 1001) TEST_SV_IMM(a3, 1002) TEST_SV_IMM(a4, 1005)