RVTEST_RV64M
RVTEST_CODE_BEGIN
- # Check that mcpuid reports RV64
- TEST_CASE(2, a0, 0x2, csrr a0, mcpuid; srl a0, a0, 62)
+ # Check that mcpuid reports the correct XLEN
+#if __riscv_xlen == 64
+ TEST_CASE(2, a0, 0x2, csrr a0, misa; srl a0, a0, 62)
+#else
+ TEST_CASE(2, a0, 0x1, csrr a0, misa; srl a0, a0, 30)
+#endif
# Check that mhartid reports 0
TEST_CASE(3, a0, 0x0, csrr a0, mhartid)
- # Check that mimpid reports UC Berkeley
- TEST_CASE(4, a0, 0x1, csrr a0, mimpid; sll a0, a0, 48; srl a0, a0, 48)
+ # Check that reading the following CSRs doesn't cause an exception
+ csrr a0, mimpid
+ csrr a0, marchid
+ csrr a0, mvendorid
- # Check that mtvec reports DEFAULT_MTVEC
- TEST_CASE(5, a0, DEFAULT_MTVEC, csrr a0, mtvec)
+ # Check that writing hte following CSRs doesn't cause an exception
+ li t0, 0
+ csrs mtvec, t0
+ csrs mepc, t0
TEST_PASSFAIL
RVTEST_CODE_END
+
+ .data
+RVTEST_DATA_BEGIN
+
+ TEST_DATA
+
+RVTEST_DATA_END