Skip to content

Latest commit

 

History

History
53 lines (42 loc) · 1.06 KB

ipop.adoc

File metadata and controls

53 lines (42 loc) · 1.06 KB

th.ipop

Synopsis

Pop register context from the interrupt stack

Mnemonic

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])