palproc.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. #ifndef _PALPROC_H
  18. #define _PALPROC_H
  19. #define PROCEDURE_ENTRY(name) .##text; \
  20. .##type name, @function; \
  21. .##global name; \
  22. .##proc name; \
  23. name:
  24. #define PROCEDURE_EXIT(name) .##endp name
  25. // Note: use of NESTED_SETUP requires number of locals (l) >= 3
  26. #define NESTED_SETUP(i,l,o,r) \
  27. alloc loc1=ar##.##pfs,i,l,o,r ;\
  28. mov loc0=b0
  29. #define NESTED_RETURN \
  30. mov b0=loc0 ;\
  31. mov ar##.##pfs=loc1 ;;\
  32. br##.##ret##.##dpnt b0;;
  33. // defines needed in palproc.s
  34. #define PAL_MC_CLEAR_LOG 0x0015
  35. #define PAL_MC_DRAIN 0x0016
  36. #define PAL_MC_EXPECTED 0x0017
  37. #define PAL_MC_DYNAMIC_STATE 0x0018
  38. #define PAL_MC_ERROR_INFO 0x0019
  39. #define PAL_MC_RESUME 0x001a
  40. #define PAL_MC_REGISTER_MEM 0x001b
  41. #endif // _PALPROC_H