mtinst
Machine Trap Instruction Register
When a trap is taken into M-mode, mtinst is written with a value that, if nonzero, provides information about the instruction that trapped, to assist software in handling the trap. The values that may be written to mtinst on a trap are documented in TODO.
mtinst is a WARL register that need only be able to hold the values that the implementation may automatically write to it on a trap.
Attributes
Defining Extension |
|
---|---|
CSR Address |
0x34a |
Length |
32 when CSR[misa].MXL == 0 64 when CSR[misa].MXL == 1 |
Privilege Mode |
M |
Format
This CSR format changes dynamically.
Field Summary
Name | Location | Type | Reset Value |
---|---|---|---|
* 31:0 when CSR[misa].MXL == 0 * 63:0 when CSR[misa].MXL == 1 |
[when,"(((((((((((((((TINST_VALUE_ON_FINAL_LOAD_GUEST_PAGE_FAULT != "always zero" || TINST_VALUE_ON_FINAL_STORE_AMO_GUEST_PAGE_FAULT != "always zero") || TINST_VALUE_ON_FINAL_INSTRUCTION_GUEST_PAGE_FAULT != "always zero") || TINST_VALUE_ON_INSTRUCTION_ADDRESS_MISALIGNED != "always zero") || TINST_VALUE_ON_BREAKPOINT != "always zero") || TINST_VALUE_ON_VIRTUAL_INSTRUCTION != "always zero") || TINST_VALUE_ON_LOAD_ADDRESS_MISALIGNED != "always zero") || TINST_VALUE_ON_LOAD_ACCESS_FAULT != "always zero") || TINST_VALUE_ON_STORE_AMO_ADDRESS_MISALIGNED != "always zero") || TINST_VALUE_ON_STORE_AMO_ACCESS_FAULT != "always_zero") || TINST_VALUE_ON_UCALL != "always zero") || TINST_VALUE_ON_SCALL != "always zero") || TINST_VALUE_ON_MCALL != "always zero") || TINST_VALUE_ON_VSCALL != "always zero") || TINST_VALUE_ON_LOAD_PAGE_FAULT != "always zero") || TINST_VALUE_ON_STORE_AMO_PAGE_FAULT != "always zero")"] RW-H [when,"!(((((((((((((((TINST_VALUE_ON_FINAL_LOAD_GUEST_PAGE_FAULT != "always zero" || TINST_VALUE_ON_FINAL_STORE_AMO_GUEST_PAGE_FAULT != "always zero") || TINST_VALUE_ON_FINAL_INSTRUCTION_GUEST_PAGE_FAULT != "always zero") || TINST_VALUE_ON_INSTRUCTION_ADDRESS_MISALIGNED != "always zero") || TINST_VALUE_ON_BREAKPOINT != "always zero") || TINST_VALUE_ON_VIRTUAL_INSTRUCTION != "always zero") || TINST_VALUE_ON_LOAD_ADDRESS_MISALIGNED != "always zero") || TINST_VALUE_ON_LOAD_ACCESS_FAULT != "always zero") || TINST_VALUE_ON_STORE_AMO_ADDRESS_MISALIGNED != "always zero") || TINST_VALUE_ON_STORE_AMO_ACCESS_FAULT != "always_zero") || TINST_VALUE_ON_UCALL != "always zero") || TINST_VALUE_ON_SCALL != "always zero") || TINST_VALUE_ON_MCALL != "always zero") || TINST_VALUE_ON_VSCALL != "always zero") || TINST_VALUE_ON_LOAD_PAGE_FAULT != "always zero") || TINST_VALUE_ON_STORE_AMO_PAGE_FAULT != "always zero")"] RO |
UNDEFINED_LEGAL |