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