]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Library/BaseCacheMaintenanceLib/Ipf/PalCallStatic.s
1. Simplified PalCallStatic.s's by removing unnecessary condition testings.
[mirror_edk2.git] / MdePkg / Library / BaseCacheMaintenanceLib / Ipf / PalCallStatic.s
CommitLineData
e65e8d10 1/// @file\r
2/// Contains an implementation of CallPalProcStatic on Itanium-based\r
3/// architecture.\r
4///\r
5/// Copyright (c) 2006, Intel Corporation\r
6/// All rights reserved. This program and the accompanying materials\r
7/// are licensed and made available under the terms and conditions of the BSD License\r
8/// which accompanies this distribution. The full text of the license may be found at\r
9/// http://opensource.org/licenses/bsd-license.php\r
10///\r
11/// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12/// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13///\r
14/// Module Name: PalCallStatic.s\r
15///\r
16///\r
17\r
18.auto\r
19.text\r
20\r
21.proc PalCallStatic\r
22.type PalCallStatic, @function\r
23.regstk 5, 0, 0, 0\r
24PalCallStatic::\r
a69c49fc 25 cmp.eq p15 = in0, r0\r
e65e8d10 26 mov r31 = in4\r
27 mov r8 = ip\r
a69c49fc 28\r
29(p15) mov in0 = ar.k5\r
30 add r8 = (_PalProcReturn - PalCallStatic), r8\r
e65e8d10 31 mov r30 = in3\r
a69c49fc 32\r
33 mov in4 = psr\r
34 mov in3 = b0\r
e65e8d10 35 mov b7 = in0\r
a69c49fc 36\r
e65e8d10 37 rsm 1 << 14 // Disable interrupts\r
a69c49fc 38 mov r29 = in2\r
e65e8d10 39 mov r28 = in1\r
a69c49fc 40\r
e65e8d10 41 mov b0 = r8\r
a69c49fc 42 br.cond.sptk.many b7\r
43\r
44_PalProcReturn:\r
45 mov psr.l = in4\r
46 mov b0 = in3\r
e65e8d10 47 br.ret.sptk.many b0\r
48.endp PalCallStatic\r