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
 
Format XL-form
Opcode 0x4C000224
Extension Privileged
Registers Altered MSR, SRR0, SRR1

Operands