palproc.h revision 76d05dc695b06c4e987bb8078f78032441e1430c
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;           \
25name:
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