summaryrefslogtreecommitdiff
path: root/UnixPkg/Sec/X64/SwitchStack.S
diff options
context:
space:
mode:
authorJordan Justen <jordan.l.justen@intel.com>2013-07-29 21:09:55 +0000
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>2013-07-29 21:09:55 +0000
commit5d71a30480bdf7081f72485d6bf48361c244c4d7 (patch)
treeeaa76ec905c5a488d86edb9dcc5c4c7a79958258 /UnixPkg/Sec/X64/SwitchStack.S
parentbf6ee6c7c33cf280cdfb2fd0e6b66a712b7aa4a1 (diff)
downloadedk2-platforms-5d71a30480bdf7081f72485d6bf48361c244c4d7.tar.xz
UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg)
For now the UnixPkg/Deprecated.txt file is retained to indicate that EmulatorPkg should be used instead. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14518 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'UnixPkg/Sec/X64/SwitchStack.S')
-rw-r--r--UnixPkg/Sec/X64/SwitchStack.S120
1 files changed, 0 insertions, 120 deletions
diff --git a/UnixPkg/Sec/X64/SwitchStack.S b/UnixPkg/Sec/X64/SwitchStack.S
deleted file mode 100644
index e9adefce39..0000000000
--- a/UnixPkg/Sec/X64/SwitchStack.S
+++ /dev/null
@@ -1,120 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
-# 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.
-#
-# Module Name:
-#
-# SwitchStack.S
-#
-# Abstract:
-#
-#------------------------------------------------------------------------------
-
-
-#------------------------------------------------------------------------------
-# Routine Description:
-#
-# Routine for switching stacks with 3 parameters EFI ABI
-# Convert UNIX to EFI ABI
-#
-# Arguments:
-#
-# (rdi) EntryPoint - Entry point with new stack.
-# (rsi) Context1 - Parameter1 for entry point. (rcx)
-# (rdx) Context2 - Parameter2 for entry point. (rdx)
-# (rcx) Context3 - Parameter3 for entry point. (r8)
-# (r8) NewStack - The pointer to new stack.
-#
-# Returns:
-#
-# None
-#
-#------------------------------------------------------------------------------
-ASM_GLOBAL ASM_PFX(PeiSwitchStacks)
-ASM_PFX(PeiSwitchStacks):
- pushq %rbp // stack frame is for the debugger
- movq %rsp, %rbp
-
- movq %r8, %rsp
-
- movq %rdi, %rax
- movq %rsi, %rcx
- movq %rcx, %r8
-
- #
- # Reserve space for register parameters (rcx, rdx, r8 & r9) on the stack,
- # in case the callee wishes to spill them.
- #
- subq $32, %rsp // 32-byte shadow space plus alignment pad
- call *%rax
-
-
-#------------------------------------------------------------------------------
-# Routine Description:
-#
-# Routine for switching stacks with 3 parameters UNIX ABI
-#
-# Arguments:
-#
-# (rdi) EntryPoint - Entry point with new stack.
-# (rsi) Context1 - Parameter1 for entry point.
-# (rdx) Context2 - Parameter2 for entry point.
-# (rcx) Context3 - Parameter3 for entry point.
-# (r8) NewStack - The pointer to new stack.
-#
-# Returns:
-#
-# None
-#
-#------------------------------------------------------------------------------
-ASM_GLOBAL ASM_PFX(UnixPeiSwitchStacks)
-ASM_PFX(UnixPeiSwitchStacks):
- pushq %rbp // stack frame is for the debugger
- movq %rsp, %rbp
-
- mov %rdi, %rax
- mov %rsi, %rdi
- mov %rdx, %rsi
- mov %rcx, %rdx
- mov %r8, %rsp
-
-
- #
- # Reserve space for redzone on the stack,
- # in case the callee wishes to spill them.
- #
- lea -0x80(%rsp), %rsp
- call *%rax
-
-
-
-#------------------------------------------------------------------------------
-# VOID
-# EFIAPI
-# SecSwitchStack (
-# UINT32 TemporaryMemoryBase, // Rcx, Rdi
-# UINT32 PermenentMemoryBase // Rdx, Rsi
-# );
-#------------------------------------------------------------------------------
-ASM_GLOBAL ASM_PFX(SecSwitchStack)
-ASM_PFX(SecSwitchStack):
- pushq %rbp // stack frame is for the debugger
- movq %rsp, %rbp
-
- mov %rsp, %rax
- sub %rdi, %rax
- add %rsi, %rax
- mov (%rip), %r10
- mov %r10, (%rax)
-
- popq %rbp
- ret
-
- \ No newline at end of file