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 ; 39 InternalSwitchStackAsm 40 MOV LR, R0 41 MOV SP, R3 42 MOV R0, R1 43 MOV R1, R2 44 BX LR 45 END 46