UefiCpuPkg/PiSmmCpuDxeSmm: patch "gSmmInitStack" with PatchInstructionX86()
Rename the variable to "gPatchSmmInitStack" so that its association with PatchInstructionX86() is clear from the declaration, change its type to X86_ASSEMBLY_PATCH_LABEL, and patch it with PatchInstructionX86(). This lets us remove the binary (DB) encoding of some instructions in "SmmInit.nasm". The size of the patched source operand is (sizeof (UINTN)). Cc: Eric Dong <eric.dong@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=866 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
@@ -25,7 +25,7 @@ extern ASM_PFX(mSmmRelocationOriginalAddress)
|
||||
global ASM_PFX(gPatchSmmCr3)
|
||||
global ASM_PFX(gPatchSmmCr4)
|
||||
global ASM_PFX(gPatchSmmCr0)
|
||||
global ASM_PFX(gSmmInitStack)
|
||||
global ASM_PFX(gPatchSmmInitStack)
|
||||
global ASM_PFX(gcSmiInitGdtr)
|
||||
global ASM_PFX(gcSmmInitSize)
|
||||
global ASM_PFX(gcSmmInitTemplate)
|
||||
@@ -72,8 +72,8 @@ BITS 32
|
||||
mov fs, edi
|
||||
mov gs, edi
|
||||
mov ss, edi
|
||||
DB 0xbc ; mov esp, imm32
|
||||
ASM_PFX(gSmmInitStack): DD 0
|
||||
mov esp, strict dword 0 ; source operand will be patched
|
||||
ASM_PFX(gPatchSmmInitStack):
|
||||
call ASM_PFX(SmmInitHandler)
|
||||
rsm
|
||||
|
||||
|
Reference in New Issue
Block a user