;/** @file\r
; Low level x64 routines used by the debug support driver.\r
;\r
-; Copyright (c) 2007 - 2008, Intel Corporation. <BR>\r
-; All rights reserved. This program and the accompanying materials\r
+; Copyright (c) 2007 - 2010, 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
; http://opensource.org/licenses/bsd-license.php\r
ret\r
FxStorSupport ENDP\r
\r
-\r
-\r
-\r
-;------------------------------------------------------------------------------\r
-; BOOLEAN\r
-; WriteInterruptFlag (\r
-; BOOLEAN NewState // rcx\r
-; )\r
-;\r
-; Abstract: Programs interrupt flag to the requested state and returns previous\r
-; state.\r
-;\r
-WriteInterruptFlag PROC PUBLIC\r
-\r
- pushfq\r
- pop rax\r
- and rax, 200h\r
- shr rax, 9\r
- cmp rcx, 0\r
- jnz EnableIF\r
- cli\r
- ret\r
-EnableIF:\r
- sti\r
- ret\r
-\r
-WriteInterruptFlag ENDP\r
-\r
-\r
-\r
;------------------------------------------------------------------------------\r
; void\r
; Vect2Desc (\r
mov rax, [rsp + 24]\r
mov DebugRsp, rax\r
mov rax, AppRsp\r
- add rax, 40\r
+ mov rax, QWORD PTR [rax + 24]\r
; application stack has ss, rsp, rflags, cs, & rip, so\r
- ; last actual application stack entry is\r
- ; 40 bytes into the application stack.\r
+ ; last actual application stack entry is saved at offset\r
+ ; 24 bytes from stack top.\r
mov [rsp + 24], rax\r
\r
;; continue building context record\r
\r
mov rbx, [rsp + 24] ; move the potentially modified AppRsp into rbx\r
mov rax, AppRsp\r
- add rax, 40\r
+ mov rax, QWORD PTR [rax + 24]\r
cmp rbx, rax\r
je NoAppStackMove\r
\r