\r
;------------------------------------------------------------------------------\r
;\r
-; Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
+; Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
; This program and the accompanying materials\r
; are licensed and made available under the terms and conditions of the BSD License\r
; which accompanies this distribution. The full text of the license may be found at\r
SavedCs DW ?\r
@64BitCode:\r
db 090h \r
- db 067h, 0bch ; mov esp, imm32\r
-SavedSp DD ? ; restore stack\r
+ db 048h, 0bch ; mov rsp, imm64\r
+SavedSp DQ ? ; restore stack\r
nop\r
ret\r
_BackFromUserCode ENDP\r
and eax, 7ffffffeh ; clear PE, PG bits\r
mov rbp, cr4\r
mov [rcx], ebp ; save CR4 in SavedCr4\r
- and ebp, 300h ; clear all but PCE and OSFXSR bits\r
+ and ebp, NOT 30h ; clear PAE, PSE bits\r
mov esi, r8d ; esi <- 16-bit stack segment\r
DB 6ah, DATA32 ; push DATA32\r
pop rdx ; rdx <- 32-bit data segment selector\r
push r8\r
mov r8d, cs\r
mov [rcx + (SavedCs - SavedCr4)], r8w\r
- mov [rcx + (SavedSp - SavedCr4)], esp\r
+ mov [rcx + (SavedSp - SavedCr4)], rsp\r
jmp fword ptr [rcx + (_EntryPoint - SavedCr4)]\r
@RetFromRealMode:\r
popfq\r