e30d11abac647043d088657ce161e22b7b152be9
[riscv-tests.git] / isa / rv64uc / sv_c_lwsp.S
1 # See LICENSE for license details.
2
3 #*****************************************************************************
4 # rvc.S
5 #-----------------------------------------------------------------------------
6 #
7 # Test RVC corner cases.
8 #
9
10 #include "riscv_test.h"
11 #include "sv_test_macros.h"
12
13 RVTEST_RV64U
14 RVTEST_CODE_BEGIN
15
16 .align 2
17 .option push
18 .option norvc
19
20 li a2, 0
21 li a3, 0
22 li a4, 0
23
24 SET_SV_MVL(3)
25 SET_SV_2CSRS( SV_REG_CSR(1, 12, 0, 12, 1),
26 SV_REG_CSR(1, 2, 0, 2, 1) )
27 SET_SV_VL(3)
28
29 mv a1, sp
30 la sp, data;
31
32 .option push;
33 .option rvc;
34 .align 2;
35 c.lwsp a2, 0(sp);
36 #lw a2, 0(sp);
37 .option pop
38
39
40 SET_SV_VL(0)
41 CLR_SV_CSRS()
42 SET_SV_MVL(0)
43
44 mv sp, a1
45
46 TEST_SV_IMM(a2, 1001)
47 TEST_SV_IMM(a3, 1002)
48 TEST_SV_IMM(a4, 1005)
49
50 .option pop
51
52 RVTEST_PASS # Signal success.
53 fail:
54 RVTEST_FAIL
55
56 RVTEST_CODE_END # End of test code.
57
58 .data
59 data:
60 .word 1001;
61 .word 1002;
62 .word 1005;
63
64 RVTEST_DATA_BEGIN
65
66 RVTEST_DATA_END