summaryrefslogtreecommitdiff
path: root/gnu-efi-3.0/lib/ia64/palproc.h
blob: 240946d63a135286d8d4bc97f3ef1220abef8b7e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// 
// 
//       Copyright (c) 1996-99 Intel Corp.            
// 
// 
//Module Name:
// 
//   palproc.h
// 
//Abstract:
// 
//   This module contains generic macros for an IA64 assembly writer.
// 
// 
//Revision History
// 
 
#ifndef _PALPROC_H
#define _PALPROC_H

#define PROCEDURE_ENTRY(name)   .##text;            \
                .##type name, @function;    \
                .##global name;           \
                .##proc name;           \
name:

#define PROCEDURE_EXIT(name)    .##endp name

// Note: use of NESTED_SETUP requires number of locals (l) >= 3

#define NESTED_SETUP(i,l,o,r) \
         alloc loc1=ar##.##pfs,i,l,o,r ;\
         mov loc0=b0

#define NESTED_RETURN \
         mov b0=loc0 ;\
         mov ar##.##pfs=loc1 ;;\
         br##.##ret##.##dpnt  b0;;


// defines needed in palproc.s

#define PAL_MC_CLEAR_LOG                                0x0015
#define PAL_MC_DRAIN                                    0x0016
#define PAL_MC_EXPECTED                                 0x0017
#define PAL_MC_DYNAMIC_STATE                            0x0018
#define PAL_MC_ERROR_INFO                               0x0019
#define PAL_MC_RESUME                                   0x001a
#define PAL_MC_REGISTER_MEM                             0x001b

#endif  // _PALPROC_H