Home | History | Annotate | Download | only in ia64
      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