ip_spec.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /*
  2. * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  3. * See the copyright notice in the ACK home directory, in the file "Copyright".
  4. */
  5. /* Contents of flags used when describing interpreter opcodes */
  6. #define RCS_IP "$Id$"
  7. #define OPTYPE 07 /* type field in flag */
  8. #define OPMINI 0 /* m MINI */
  9. #define OPSHORT 1 /* s SHORT */
  10. #define OPNO 2 /* - No operand */
  11. #define OP8 3 /* 1 1-byte signed operand */
  12. #define OP16 4 /* 2 2-byte signed operand */
  13. #define OP32 5 /* 4 4-byte signed operand */
  14. #define OP64 6 /* 8 8-byte signed operand */
  15. #define OP16U 7 /* u 2-byte unsigned operand */
  16. #define OPESC 010 /* e escaped opcode */
  17. #define OPWORD 020 /* w operand is word multiple */
  18. #define OPNZ 040 /* o operand starts at 1 ( or wordsize if w-flag) */
  19. #define OPRANGE 0300 /* Range of operands: Positive, negative, both */
  20. #define OP_BOTH 0000 /* the default */
  21. #define OP_POS 0100 /* p Positive (>=0) operands only */
  22. #define OP_NEG 0200 /* n Negative (<0) operands only */
  23. struct opform {
  24. char i_opcode ; /* the opcode number */
  25. char i_flag ; /* the flag byte */
  26. char i_low ; /* the interpreter first opcode */
  27. char i_num ; /* the number of shorts/minis (optional) */
  28. };
  29. /* Escape indicators */
  30. #define ESC 254 /* To escape group */
  31. #define ESC_L 255 /* To 32 and 64 bit operands */