urfid
Ultravisor Return from Interrupt Doubleword
urfid
Returns from an ultravisor interrupt.
Details
The 'urfid' instruction is used to return from an interrupt in the ultravisor context. It updates the Machine State Register (MSR) and sets the next instruction address based on the values in USRR0 and USRR1.
Pseudocode Operation
MSR48 ← USRR148 | USRR149
MSR58 ← (USRR158 | USRR149) & ¬(USRR141 & USRR13 & (¬USRR149))
MSR59 ← (USRR159 | USRR149) & ¬(USRR141 & USRR13 & (¬USRR149))
MSR0:32 37:41 49:57 60:63 ← USRR10:32 37:41 49:57 60:63
NIA ← iea USRR00:61 || 0b00
Programming Note
If this instruction sets MSRPR to 1, it also sets MSREE, MSRIR, and MSRDR to 1. If this instruction sets MSRS HV PR to 0b110, it also sets MSRIR and MSRDR to 0.
Example
urfid
Encoding
Binary Layout
19
0
/
6
/
11
/
16
274
21
/
31