]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Library/BaseLib/Ipf/AccessDbr.s
1. Port X64, IPF and EBC arch for BaseLib
[mirror_edk2.git] / MdePkg / Library / BaseLib / Ipf / AccessDbr.s
1 /// @file
2 /// IPF specific Debug Breakpoint Registers 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: AccessDbr.s
14 ///
15 ///
16
17 //---------------------------------------------------------------------------------
18 //++
19 // AsmReadDbr
20 //
21 // This routine is used to Reads the current value of Data Breakpoint Register (DBR).
22 //
23 // Arguments :
24 //
25 // On Entry : The 8-bit DBR index to read.
26 //
27 // Return Value: The current value of DBR by Index.
28 //
29 //--
30 //----------------------------------------------------------------------------------
31 .text
32 .type AsmReadDbr, @function
33 .proc AsmReadDbr
34 .regstk 1, 0, 0, 0
35
36 AsmReadDbr::
37 mov r8 = dbr[in0];;
38 br.ret.dpnt b0;;
39 .endp AsmReadDbr
40
41 //---------------------------------------------------------------------------------
42 //++
43 // AsmWriteDbr
44 //
45 // This routine is used to write the current value to Data Breakpoint Register (DBR).
46 //
47 // Arguments :
48 //
49 // On Entry : The 8-bit DBR index to read.
50 // The value should be written to DBR
51 //
52 // Return Value: The value written to DBR.
53 //
54 //--
55 //----------------------------------------------------------------------------------
56 .text
57 .type AsmWriteDbr, @function
58 .proc AsmWriteDbr
59 .regstk 2, 0, 0, 0
60
61 AsmWriteDbr::
62 mov dbr[in0] = in1
63 mov r8 = in1;;
64 srlz.d;;
65 br.ret.dpnt b0;;
66 .endp AsmWriteDbr
67
68
69 //---------------------------------------------------------------------------------
70 //++
71 // AsmReadIbr
72 //
73 // This routine is used to Reads the current value of Instruction Breakpoint Register (IBR).
74 //
75 // Arguments :
76 //
77 // On Entry : The 8-bit IBR index.
78 //
79 // Return Value: The current value of IBR by Index.
80 //
81 //--
82 //----------------------------------------------------------------------------------
83 .text
84 .type AsmReadIbr, @function
85 .proc AsmReadIbr
86 .regstk 1, 0, 0, 0
87
88 AsmReadIbr::
89 mov r8 = ibr[in0];;
90 br.ret.dpnt b0;;
91 .endp AsmReadIbr
92
93 //---------------------------------------------------------------------------------
94 //++
95 // AsmWriteIbr
96 //
97 // This routine is used to write the current value to Instruction Breakpoint Register (IBR).
98 //
99 // Arguments :
100 //
101 // On Entry : The 8-bit IBR index.
102 // The value should be written to IBR
103 //
104 // Return Value: The value written to IBR.
105 //
106 //--
107 //----------------------------------------------------------------------------------
108 .text
109 .type AsmWriteIbr, @function
110 .proc AsmWriteIbr
111 .regstk 2, 0, 0, 0
112
113 AsmWriteIbr::
114 mov ibr[in0] = in1
115 mov r8 = in1;;
116 srlz.i;;
117 br.ret.dpnt b0;;
118 .endp AsmWriteIbr