Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.1 KiB

  1. //
  2. // No Check-in Source Code.
  3. //
  4. // Do not make this code available to non-Microsoft personnel
  5. // without Intel's express permission
  6. //
  7. /**
  8. *** Copyright (C) 1996-99 Intel Corporation. All rights reserved.
  9. ***
  10. *** The information and source code contained herein is the exclusive
  11. *** property of Intel Corporation and may not be disclosed, examined
  12. *** or reproduced in whole or in part without explicit written authorization
  13. *** from the company.
  14. **/
  15. /*++
  16. Copyright (c) 1995 Intel Corporation
  17. Module Name:
  18. ia64inst.h
  19. Abstract:
  20. IA64 instruction and floating constant definitions.
  21. Author:
  22. hc
  23. Revision History:
  24. --*/
  25. #ifndef _IA64INST_
  26. #define _IA64INST_
  27. #if _MSC_VER > 1000
  28. #pragma once
  29. #endif
  30. //
  31. // IA64 INSTRUCTION FORMAT STRUCTURES
  32. //
  33. typedef union _IA64_INSTRUCTION {
  34. ULONG Long[4];
  35. UCHAR Byte[16];
  36. } IA64_INSTRUCTION, *PIA64_INSTRUCTION;
  37. #define BUNDLE_SIZE sizeof(IA64_INSTRUCTION)
  38. //
  39. // Define certain specific instructions
  40. //
  41. #define SYSTEM_CALL_INSTR 0x01100000000L // break <number>
  42. #define FAST_SYSCALL_INSTR 0x01180000000L // break <number>
  43. #define RETURN_INSTR 0x00000A00000L // rfi
  44. #define BREAK_INSTR 0x00000000000L // break <number>
  45. #define NO_OP_INSTR 0x00000100000L // ori r.0, r.0, 0
  46. #define INVALID_INSTR 0x00000000000L // all 0's => invalid
  47. #define BR_RET_INSTR 0x00001040100L // br.ret
  48. #define BR_RET_MASK 0x1e1f80001c0L // br.ret mask
  49. #define INST_TEMPL_MASK (0x0000000001fL) // bit(4:0)
  50. #define INST_SLOT0_MASK (0x1ffffffffffL << 5) // bit(5:45)
  51. #define INST_SLOT1_MASK (0x1ffffffffffL << 14) // bit(46:86)
  52. #define INST_SLOT2_MASK (0x1ffffffffffL << 23) // bit(87:127)
  53. #define ISR_EI 41 // copy from kxia64.h
  54. #define PSR_RI 41 // copy from kxia64.h
  55. #define PSR_DD 39 // copy from kxia64.h
  56. #define PSR_DB 24 // copy from kxia64.h
  57. #define ISR_EI_MASK ((ULONGLONG)0x3 << ISR_EI) // ISR.ei (42:41)
  58. #define IPSR_RI_MASK ((ULONGLONG)0x3 << PSR_RI) // PSR.ri (42:41)
  59. #endif // _IA64INST_