X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=CorebootModulePkg%2FSecCore%2FIa32%2FStack.S;fp=CorebootModulePkg%2FSecCore%2FIa32%2FStack.S;h=0000000000000000000000000000000000000000;hp=6a8e0e4b1537d38cc8fb4cb9be278ac95228427c;hb=57b6844503e7fee83f084fd2704ef3e1d1085ddb;hpb=fb5c9ed8439b44ab35ff4fd1f997a40f49bc2f89 diff --git a/CorebootModulePkg/SecCore/Ia32/Stack.S b/CorebootModulePkg/SecCore/Ia32/Stack.S deleted file mode 100644 index 6a8e0e4b15..0000000000 --- a/CorebootModulePkg/SecCore/Ia32/Stack.S +++ /dev/null @@ -1,78 +0,0 @@ -#------------------------------------------------------------------------------ -# -# Copyright (c) 2013, 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. -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -# Abstract: -# -# Switch the stack from temporary memory to permanent memory. -# -#------------------------------------------------------------------------------ - - -#------------------------------------------------------------------------------ -# VOID -# EFIAPI -# SecSwitchStack ( -# UINT32 TemporaryMemoryBase, -# UINT32 PermenentMemoryBase -# )# -#------------------------------------------------------------------------------ -ASM_GLOBAL ASM_PFX (SecSwitchStack) -ASM_PFX(SecSwitchStack): - # - # Save standard registers so they can be used to change stack - # - pushl %eax - pushl %ebx - pushl %ecx - pushl %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! - # - movl 20(%esp), %ebx # Save the first parameter - movl 24(%esp), %ecx # Save the second parameter - - # - # Save this function's return address into permanent memory at first. - # Then, Fixup the esp point to permanent memory - # - movl %esp, %eax - subl %ebx, %eax - addl %ecx, %eax - movl 0(%esp), %edx # copy pushed register's value to permanent memory - movl %edx, 0(%eax) - movl 4(%esp), %edx - movl %edx, 4(%eax) - movl 8(%esp), %edx - movl %edx, 8(%eax) - movl 12(%esp), %edx - movl %edx, 12(%eax) - movl 16(%esp), %edx # Update this function's return address into permanent memory - movl %edx, 16(%eax) - movl %eax, %esp # From now, esp is pointed to permanent memory - - # - # Fixup the ebp point to permanent memory - # - movl %ebp, %eax - subl %ebx, %eax - addl %ecx, %eax - movl %eax, %ebp # From now, ebp is pointed to permanent memory - - popl %edx - popl %ecx - popl %ebx - popl %eax - ret - -