Intel 64 and IA-32 Architectures Software Developers Manual Volume 3B, System Programming Guide Part 2

Table Of Contents
Vol. 3 25-39
SYSTEM MANAGEMENT
CS.Type is set to 11 (execute/read, accessed, non-conforming code
segment).
For SS, DS, FS, and GS, the Type is set to 3 (read/write, accessed,
expand-up data segment).
The S bits for all registers are set to 1.
The DPL for each register is set to 0.
The P bits for all registers are set to 1.
On processors that support Intel 64 architecture, CS.L is loaded with the
value of the IA-32e mode SMM feature bit.
CS.D is loaded with the inverse of the value of the IA-32e mode SMM
feature bit.
For each of SS, DS, FS, and GS, the D/B bit is set to 1.
The G bits for all registers are set to 1.
LDTR is unusable. The LDTR selector is cleared to 0000H, and the register is
otherwise undefined (although the base address is always canonical)
GDTR.base is set to the sum of the MSEG base address and the GDTR base-offset
field in the MSEG header (bits 63:32 are always cleared on processors that
supports IA-32e mode). GDTR.limit is set to the corresponding field in the MSEG
header (the high 16 bits are ignored).
IDTR.base is unchanged. IDTR.limit is cleared to 0000H.
RIP is set to the sum of the MSEG base address and the value of the RIP-offset
field in the MSEG header (bits 63:32 are always cleared on logical processors
that support IA-32e mode).
RSP is set to the sum of the MSEG base address and the value of the RSP-offset
field in the MSEG header (bits 63:32 are always cleared on logical processor that
supports IA-32e mode).
RFLAGS is cleared, except bit 1, which is always set.
The logical processor is left in the active state.
Event blocking after the SMM VM exit is as follows:
There is no blocking by STI or by MOV SS.
There is blocking by non-maskable interrupts (NMIs) and by SMIs.
There are no pending debug exceptions after the SMM VM exit.
For processors that support IA-32e mode, the IA32_EFER MSR is modified so that
LME and LMA both contain the value of the IA-32e mode SMM feature bit.
If any of CR3[63:5], CR4.PAE, CR4.PSE, or IA32_EFER.LMA is changing, the TLBs are
updated so that, after VM exit, the logical processor does not use translations that
were cached before the transition. This is not necessary for changes that would not
affect paging due to the settings of other bits (for example, changes to CR4.PSE if
IA32_EFER.LMA was 1 before and after the transition).