Imported Upstream version 3.0
[platform/upstream/gnu-efi.git] / lib / ia64 / palproc.h
1 // 
2 // 
3 //       Copyright (c) 1996-99 Intel Corp.            
4 // 
5 // 
6 //Module Name:
7 // 
8 //   palproc.h
9 // 
10 //Abstract:
11 // 
12 //   This module contains generic macros for an IA64 assembly writer.
13 // 
14 // 
15 //Revision History
16 // 
17  
18 #ifndef _PALPROC_H
19 #define _PALPROC_H
20
21 #define PROCEDURE_ENTRY(name)   .##text;            \
22                 .##type name, @function;    \
23                 .##global name;           \
24                 .##proc name;           \
25 name:
26
27 #define PROCEDURE_EXIT(name)    .##endp name
28
29 // Note: use of NESTED_SETUP requires number of locals (l) >= 3
30
31 #define NESTED_SETUP(i,l,o,r) \
32          alloc loc1=ar##.##pfs,i,l,o,r ;\
33          mov loc0=b0
34
35 #define NESTED_RETURN \
36          mov b0=loc0 ;\
37          mov ar##.##pfs=loc1 ;;\
38          br##.##ret##.##dpnt  b0;;
39
40
41 // defines needed in palproc.s
42
43 #define PAL_MC_CLEAR_LOG                                0x0015
44 #define PAL_MC_DRAIN                                    0x0016
45 #define PAL_MC_EXPECTED                                 0x0017
46 #define PAL_MC_DYNAMIC_STATE                            0x0018
47 #define PAL_MC_ERROR_INFO                               0x0019
48 #define PAL_MC_RESUME                                   0x001a
49 #define PAL_MC_REGISTER_MEM                             0x001b
50
51 #endif  // _PALPROC_H