2 /// IPF specific AsmReadKrX() and AsmWriteKrX functions, 'X' is from '0' to '7'
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
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.
13 /// Module Name: AccessKr.s
17 //---------------------------------------------------------------------------------
21 // This routine is used to get KR0.
27 // Return Value: The value store in KR0.
30 //----------------------------------------------------------------------------------
32 .type AsmReadKr0, @function
40 //---------------------------------------------------------------------------------
44 // This routine is used to Write KR0.
50 // Return Value: The value written to the KR0.
53 //----------------------------------------------------------------------------------
56 .type AsmWriteKr0, @function
61 alloc loc1=ar.pfs,1,4,0,0 ;;
63 rsm 0x6000;; // Masking interrupts
75 //---------------------------------------------------------------------------------
79 // This routine is used to get KR1.
85 // Return Value: The value store in KR1.
88 //----------------------------------------------------------------------------------
90 .type AsmReadKr1, @function
98 //---------------------------------------------------------------------------------
102 // This routine is used to Write KR1.
108 // Return Value: The value written to the KR1.
111 //----------------------------------------------------------------------------------
113 .type AsmWriteKr1, @function
123 //---------------------------------------------------------------------------------
127 // This routine is used to get KR2.
133 // Return Value: The value store in KR2.
136 //----------------------------------------------------------------------------------
138 .type AsmReadKr2, @function
146 //---------------------------------------------------------------------------------
150 // This routine is used to Write KR2.
156 // Return Value: The value written to the KR2.
159 //----------------------------------------------------------------------------------
161 .type AsmWriteKr2, @function
171 //---------------------------------------------------------------------------------
175 // This routine is used to get KR3.
181 // Return Value: The value store in KR3.
184 //----------------------------------------------------------------------------------
186 .type AsmReadKr3, @function
194 //---------------------------------------------------------------------------------
198 // This routine is used to Write KR3.
204 // Return Value: The value written to the KR3.
207 //----------------------------------------------------------------------------------
209 .type AsmWriteKr3, @function
219 //---------------------------------------------------------------------------------
223 // This routine is used to get KR4.
229 // Return Value: The value store in KR4.
232 //----------------------------------------------------------------------------------
234 .type AsmReadKr4, @function
242 //---------------------------------------------------------------------------------
246 // This routine is used to Write KR4.
252 // Return Value: The value written to the KR4.
255 //----------------------------------------------------------------------------------
257 .type AsmWriteKr4, @function
267 //---------------------------------------------------------------------------------
271 // This routine is used to get KR5.
277 // Return Value: The value store in KR5.
280 //----------------------------------------------------------------------------------
282 .type AsmReadKr5, @function
290 //---------------------------------------------------------------------------------
294 // This routine is used to Write KR5.
300 // Return Value: The value written to the KR5.
303 //----------------------------------------------------------------------------------
305 .type AsmWriteKr5, @function
315 //---------------------------------------------------------------------------------
319 // This routine is used to get KR6.
325 // Return Value: The value store in KR6.
328 //----------------------------------------------------------------------------------
330 .type AsmReadKr6, @function
338 //---------------------------------------------------------------------------------
342 // This routine is used to write KR6.
348 // Return Value: The value written to the KR6.
351 //----------------------------------------------------------------------------------
353 .type AsmWriteKr6, @function
363 //---------------------------------------------------------------------------------
367 // This routine is used to get KR7.
373 // Return Value: The value store in KR7.
376 //----------------------------------------------------------------------------------
378 .type AsmReadKr7, @function
386 //---------------------------------------------------------------------------------
390 // This routine is used to write KR7.
396 // Return Value: The value written to the KR7.
399 //----------------------------------------------------------------------------------
401 .type AsmWriteKr7, @function