xref: /DragonStub/lib/ia64/palproc.h (revision f412fd2a1a248b546b7085648dece8d908077fab)
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
52