]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Library/BaseLib/Ipf/AccessGp.s
1. Port X64, IPF and EBC arch for BaseLib
[mirror_edk2.git] / MdePkg / Library / BaseLib / Ipf / AccessGp.s
1 /// @file
2 /// IPF specific Global Pointer and Stack Pointer accessing functions
3 ///
4 /// Copyright (c) 2006, Intel Corporation
5 /// All rights reserved. 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