]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm
UefiCpuPkg/CpuExceptionHandlerLib: Fix split lock
[mirror_edk2.git] / UefiCpuPkg / Library / CpuExceptionHandlerLib / X64 / ExceptionHandlerAsm.nasm
index 4db1a09f288185ca4af071a500d6d718dedec1a6..19198f273137ead558224ece1a8fc15ff03c9451 100644 (file)
@@ -184,17 +184,19 @@ HasErrorCode:
     push    rax\r
     push    rax\r
     sidt    [rsp]\r
-    xchg    rax, [rsp + 2]\r
-    xchg    rax, [rsp]\r
-    xchg    rax, [rsp + 8]\r
+    mov     bx, word [rsp]\r
+    mov     rax, qword [rsp + 2]\r
+    mov     qword [rsp], rax\r
+    mov     word [rsp + 8], bx\r
 \r
     xor     rax, rax\r
     push    rax\r
     push    rax\r
     sgdt    [rsp]\r
-    xchg    rax, [rsp + 2]\r
-    xchg    rax, [rsp]\r
-    xchg    rax, [rsp + 8]\r
+    mov     bx, word [rsp]\r
+    mov     rax, qword [rsp + 2]\r
+    mov     qword [rsp], rax\r
+    mov     word [rsp + 8], bx\r
 \r
 ;; UINT64  Ldtr, Tr;\r
     xor     rax, rax\r