]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm
UefiCpuPkg/CpuExceptionHandler: Revert CpuExceptionHandler binary patching
[mirror_edk2.git] / UefiCpuPkg / Library / CpuExceptionHandlerLib / X64 / ExceptionHandlerAsm.nasm
index 19198f273137ead558224ece1a8fc15ff03c9451..3814f9de3703c46e33ce696df99e862acf7f45e6 100644 (file)
@@ -34,7 +34,7 @@ AsmIdtVectorBegin:
     db      0x6a        ; push  #VectorNum\r
     db      ($ - AsmIdtVectorBegin) / ((AsmIdtVectorEnd - AsmIdtVectorBegin) / 32) ; VectorNum\r
     push    rax\r
-    mov     rax, strict qword 0 ;    mov     rax, ASM_PFX(CommonInterruptEntry)\r
+    mov     rax, ASM_PFX(CommonInterruptEntry)\r
     jmp     rax\r
 %endrep\r
 AsmIdtVectorEnd:\r
@@ -44,8 +44,7 @@ HookAfterStubHeaderBegin:
 @VectorNum:\r
     db      0          ; 0 will be fixed\r
     push    rax\r
-    mov     rax, strict qword 0 ;     mov     rax, HookAfterStubHeaderEnd\r
-JmpAbsoluteAddress:\r
+    mov     rax, HookAfterStubHeaderEnd\r
     jmp     rax\r
 HookAfterStubHeaderEnd:\r
     mov     rax, rsp\r
@@ -257,7 +256,8 @@ HasErrorCode:
     ; and make sure RSP is 16-byte aligned\r
     ;\r
     sub     rsp, 4 * 8 + 8\r
-    call    ASM_PFX(CommonExceptionHandler)\r
+    mov     rax, ASM_PFX(CommonExceptionHandler)\r
+    call    rax\r
     add     rsp, 4 * 8 + 8\r
 \r
     cli\r
@@ -365,24 +365,11 @@ DoIret:
 ; comments here for definition of address map\r
 global ASM_PFX(AsmGetTemplateAddressMap)\r
 ASM_PFX(AsmGetTemplateAddressMap):\r
-    lea     rax, [AsmIdtVectorBegin]\r
+    mov     rax, AsmIdtVectorBegin\r
     mov     qword [rcx], rax\r
     mov     qword [rcx + 0x8],  (AsmIdtVectorEnd - AsmIdtVectorBegin) / 32\r
-    lea     rax, [HookAfterStubHeaderBegin]\r
+    mov     rax, HookAfterStubHeaderBegin\r
     mov     qword [rcx + 0x10], rax\r
-\r
-; Fix up CommonInterruptEntry address\r
-    lea    rax, [ASM_PFX(CommonInterruptEntry)]\r
-    lea    rcx, [AsmIdtVectorBegin]\r
-%rep  32\r
-    mov    qword [rcx + (JmpAbsoluteAddress - 8 - HookAfterStubHeaderBegin)], rax\r
-    add    rcx, (AsmIdtVectorEnd - AsmIdtVectorBegin) / 32\r
-%endrep\r
-; Fix up HookAfterStubHeaderEnd\r
-    lea    rax, [HookAfterStubHeaderEnd]\r
-    lea    rcx, [JmpAbsoluteAddress]\r
-    mov    qword [rcx - 8], rax\r
-\r
     ret\r
 \r
 ;-------------------------------------------------------------------------------------\r