- Synopsis
-
Pop register context from the interrupt stack
- Mnemonic
-
th.ipop
- Encoding
{reg:[ { bits: 7, name: 0xb, attr: ['custom-0, 32 bit'] }, { bits: 5, name: 0x0 }, { bits: 3, name: 0x0 }, { bits: 5, name: 0x0 }, { bits: 5, name: 0x5 }, { bits: 7, name: 0x0 }, ]}
- Description
-
This instruction restores the following information from the interrupt stack:
-
mcause
-
mepc
-
callee-saved registers (X1, X5-X7, X10-X17, and X28-X31)
-
Additionally the interrupt stack pointer is moved back accordingly.
- Operation
{mcause, mepc, X1, X5-X7, X10-X17, X28-X31} := mem[int_sp+68:int_sp]
int_sp := int_sp + 72
mret
- Permission
-
This instruction can be executed in
M
mode only. Attempts to execute this instruction in other modes will raise an illegal instruction exception. - Exceptions
-
This instruction does not trigger any exceptions.
- Included in
Extension |
---|
XTheadFmv ([xtheadint]) |