]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Library/BaseLib/Ia32/EnablePaging32.nasm
3f00167b3f1ad947682208c21ea238f878525e79
[mirror_edk2.git] / MdePkg / Library / BaseLib / Ia32 / EnablePaging32.nasm
1 ;------------------------------------------------------------------------------
2 ;
3 ; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
4 ; SPDX-License-Identifier: BSD-2-Clause-Patent
5 ;
6 ; Module Name:
7 ;
8 ; EnablePaging32.Asm
9 ;
10 ; Abstract:
11 ;
12 ; AsmEnablePaging32 function
13 ;
14 ; Notes:
15 ;
16 ;------------------------------------------------------------------------------
17
18 SECTION .text
19
20 ;------------------------------------------------------------------------------
21 ; VOID
22 ; EFIAPI
23 ; InternalX86EnablePaging32 (
24 ; IN SWITCH_STACK_ENTRY_POINT EntryPoint,
25 ; IN VOID *Context1, OPTIONAL
26 ; IN VOID *Context2, OPTIONAL
27 ; IN VOID *NewStack
28 ; );
29 ;------------------------------------------------------------------------------
30 global ASM_PFX(InternalX86EnablePaging32)
31 ASM_PFX(InternalX86EnablePaging32):
32 mov ebx, [esp + 4]
33 mov ecx, [esp + 8]
34 mov edx, [esp + 12]
35 pushfd
36 pop edi ; save flags in edi
37 cli
38 mov eax, cr0
39 bts eax, 31
40 mov esp, [esp + 16]
41 mov cr0, eax
42 push edi
43 popfd ; restore flags
44 push edx
45 push ecx
46 call ebx
47 jmp $
48