X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdePkg%2FLibrary%2FBaseLib%2FIa32%2FEnablePaging64.S;h=08950ce0e2b7155c9e47825546bfb5a9595d2f54;hb=d2660fe32d000765cc5d370bdc4452fec9389b2a;hp=89502b7ef570143cebd0d1b7d7e2b1d450b1135e;hpb=b7089db12047675e829a74674700b03406c432e6;p=mirror_edk2.git diff --git a/MdePkg/Library/BaseLib/Ia32/EnablePaging64.S b/MdePkg/Library/BaseLib/Ia32/EnablePaging64.S index 89502b7ef5..08950ce0e2 100644 --- a/MdePkg/Library/BaseLib/Ia32/EnablePaging64.S +++ b/MdePkg/Library/BaseLib/Ia32/EnablePaging64.S @@ -1,17 +1,17 @@ #------------------------------------------------------------------------------ # -# Copyright (c) 2006, Intel Corporation -# All rights reserved. This program and the accompanying materials +# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+# This program and the accompanying materials # 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 -# http://opensource.org/licenses/bsd-license.php +# http://opensource.org/licenses/bsd-license.php. # # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. # # Module Name: # -# EnablePaging64.Asm +# EnablePaging64.S # # Abstract: # @@ -21,7 +21,7 @@ # #------------------------------------------------------------------------------ -.globl _InternalX86EnablePaging64 +ASM_GLOBAL ASM_PFX(InternalX86EnablePaging64) #------------------------------------------------------------------------------ # VOID @@ -34,9 +34,9 @@ # IN UINT64 NewStack # ); #------------------------------------------------------------------------------ -_InternalX86EnablePaging64: +ASM_PFX(InternalX86EnablePaging64): cli - movl $LongStart, (%esp) + movl $LongStart, (%esp) # offset for far retf, seg is the 1st arg movl %cr4, %eax orb $0x20, %al movl %eax, %cr4 # enable PAE @@ -45,11 +45,11 @@ _InternalX86EnablePaging64: orb $1, %ah # set LME wrmsr movl %cr0, %eax - btsl $31, %eax + btsl $31, %eax # set PG movl %eax, %cr0 # enable paging - lret + lret # topmost 2 dwords hold the address LongStart: # long mode starts here - .byte 0x67, 0x48 + .byte 0x67, 0x48 # 32-bit address size, 64-bit operand size movl (%esp), %ebx # mov rbx, [esp] .byte 0x67, 0x48 movl 8(%esp), %ecx # mov rcx, [esp + 8] @@ -58,6 +58,6 @@ LongStart: # long mode starts here .byte 0x67, 0x48 movl 0x18(%esp), %esp # mov rsp, [esp + 18h] .byte 0x48 - addl $0x-20, %esp # add rsp, -20h + addl $-0x20, %esp # add rsp, -20h call *%ebx # call rbx - jmp . + jmp . # no one should get here