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