]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/BaseLib/X64/SwitchStack.S
sync comments on data structure to follow latest UEFI spec.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Library / EdkIIGlueLib / Library / BaseLib / X64 / SwitchStack.S
CommitLineData
b341712e 1#------------------------------------------------------------------------------\r
2#\r
3# Copyright (c) 2006, Intel Corporation\r
4# All rights reserved. This program and the accompanying materials\r
5# are licensed and made available under the terms and conditions of the BSD License\r
6# which accompanies this distribution. The full text of the license may be found at\r
7# http://opensource.org/licenses/bsd-license.php\r
8#\r
9# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11#\r
12# Module Name:\r
13#\r
14# SwitchStack.S\r
15#\r
16# Abstract:\r
17#\r
18#------------------------------------------------------------------------------\r
19\r
20#include <EdkIIGlueBase.h>\r
21#------------------------------------------------------------------------------\r
22# Routine Description:\r
23#\r
24# Routine for switching stacks with 1 parameter\r
25#\r
26# Arguments:\r
27#\r
28# (rdi) EntryPoint - Entry point with new stack.\r
29# (rsi) Context1 - Parameter1 for entry point.\r
30# (rdx) Context2 - Parameter2 for entry point.\r
31# (rcx) NewStack - Pointer to new stack.\r
32#\r
33# Returns:\r
34#\r
35# None\r
36#\r
37#------------------------------------------------------------------------------\r
38.global ASM_PFX(InternalSwitchStack)\r
39ASM_PFX(InternalSwitchStack):\r
40 mov %rcx, %rax\r
41 mov %rdx, %rcx\r
42 mov %r8, %rdx\r
43 lea -0x20(%r9), %rsp\r
44 call *%rax\r