Reviewed-by: Ray Ni <ray...@intel.com>

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ard Biesheuvel
Sent: Friday, March 31, 2023 5:21 AM
To: devel@edk2.groups.io
Cc: Ard Biesheuvel <a...@kernel.org>; Ni; Ni, Ray <ray...@intel.com>; Andrew 
Fish <af...@apple.com>; Kinney, Michael D <michael.d.kin...@intel.com>; Liu, 
Zhiguang <zhiguang....@intel.com>; Rebecca Cran <rebe...@bsdio.com>; Tom 
Lendacky <thomas.lenda...@amd.com>
Subject: [edk2-devel] [RFT PATCH v2 4/6] UefiCpuPkg/CpuExceptionHandlerLib: 
Remove needless runtime fixups

Recent versions of the XCODE linker can be instructed to permit text
relocations, so we no longer have to work around this, which is
especially nice as our workaround assumes that the .text section is
mapped both writable and executable at the same time.

So remove the runtime fixups and instead, just emit the absolute
references into the .text section.

While at it, rename the Xcode5ExceptionHandlerAsm.nasm source file and
drop the Xcode5 prefix: this code is used by other toolchains too.

Signed-off-by: Ard Biesheuvel <a...@kernel.org>
---
 UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf        
                            |  2 +-
 UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf        
                            |  2 +-
 UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf        
                            |  2 +-
 UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/{Xcode5ExceptionHandlerAsm.nasm 
=> ExceptionHandlerAsm.nasm} | 18 ++----------------
 4 files changed, 5 insertions(+), 19 deletions(-)

diff --git 
a/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf 
b/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
index d0f82095cf926e99..1b2dde746d154706 100644
--- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
+++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
@@ -28,7 +28,7 @@ [Sources.Ia32]
   Ia32/ArchInterruptDefs.h

 

 [Sources.X64]

-  X64/Xcode5ExceptionHandlerAsm.nasm

+  X64/ExceptionHandlerAsm.nasm

   X64/ArchExceptionHandler.c

   X64/ArchInterruptDefs.h

 

diff --git 
a/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf 
b/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf
index 5339f8e604045801..86248cea3e97cedb 100644
--- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf
+++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf
@@ -28,7 +28,7 @@ [Sources.Ia32]
   Ia32/ArchInterruptDefs.h

 

 [Sources.X64]

-  X64/Xcode5ExceptionHandlerAsm.nasm

+  X64/ExceptionHandlerAsm.nasm

   X64/ArchExceptionHandler.c

   X64/ArchInterruptDefs.h

 

diff --git 
a/UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf 
b/UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf
index 8f8a5dab79303f87..0eed594be8660302 100644
--- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf
+++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf
@@ -28,7 +28,7 @@ [Sources.Ia32]
   Ia32/ArchInterruptDefs.h

 

 [Sources.X64]

-  X64/Xcode5ExceptionHandlerAsm.nasm

+  X64/ExceptionHandlerAsm.nasm

   X64/ArchExceptionHandler.c

   X64/ArchInterruptDefs.h

 

diff --git 
a/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/Xcode5ExceptionHandlerAsm.nasm 
b/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm
similarity index 92%
rename from 
UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/Xcode5ExceptionHandlerAsm.nasm
rename to UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm
index 957478574253e619..10af4cfcdb6b1ea2 100644
--- 
a/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/Xcode5ExceptionHandlerAsm.nasm
+++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm
@@ -59,7 +59,7 @@ AsmIdtVectorBegin:
 %rep  256

     push    strict dword %[Vector] ; This instruction pushes sign-extended 
8-byte value on stack

     push    rax

-    mov     rax, strict qword 0    ; mov     rax, ASM_PFX(CommonInterruptEntry)

+    mov     rax, ASM_PFX(CommonInterruptEntry)

     jmp     rax

 %assign Vector Vector+1

 %endrep

@@ -69,8 +69,7 @@ HookAfterStubHeaderBegin:
     push    strict dword 0      ; 0 will be fixed

 VectorNum:

     push    rax

-    mov     rax, strict qword 0 ;     mov     rax, HookAfterStubHeaderEnd

-JmpAbsoluteAddress:

+    mov     rax, HookAfterStubHeaderEnd

     jmp     rax

 HookAfterStubHeaderEnd:

     mov     rax, rsp

@@ -456,19 +455,6 @@ ASM_PFX(AsmGetTemplateAddressMap):
     mov     qword [rcx + 0x8],  (AsmIdtVectorEnd - AsmIdtVectorBegin) / 256

     lea     rax, [HookAfterStubHeaderBegin]

     mov     qword [rcx + 0x10], rax

-

-; Fix up CommonInterruptEntry address

-    lea    rax, [ASM_PFX(CommonInterruptEntry)]

-    lea    rcx, [AsmIdtVectorBegin]

-%rep  256

-    mov    qword [rcx + (JmpAbsoluteAddress - 8 - HookAfterStubHeaderBegin)], 
rax

-    add    rcx, (AsmIdtVectorEnd - AsmIdtVectorBegin) / 256

-%endrep

-; Fix up HookAfterStubHeaderEnd

-    lea    rax, [HookAfterStubHeaderEnd]

-    lea    rcx, [JmpAbsoluteAddress]

-    mov    qword [rcx - 8], rax

-

     ret

 

 
;-------------------------------------------------------------------------------------

-- 
2.39.2



-=-=-=-=-=-=
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#102215): https://edk2.groups.io/g/devel/message/102215
Mute This Topic: https://groups.io/mt/97960766/1712937
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [ray...@intel.com]
-=-=-=-=-=-=




-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#102232): https://edk2.groups.io/g/devel/message/102232
Mute This Topic: https://groups.io/mt/97960766/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: 
https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to