RSM

Resume From System Management Mode

stableVMJITAOTinstruction

Encodings

OpcodeInstructionOp/En64-bitCompat/LegacyDescription
0F AARSMZOValidValidResume operation of interrupted program.

Measured cost

Loading measurements from arch-data...

Description

Returns program control from system management mode (SMM) to the application program or operating-system procedure that was interrupted when the processor received an SMM interrupt. The processor's state is restored from the dump created upon entering SMM. If the processor detects invalid state information during state restoration, it enters the shutdown state. The following invalid information can cause a shutdown:

aligned address.

The contents of the model-specific registers are not affected by a return from SMM.

The SMM state map used by RSM supports resuming processor context for non-64-bit modes and 64-bit mode.

See Chapter 34, "System Management Mode," in the Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3C, for more information about SMM and the behavior of the RSM instruction.

Operation

ReturnFromSMM;
IF (IA-32e mode supported) or (CPUID DisplayFamily_DisplayModel = 06H_0CH )

    THEN
          ProcessorState := Restore(SMMDump(IA-32e SMM STATE MAP));

    Else
          ProcessorState := Restore(SMMDump(Non-32-Bit-Mode SMM STATE MAP));

FI

Flags affected

All.

Exceptions

Protected mode
#UDIf an attempt is made to execute this instruction when the processor is not in SMM. If the LOCK prefix is used.
#GP(0)If CPL > 0 and IA32_CORE_CAPABILITIES.RSM_IN_CPL0_ONLY[bit 3] = 1.
Real address mode
#UDIf an attempt is made to execute this instruction when the processor is not in SMM. If the LOCK prefix is used.
Virtual-8086 mode
#UDIf an attempt is made to execute this instruction when the processor is not in SMM. If the LOCK prefix is used.
#GP(0)If IA32_CORE_CAPABILITIES.RSM_IN_CPL0_ONLY[bit 3] = 1.
Compatibility mode
Same exceptions as in protected mode.
64-bit mode
Same exceptions as in protected mode.

Sources