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;------------------------------------------------------------------------------ 30global ASM_PFX(InternalX86EnablePaging32) 31ASM_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 49