112771Sqtt2@cornell.edu# See LICENSE for license details. 212771Sqtt2@cornell.edu 312771Sqtt2@cornell.edu#***************************************************************************** 412771Sqtt2@cornell.edu# mcsr.S 512771Sqtt2@cornell.edu#----------------------------------------------------------------------------- 612771Sqtt2@cornell.edu# 712771Sqtt2@cornell.edu# Test various M-mode CSRs. 812771Sqtt2@cornell.edu# 912771Sqtt2@cornell.edu 1012771Sqtt2@cornell.edu#include "riscv_test.h" 1112771Sqtt2@cornell.edu#include "test_macros.h" 1212771Sqtt2@cornell.edu 1312771Sqtt2@cornell.eduRVTEST_RV64M 1412771Sqtt2@cornell.eduRVTEST_CODE_BEGIN 1512771Sqtt2@cornell.edu 1612771Sqtt2@cornell.edu # Check that mcpuid reports the correct XLEN 1712771Sqtt2@cornell.edu#if __riscv_xlen == 64 1812771Sqtt2@cornell.edu TEST_CASE(2, a0, 0x2, csrr a0, misa; srl a0, a0, 62) 1912771Sqtt2@cornell.edu#else 2012771Sqtt2@cornell.edu TEST_CASE(2, a0, 0x1, csrr a0, misa; srl a0, a0, 30) 2112771Sqtt2@cornell.edu#endif 2212771Sqtt2@cornell.edu 2312771Sqtt2@cornell.edu # Check that mhartid reports 0 2412771Sqtt2@cornell.edu TEST_CASE(3, a0, 0x0, csrr a0, mhartid) 2512771Sqtt2@cornell.edu 2612771Sqtt2@cornell.edu # Check that reading the following CSRs doesn't cause an exception 2712771Sqtt2@cornell.edu csrr a0, mimpid 2812771Sqtt2@cornell.edu csrr a0, marchid 2912771Sqtt2@cornell.edu csrr a0, mvendorid 3012771Sqtt2@cornell.edu 3112771Sqtt2@cornell.edu # Check that writing hte following CSRs doesn't cause an exception 3212771Sqtt2@cornell.edu li t0, 0 3312771Sqtt2@cornell.edu csrs mtvec, t0 3412771Sqtt2@cornell.edu csrs mepc, t0 3512771Sqtt2@cornell.edu 3612771Sqtt2@cornell.edu TEST_PASSFAIL 3712771Sqtt2@cornell.edu 3812771Sqtt2@cornell.eduRVTEST_CODE_END 3912771Sqtt2@cornell.edu 4012771Sqtt2@cornell.edu .data 4112771Sqtt2@cornell.eduRVTEST_DATA_BEGIN 4212771Sqtt2@cornell.edu 4312771Sqtt2@cornell.edu TEST_DATA 4412771Sqtt2@cornell.edu 4512771Sqtt2@cornell.eduRVTEST_DATA_END 46