1;------------------------------------------------------------------------------ 
2;
3; Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
4; Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
5; This program and the accompanying materials
6; are licensed and made available under the terms and conditions of the BSD License
7; which accompanies this distribution.  The full text of the license may be found at
8; http://opensource.org/licenses/bsd-license.php.
9;
10; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12;
13;------------------------------------------------------------------------------
14  
15    EXPORT InternalSwitchStackAsm
16            
17    AREA   Switch_Stack, CODE, READONLY
18  
19;/**
20;  This allows the caller to switch the stack and goes to the new entry point
21;
22; @param      EntryPoint   The pointer to the location to enter
23; @param      Context      Parameter to pass in
24; @param      Context2     Parameter2 to pass in
25; @param      NewStack     New Location of the stack
26;
27; @return     Nothing. Goes to the Entry Point passing in the new parameters
28;
29;**/
30;VOID
31;EFIAPI
32;InternalSwitchStackAsm (
33;  SWITCH_STACK_ENTRY_POINT EntryPoint,
34;  VOID  *Context,
35;  VOID  *Context2,
36;  VOID  *NewStack
37;  );
38;
39InternalSwitchStackAsm
40    MOV   LR, R0
41    MOV   SP, R3
42    MOV   R0, R1
43    MOV   R1, R2
44    BX    LR
45    END
46