IntelFsp2WrapperPkg: Update BaseFspWrapperApiLib to pass XCODE5 build

XCODE5 doesn't support absolute addressing in the assembly code.
This change uses lea instruction to get the address.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
This commit is contained in:
Liming Gao 2018-01-18 10:36:13 +08:00
parent 0c1ffb9504
commit c45f4c5e75
1 changed files with 5 additions and 5 deletions

View File

@ -1,5 +1,5 @@
; ;
; Copyright (c) 2016, Intel Corporation. All rights reserved.<BR> ; Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
; This program and the accompanying materials ; This program and the accompanying materials
; are licensed and made available under the terms and conditions of the BSD License ; are licensed and made available under the terms and conditions of the BSD License
; which accompanies this distribution. The full text of the license may be found at ; which accompanies this distribution. The full text of the license may be found at
@ -81,7 +81,7 @@ ASM_PFX(AsmExecute32BitCode):
; ;
mov rax, dword 0x10 ; load long mode selector mov rax, dword 0x10 ; load long mode selector
shl rax, 32 shl rax, 32
mov r9, ReloadCS ;Assume the ReloadCS is under 4G lea r9, [ReloadCS] ;Assume the ReloadCS is under 4G
or rax, r9 or rax, r9
push rax push rax
; ;
@ -95,7 +95,7 @@ ASM_PFX(AsmExecute32BitCode):
; save the 32-bit function entry and the return address into stack which will be ; save the 32-bit function entry and the return address into stack which will be
; retrieve in compatibility mode. ; retrieve in compatibility mode.
; ;
mov rax, ReturnBack ;Assume the ReloadCS is under 4G lea rax, [ReturnBack] ;Assume the ReloadCS is under 4G
shl rax, 32 shl rax, 32
or rax, rcx or rax, rcx
push rax push rax
@ -110,7 +110,7 @@ ASM_PFX(AsmExecute32BitCode):
; ;
mov rcx, dword 0x8 ; load compatible mode selector mov rcx, dword 0x8 ; load compatible mode selector
shl rcx, 32 shl rcx, 32
mov rdx, Compatible ; assume address < 4G lea rdx, [Compatible] ; assume address < 4G
or rcx, rdx or rcx, rdx
push rcx push rcx
retf retf
@ -208,7 +208,7 @@ ReloadCS:
; ;
pop r9 ; get CS pop r9 ; get CS
shl r9, 32 ; rcx[32..47] <- Cs shl r9, 32 ; rcx[32..47] <- Cs
mov rcx, .0 lea rcx, [.0]
or rcx, r9 or rcx, r9
push rcx push rcx
retf retf