X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=CorebootModulePkg%2FSecCore%2FIa32%2FStack.nasm;fp=CorebootModulePkg%2FSecCore%2FIa32%2FStack.nasm;h=0000000000000000000000000000000000000000;hp=55fd2243c87f14f610663d424bc8eb408c1b792a;hb=f684c3f5eef4be691e137ae64e7d00521ec201de;hpb=ae3c247dbc943d707e5007f12f5a5862b4e97781 diff --git a/CorebootModulePkg/SecCore/Ia32/Stack.nasm b/CorebootModulePkg/SecCore/Ia32/Stack.nasm deleted file mode 100644 index 55fd2243c8..0000000000 --- a/CorebootModulePkg/SecCore/Ia32/Stack.nasm +++ /dev/null @@ -1,72 +0,0 @@ -;------------------------------------------------------------------------------ -; -; Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.
-; SPDX-License-Identifier: BSD-2-Clause-Patent -; -; Abstract: -; -; Switch the stack from temporary memory to permanent memory. -; -;------------------------------------------------------------------------------ - -SECTION .text - -;------------------------------------------------------------------------------ -; VOID -; EFIAPI -; SecSwitchStack ( -; UINT32 TemporaryMemoryBase, -; UINT32 PermenentMemoryBase -; ); -;------------------------------------------------------------------------------ -global ASM_PFX(SecSwitchStack) -ASM_PFX(SecSwitchStack): - ; - ; Save three register: eax, ebx, ecx - ; - push eax - push ebx - push ecx - push edx - - ; - ; !!CAUTION!! this function address's is pushed into stack after - ; migration of whole temporary memory, so need save it to permanent - ; memory at first! - ; - - mov ebx, [esp + 20] ; Save the first parameter - mov ecx, [esp + 24] ; Save the second parameter - - ; - ; Save this function's return address into permanent memory at first. - ; Then, Fixup the esp point to permanent memory - ; - mov eax, esp - sub eax, ebx - add eax, ecx - mov edx, [esp] ; copy pushed register's value to permanent memory - mov [eax], edx - mov edx, [esp + 4] - mov [eax + 4], edx - mov edx, [esp + 8] - mov [eax + 8], edx - mov edx, [esp + 12] - mov [eax + 12], edx - mov edx, [esp + 16] ; Update return address into permanent memory - mov [eax + 16], edx - mov esp, eax ; From now, esp is pointed to permanent memory - - ; - ; Fixup the ebp point to permanent memory - ; - mov eax, ebp - sub eax, ebx - add eax, ecx - mov ebp, eax ; From now, ebp is pointed to permanent memory - - pop edx - pop ecx - pop ebx - pop eax - ret