SYSENTER: Difference between revisions

m
→‎64 bit mode: Too easy to skip over but very important
[unchecked revision][unchecked revision]
m (Explicitly note that SS is still loaded from STAR 63:48 + 8. Thanks AMD)
m (→‎64 bit mode: Too easy to skip over but very important)
Line 64:
====64 bit mode====
The operation in 64 bit mode is the same, except that RIP is loaded from LSTAR, or CSTAR of in IA32-e submode (A.K.A. compatibility mode). It also respectively saves and loads RFLAGS to and from R11.
 
As well, in'''In Long Mode, userland CS will be loaded from STAR 63:48 + 16 and userland SS from STAR 63:48 + 8 on SYSRET. Therefore, youYou mightmay need to setupmodify your GDT accordingly.'''
 
Moreover, SYSRET will return to compatibility mode if the operand size is set to 32 bits, which is, for instance, nasm's default. To explicitly request a return into long mode, set the operand size to 64 bits (e.g. "o64 sysret" with nasm).
7

edits