mirror of https://github.com/acidanthera/audk.git
Fixed GCC 4.4 build issue. Also fixed issue where upper 32-bits may be lost during AND operation.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10376 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
47ca9c9588
commit
bc810c8977
|
@ -43,7 +43,7 @@ ASM_PFX(InternalX86DisablePaging64):
|
|||
lea _mTransitionEnd(%rip), %rax # rax <- end of transition code
|
||||
sub %rsi, %rax # rax <- The size of transition piece code
|
||||
add $4, %rax # round rax up to the next 4 byte boundary
|
||||
and $0x0fffffffc, %rax
|
||||
and $0xfc, %al
|
||||
sub %rax, %rdi # rdi <- use stack to hold transition code
|
||||
mov %edi, %r10d # r10 <- The start address of transicition code below 4G
|
||||
push %rcx # save rcx to stack
|
||||
|
@ -78,4 +78,5 @@ L1:
|
|||
push %rsi # push Context1
|
||||
callq *%rbx # transfer control to EntryPoint
|
||||
jmp . # no one should get here
|
||||
_mTransitionEnd :
|
||||
|
||||
_mTransitionEnd :
|
||||
|
|
|
@ -41,7 +41,7 @@ InternalX86DisablePaging64 PROC
|
|||
lea rax, mTransitionEnd ; rax <- end of transition code
|
||||
sub rax, rsi ; rax <- The size of transition piece code
|
||||
add rax, 4 ; Round RAX up to the next 4 byte boundary
|
||||
and rax, 0fffffffch
|
||||
and al, 0fch
|
||||
sub rdi, rax ; rdi <- Use stack to hold transition code
|
||||
mov r10d, edi ; r10 <- The start address of transicition code below 4G
|
||||
push rcx ; save rcx to stack
|
||||
|
|
Loading…
Reference in New Issue