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