]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Library/BaseLib/Ipf/AccessKr.s
Update copyright for files modified in this year
[mirror_edk2.git] / MdePkg / Library / BaseLib / Ipf / AccessKr.s
CommitLineData
f1baef62 1/// @file\r
2/// IPF specific AsmReadKrX() and AsmWriteKrX functions, 'X' is from '0' to '7'\r
3///\r
373ade0e 4/// Copyright (c) 2006 - 2008, Intel Corporation\r
f1baef62 5/// All rights reserved. This program and the accompanying materials\r
6/// are licensed and made available under the terms and conditions of the BSD License\r
7/// which accompanies this distribution. The full text of the license may be found at\r
8/// http://opensource.org/licenses/bsd-license.php\r
9///\r
10/// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11/// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12///\r
13/// Module Name: AccessKr.s\r
14///\r
15///\r
16\r
17//---------------------------------------------------------------------------------\r
18//++\r
19// AsmReadKr0\r
20//\r
21// This routine is used to get KR0.\r
22//\r
23// Arguments :\r
24//\r
25// On Entry : None.\r
26//\r
27// Return Value: The value store in KR0.\r
28//\r
29//--\r
30//----------------------------------------------------------------------------------\r
31.text\r
32.type AsmReadKr0, @function\r
33.proc AsmReadKr0\r
34\r
35AsmReadKr0::\r
36 mov r8 = ar.k0;;\r
37 br.ret.dpnt b0;;\r
38.endp AsmReadKr0\r
39\r
40//---------------------------------------------------------------------------------\r
41//++\r
42// AsmWriteKr0\r
43//\r
44// This routine is used to Write KR0.\r
45//\r
46// Arguments :\r
47//\r
48// On Entry : None.\r
49//\r
50// Return Value: The value written to the KR0.\r
51//\r
52//--\r
53//----------------------------------------------------------------------------------\r
54\r
55.text\r
56.type AsmWriteKr0, @function\r
57.proc AsmWriteKr0\r
aa7ab988 58.regstk 1, 3, 0, 0\r
f1baef62 59\r
60AsmWriteKr0::\r
aa7ab988 61 alloc loc1=ar.pfs,1,4,0,0 ;;\r
e82e1acc 62 mov loc2 = psr;;\r
63 rsm 0x6000;; // Masking interrupts\r
f1baef62 64 mov ar.k0 = in0\r
e82e1acc 65 srlz.i;;\r
66 mov psr.l = loc2;;\r
67 srlz.i;;\r
68 srlz.d;;\r
f1baef62 69 mov r8 = in0;;\r
aa7ab988 70 mov ar.pfs=loc1 ;;\r
f1baef62 71 br.ret.dpnt b0;;\r
72.endp AsmWriteKr0\r
73\r
74\r
75//---------------------------------------------------------------------------------\r
76//++\r
77// AsmReadKr1\r
78//\r
79// This routine is used to get KR1.\r
80//\r
81// Arguments :\r
82//\r
83// On Entry : None.\r
84//\r
85// Return Value: The value store in KR1.\r
86//\r
87//--\r
88//----------------------------------------------------------------------------------\r
89.text\r
90.type AsmReadKr1, @function\r
91.proc AsmReadKr1\r
92\r
93AsmReadKr1::\r
94 mov r8 = ar.k1;;\r
95 br.ret.dpnt b0;;\r
96.endp AsmReadKr1\r
97\r
98//---------------------------------------------------------------------------------\r
99//++\r
100// AsmWriteKr1\r
101//\r
102// This routine is used to Write KR1.\r
103//\r
104// Arguments :\r
105//\r
106// On Entry : None.\r
107//\r
108// Return Value: The value written to the KR1.\r
109//\r
110//--\r
111//----------------------------------------------------------------------------------\r
112.text\r
113.type AsmWriteKr1, @function\r
114.proc AsmWriteKr1\r
115\r
116AsmWriteKr1::\r
117 mov ar.k1 = in0\r
118 mov r8 = in0;;\r
119 br.ret.dpnt b0;;\r
120.endp AsmWriteKr1\r
121\r
122\r
123//---------------------------------------------------------------------------------\r
124//++\r
125// AsmReadKr2\r
126//\r
127// This routine is used to get KR2.\r
128//\r
129// Arguments :\r
130//\r
131// On Entry : None.\r
132//\r
133// Return Value: The value store in KR2.\r
134//\r
135//--\r
136//----------------------------------------------------------------------------------\r
137.text\r
138.type AsmReadKr2, @function\r
139.proc AsmReadKr2\r
140\r
141AsmReadKr2::\r
142 mov r8 = ar.k2;;\r
143 br.ret.dpnt b0;;\r
144.endp AsmReadKr2\r
145\r
146//---------------------------------------------------------------------------------\r
147//++\r
148// AsmWriteKr2\r
149//\r
150// This routine is used to Write KR2.\r
151//\r
152// Arguments :\r
153//\r
154// On Entry : None.\r
155//\r
156// Return Value: The value written to the KR2.\r
157//\r
158//--\r
159//----------------------------------------------------------------------------------\r
160.text\r
161.type AsmWriteKr2, @function\r
162.proc AsmWriteKr2\r
163\r
164AsmWriteKr2::\r
165 mov ar.k2 = in0\r
166 mov r8 = in0;;\r
167 br.ret.dpnt b0;;\r
168.endp AsmWriteKr2\r
169\r
170\r
171//---------------------------------------------------------------------------------\r
172//++\r
173// AsmReadKr3\r
174//\r
175// This routine is used to get KR3.\r
176//\r
177// Arguments :\r
178//\r
179// On Entry : None.\r
180//\r
181// Return Value: The value store in KR3.\r
182//\r
183//--\r
184//----------------------------------------------------------------------------------\r
185.text\r
186.type AsmReadKr3, @function\r
187.proc AsmReadKr3\r
188\r
189AsmReadKr3::\r
190 mov r8 = ar.k3;;\r
191 br.ret.dpnt b0;;\r
192.endp AsmReadKr3\r
193\r
194//---------------------------------------------------------------------------------\r
195//++\r
196// AsmWriteKr3\r
197//\r
198// This routine is used to Write KR3.\r
199//\r
200// Arguments :\r
201//\r
202// On Entry : None.\r
203//\r
204// Return Value: The value written to the KR3.\r
205//\r
206//--\r
207//----------------------------------------------------------------------------------\r
208.text\r
209.type AsmWriteKr3, @function\r
210.proc AsmWriteKr3\r
211\r
212AsmWriteKr3::\r
213 mov ar.k3 = in0\r
214 mov r8 = in0;;\r
215 br.ret.dpnt b0;;\r
216.endp AsmWriteKr3\r
217\r
218\r
219//---------------------------------------------------------------------------------\r
220//++\r
221// AsmReadKr4\r
222//\r
223// This routine is used to get KR4.\r
224//\r
225// Arguments :\r
226//\r
227// On Entry : None.\r
228//\r
229// Return Value: The value store in KR4.\r
230//\r
231//--\r
232//----------------------------------------------------------------------------------\r
233.text\r
234.type AsmReadKr4, @function\r
235.proc AsmReadKr4\r
236\r
237AsmReadKr4::\r
238 mov r8 = ar.k4;;\r
239 br.ret.dpnt b0;;\r
240.endp AsmReadKr4\r
241\r
242//---------------------------------------------------------------------------------\r
243//++\r
244// AsmWriteKr4\r
245//\r
246// This routine is used to Write KR4.\r
247//\r
248// Arguments :\r
249//\r
250// On Entry : None.\r
251//\r
252// Return Value: The value written to the KR4.\r
253//\r
254//--\r
255//----------------------------------------------------------------------------------\r
256.text\r
257.type AsmWriteKr4, @function\r
258.proc AsmWriteKr4\r
259\r
260AsmWriteKr4::\r
261 mov ar.k4 = in0\r
262 mov r8 = in0;;\r
263 br.ret.dpnt b0;;\r
264.endp AsmWriteKr4\r
265\r
266\r
267//---------------------------------------------------------------------------------\r
268//++\r
269// AsmReadKr5\r
270//\r
271// This routine is used to get KR5.\r
272//\r
273// Arguments :\r
274//\r
275// On Entry : None.\r
276//\r
277// Return Value: The value store in KR5.\r
278//\r
279//--\r
280//----------------------------------------------------------------------------------\r
281.text\r
282.type AsmReadKr5, @function\r
283.proc AsmReadKr5\r
284\r
285AsmReadKr5::\r
286 mov r8 = ar.k5;;\r
287 br.ret.dpnt b0;;\r
288.endp AsmReadKr5\r
289\r
290//---------------------------------------------------------------------------------\r
291//++\r
292// AsmWriteKr5\r
293//\r
294// This routine is used to Write KR5.\r
295//\r
296// Arguments :\r
297//\r
298// On Entry : None.\r
299//\r
300// Return Value: The value written to the KR5.\r
301//\r
302//--\r
303//----------------------------------------------------------------------------------\r
304.text\r
305.type AsmWriteKr5, @function\r
306.proc AsmWriteKr5\r
307\r
308AsmWriteKr5::\r
309 mov ar.k5 = in0\r
310 mov r8 = in0;;\r
311 br.ret.dpnt b0;;\r
312.endp AsmWriteKr5\r
313\r
314\r
315//---------------------------------------------------------------------------------\r
316//++\r
317// AsmReadKr6\r
318//\r
319// This routine is used to get KR6.\r
320//\r
321// Arguments :\r
322//\r
323// On Entry : None.\r
324//\r
325// Return Value: The value store in KR6.\r
326//\r
327//--\r
328//----------------------------------------------------------------------------------\r
329.text\r
330.type AsmReadKr6, @function\r
331.proc AsmReadKr6\r
332\r
333AsmReadKr6::\r
334 mov r8 = ar.k6;;\r
335 br.ret.dpnt b0;;\r
336.endp AsmReadKr6\r
337\r
338//---------------------------------------------------------------------------------\r
339//++\r
340// AsmWriteKr6\r
341//\r
342// This routine is used to write KR6.\r
343//\r
344// Arguments :\r
345//\r
346// On Entry : None.\r
347//\r
348// Return Value: The value written to the KR6.\r
349//\r
350//--\r
351//----------------------------------------------------------------------------------\r
352.text\r
353.type AsmWriteKr6, @function\r
354.proc AsmWriteKr6\r
355\r
356AsmWriteKr6::\r
357 mov ar.k6 = in0\r
358 mov r8 = in0;;\r
359 br.ret.dpnt b0;;\r
360.endp AsmWriteKr6\r
361\r
362\r
363//---------------------------------------------------------------------------------\r
364//++\r
365// AsmReadKr7\r
366//\r
367// This routine is used to get KR7.\r
368//\r
369// Arguments :\r
370//\r
371// On Entry : None.\r
372//\r
373// Return Value: The value store in KR7.\r
374//\r
375//--\r
376//----------------------------------------------------------------------------------\r
377.text\r
378.type AsmReadKr7, @function\r
379.proc AsmReadKr7\r
380\r
381AsmReadKr7::\r
382 mov r8 = ar.k7;;\r
383 br.ret.dpnt b0;;\r
384.endp AsmReadKr7\r
385\r
386//---------------------------------------------------------------------------------\r
387//++\r
388// AsmWriteKr7\r
389//\r
390// This routine is used to write KR7.\r
391//\r
392// Arguments :\r
393//\r
394// On Entry : None.\r
395//\r
396// Return Value: The value written to the KR7.\r
397//\r
398//--\r
399//----------------------------------------------------------------------------------\r
400.text\r
401.type AsmWriteKr7, @function\r
402.proc AsmWriteKr7\r
403\r
404AsmWriteKr7::\r
405 mov ar.k7 = in0\r
406 mov r8 = in0;;\r
407 br.ret.dpnt b0;;\r
408.endp AsmWriteKr7\r