Specifications
Intel
®
64 and IA-32 Architectures Software Developer’s Manual Documentation Changes 228
Documentation Changes
by privilege level 0 operating system or executive procedures for fast returns to privilege
level 3 user code.
Stack pointers for SYSCALL/SYSRET are not specified through model specific registers.
The clearing of bits in RFLAGS is programmable rather than fixed. SYSCALL/SYSRET
save and restore the RFLAGS register.
For SYSCALL, the processor saves RFLAGS into R11 and the RIP of the next instruction
into RCX; it then gets the privilege-level 0 target instruction and stack pointer from:
• Target code segment — Reads a non-NULL selector from IA32_STAR[47:32].
• Target instruction — Reads a 64-bit canonical address from IA32_LSTAR.
• Stack segment — Computed by adding 8 to the value in IA32_STAR[47:32].
• System flags — The processor sets RFLAGS to the logical-AND of its current value
with the complement of the value in the IA32_FMASK MSR.
...