mirror of https://github.com/acidanthera/audk.git
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:
parent
0c1ffb9504
commit
c45f4c5e75
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue