]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/BaseLib/Ipf/CpuFlushTlb.s
Update the copyright notice format
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Library / EdkIIGlueLib / Library / BaseLib / Ipf / CpuFlushTlb.s
CommitLineData
2c7e5c2f
HT
1/// Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>\r
2/// This program and the accompanying materials \r
3eb9473e 3/// are licensed and made available under the terms and conditions of the BSD License \r
4/// which accompanies this distribution. The full text of the license may be found at \r
5/// http://opensource.org/licenses/bsd-license.php \r
6/// \r
7/// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
8/// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
9///\r
10/// Module Name:\r
11///\r
12/// CpuFlushTlb.s\r
13///\r
14/// Abstract:\r
15///\r
16///\r
17\r
18.auto\r
19.text\r
20\r
21.globl PalCallStatic\r
22.type PalCallStatic, @function\r
23\r
24.proc CpuFlushTlb\r
25.type CpuFlushTlb, @function\r
26CpuFlushTlb::\r
27 alloc loc0 = ar.pfs, 0, 3, 5, 0\r
28 mov out0 = 0\r
29 mov out1 = 6\r
30 mov out2 = 0\r
31 mov out3 = 0\r
32 mov loc1 = b0\r
33 mov out4 = 0\r
34 brl.call.sptk b0 = PalCallStatic\r
35 mov loc2 = psr // save PSR\r
36 mov ar.pfs = loc0\r
37 extr.u r14 = r10, 32, 32 // r14 <- count1\r
38 rsm 1 << 14 // Disable interrupts\r
39 extr.u r15 = r11, 32, 32 // r15 <- stride1\r
40 extr.u r10 = r10, 0, 32 // r10 <- count2\r
41 add r10 = -1, r10\r
42 extr.u r11 = r11, 0, 32 // r11 <- stride2\r
43 br.cond.sptk LoopPredicate\r
44LoopOuter:\r
45 mov ar.lc = r10 // LC <- count2\r
46 mov ar.ec = r0 // EC <- 0\r
47Loop:\r
48 ptc.e r9\r
49 add r9 = r11, r9 // r9 += stride2\r
50 br.ctop.sptk Loop\r
51 add r9 = r15, r9 // r9 += stride1\r
52LoopPredicate:\r
53 cmp.ne p6 = r0, r14 // count1 == 0?\r
54 add r14 = -1, r14\r
55(p6) br.cond.sptk LoopOuter\r
56 mov psr.l = loc2\r
57 mov b0 = loc1\r
58 br.ret.sptk.many b0\r
59.endp\r