Home | History | Annotate | Download | only in Arm
      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