diff --git a/tests/wally-riscv-arch-test/riscv-test-suite/rv32i_m/privilege/src/WALLY-TEST-LIB-32.S b/tests/wally-riscv-arch-test/riscv-test-suite/rv32i_m/privilege/src/WALLY-TEST-LIB-32.S index e76c28d9..f2b6d06a 100644 --- a/tests/wally-riscv-arch-test/riscv-test-suite/rv32i_m/privilege/src/WALLY-TEST-LIB-32.S +++ b/tests/wally-riscv-arch-test/riscv-test-suite/rv32i_m/privilege/src/WALLY-TEST-LIB-32.S @@ -317,49 +317,8 @@ test_jump_table: j write16_test # 0x12 : Write 16 bits to address : 0xf : None j write08_test # 0x13 : Write 8 bits to address : 0xf : None j segfault # 0x14 : Segfault, undefined test - j read16_test # 0x15 : Read 16 bitsfrom address : 0xd, 0xbad : readvalue in hex - j read08_test # 0x16 : Read 8 bitsfrom address : 0xd, 0xbad : readvalue in hex - - # # case statements for which test behavior to perform. - # # *** We would use the same table method as the test types and trap handler, - # # but that presents problems with virtual addressing and updating the address after the la command - - # # x30 Value : Function : Fault output value : Normal output values - # # ----------:---------------------------------------:------------------------:------------------------------------------------------ - # li x7, 0x0 # : : : - # beq x30, x7, write32_test # 0x0 : Write 32 bits to address : 0xf : None - # li x7, 0x12 # : : : - # beq x30, x7, write16_test # 0x12 : Write 16 bits to address : 0xf : None - # li x7, 0x13 # : : : - # beq x30, x7, write08_test # 0x13 : Write 8 bits to address : 0xf : None - # li x7, 0x1 # : : : - # beq x30, x7, read32_test # 0x1 : Read 32 bits from address : 0xd, 0xbad : readvalue in hex - # li x7, 0x15 # : : : - # beq x30, x7, read16_test # 0x15 : Read 16 bitsfrom address : 0xd, 0xbad : readvalue in hex - # li x7, 0x16 # : : : - # beq x30, x7, read08_test # 0x16 : Read 8 bitsfrom address : 0xd, 0xbad : readvalue in hex - # li x7, 0x2 # : : : - # beq x30, x7, executable_test # 0x2 : test executable at address : 0xc, 0xbad : leading 12 bits of the li instr written to address. In general this is 0x111. (be sure to also write a return instruction) - # li x7, 0x3 # : : : - # beq x30, x7, terminate_test # 0x3 : terminate tests : mcause value for fault : from M 0xb, from S 0x9, from U 0x8 - # li x7, 0x4 # : : : - # beq x30, x7, goto_baremetal # 0x4 : satp.MODE = bare metal : None : None - # li x7, 0x5 # : : : - # beq x30, x7, goto_sv32 # 0x5 : satp.MODE = sv32 : None : None - # li x7, 0x7 # : : : - # beq x30, x7, write_mxr_sum # 0x7 : write sstatus.[19:18] = MXR, SUM bits : None : None - # li x7, 0xD # : : : - # beq x30, x7, write_pmpcfg_0 # 0xD : Write one of the pmpcfg csr's : mstatuses?, 0xD : readback of pmpcfg value - # li x7, 0xE # : : : - # beq x30, x7, write_pmpaddr_0 # 0xE : Write one of the pmpaddr csr's : None : readback of pmpaddr value - # li x7, 0x8 # : : : - # beq x30, x7, goto_m_mode # 0x8 : go to mahcine mode : mcause value for fault : from M 0xb, from S 0x9, from U 0x8 - # li x7, 0x9 # : : : - # beq x30, x7, goto_s_mode # 0x9 : go to supervisor mode : mcause value for fault : from M 0xb, from S 0x9, from U 0x8 - # li x7, 0xA # : : : - # beq x30, x7, goto_u_mode # 0xA : go to user mode : mcause value for fault : from M 0xb, from S 0x9, from U 0x8 - # # ------------------------------------------------------------------------------------------------------------------------------------ - # j terminate_test # default case: break + j read16_test # 0x15 : Read 16 bits from address : 0xd, 0xbad : readvalue in hex + j read08_test # 0x16 : Read 8 bits from address : 0xd, 0xbad : readvalue in hex write32_test: # address to write in x28, word value in x29