]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/DebugSupportDxe/X64/AsmFuncs.asm
fixed one bug that old rsp was calculate incorrectly.
[mirror_edk2.git] / MdeModulePkg / Universal / DebugSupportDxe / X64 / AsmFuncs.asm
index 6b047066ca3d0b0295b0895e271d5f91ac8c09bd..f254e078dae10239aff447bd11142d457b9d0b12 100644 (file)
@@ -1,7 +1,7 @@
 ;/** @file\r
 ;  Low level x64 routines used by the debug support driver.\r
 ;\r
-;  Copyright (c) 2007 - 2008, Intel Corporation.\r
+;  Copyright (c) 2007 - 2010, Intel Corporation.\r
 ;  All rights reserved. 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
@@ -296,10 +296,10 @@ ExtraPushDone:
                 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
@@ -482,7 +482,7 @@ ExtraPushDone:
 \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