Home | History | Annotate | Download | only in Ipf
      1 /// @file
      2 ///  IPF specific Global Pointer and Stack Pointer accessing functions
      3 ///
      4 /// Copyright (c) 2006, Intel Corporation. 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 /// Module Name: AccessGp.s
     14 ///
     15 ///
     16 
     17 //---------------------------------------------------------------------------------
     18 //++
     19 // AsmReadGp
     20 //
     21 // This routine is used to read the current value of 64-bit Global Pointer (GP).
     22 //
     23 // Arguments :
     24 //
     25 // On Entry :
     26 //
     27 // Return Value: The current GP value.
     28 //
     29 //--
     30 //----------------------------------------------------------------------------------
     31 .text
     32 .type   AsmReadGp, @function
     33 .proc   AsmReadGp
     34 
     35 AsmReadGp::
     36         mov             r8 = gp;;
     37         br.ret.dpnt     b0;;
     38 .endp   AsmReadGp
     39 
     40 //---------------------------------------------------------------------------------
     41 //++
     42 // AsmWriteGp
     43 //
     44 // This routine is used to write the current value of 64-bit Global Pointer (GP).
     45 //
     46 // Arguments :
     47 //
     48 // On Entry : The value need to be written.
     49 //
     50 // Return Value: The value have been written.
     51 //
     52 //--
     53 //----------------------------------------------------------------------------------
     54 .text
     55 .type   AsmWriteGp, @function
     56 .proc   AsmWriteGp
     57 .regstk 1, 0, 0, 0
     58 
     59 AsmWriteGp::
     60         mov             gp = in0
     61         mov             r8 = in0;;
     62         br.ret.dpnt     b0;;
     63 .endp   AsmWriteGp
     64 
     65 //---------------------------------------------------------------------------------
     66 //++
     67 // AsmReadSp
     68 //
     69 // This routine is used to read the current value of 64-bit Stack Pointer (SP).
     70 //
     71 // Arguments :
     72 //
     73 // On Entry :
     74 //
     75 // Return Value: The current SP value.
     76 //
     77 //--
     78 //----------------------------------------------------------------------------------
     79 .text
     80 .type   AsmReadSp, @function
     81 .proc   AsmReadSp
     82 
     83 AsmReadSp::
     84         mov             r8 = sp;;
     85         br.ret.dpnt     b0;;
     86 .endp   AsmReadSp
     87