]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/BaseLib/Ipf/PalCallStatic.s
Add in the 1st version of ECP.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Library / EdkIIGlueLib / Library / BaseLib / Ipf / PalCallStatic.s
CommitLineData
3eb9473e 1/// Copyright (c) 2004, Intel Corporation \r
2/// All rights reserved. This program and the accompanying materials \r
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/// PalCallStatic.s\r
13///\r
14/// Abstract:\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
25 cmp.eq p15 = in0, r0\r
26 mov r31 = in4\r
27 mov r8 = ip\r
28\r
29(p15) mov in0 = ar.k5\r
30 add r8 = (_PalProcReturn - PalCallStatic), r8\r
31 mov r30 = in3\r
32\r
33 mov in4 = psr\r
34 mov in3 = b0\r
35 mov b7 = in0\r
36\r
37 rsm 1 << 14 // Disable interrupts\r
38 mov r29 = in2\r
39 mov r28 = in1\r
40\r
41 mov b0 = r8\r
42 br.cond.sptk.many b7\r
43\r
44_PalProcReturn:\r
45 mov psr.l = in4\r
46 mov b0 = in3\r
47 br.ret.sptk.many b0\r
48.endp PalCallStatic\r