Specifications
Intel
®
64 and IA-32 Architectures Software Developer’s Manual Documentation Changes 195
Documentation Changes
SYSCALL—Fast System Call
Instruction Operand Encoding
...
SYSENTER—Fast System Call
Instruction Operand Encoding
...
Operation
IF CR0.PE = 0 THEN #GP(0); FI;
IF SYSENTER_CS_MSR[15:2]
= 0 THEN #GP(0); FI;
EFLAGS.VM ← 0; (* ensures protected mode execution *)
EFLAGS.IF ← 0; (* Mask interrupts *)
EFLAGS.RF ← 0;
CS.SEL ← SYSENTER_CS_MSR (* Operating system provides CS *)
(* Set rest of CS to a fixed value *)
CS.BASE ← 0; (* Flat segment *)
CS.LIMIT ← FFFFFH; (* 4-GByte limit *)
CS.ARbyte.G ← 1; (* 4-KByte granularity *)
CS.ARbyte.S ← 1;
CS.ARbyte.TYPE ← 1011B; (* Execute + Read, Accessed *)
CS.ARbyte.D ← 1; (* 32-bit code segment*)
CS.ARbyte.DPL ← 0;
CS.SEL.RPL ← 0;
CS.ARbyte.P ← 1;
CPL ← 0;
SS.SEL ← CS.SEL + 8;
(* Set rest of SS to a fixed value *)
Opcode Instruction Op/
En
64-Bit
Mode
Compat/
Leg Mode
Description
0F 05 SYSCALL A Valid Invalid Fast call to privilege level 0
system procedures.
Op/En Operand 1 Operand 2 Operand 3 Operand 4
ANA NA NA NA
Opcode Instruction Op/
En
64-Bit
Mode
Compat/
Leg Mode
Description
0F 34 SYSENTER A Valid Valid Fast call to privilege level 0
system procedures.
Op/En Operand 1 Operand 2 Operand 3 Operand 4
ANA NA NA NA