instruct.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. /* $Id$ */
  6. #ifndef _COST_
  7. #include "cost.h"
  8. #endif
  9. #define AD_RO 01 /* Read only operand */
  10. #define AD_WO 02 /* Write only operand */
  11. #define AD_RW 03 /* Read-write operand */
  12. #define AD_RWMASK 03 /* Mask to select these possiblities */
  13. #define AD_CC 04 /* Condition codes set to this one */
  14. typedef struct operand {
  15. struct operand *o_next;
  16. short o_setno;
  17. short o_adorn;
  18. } operand;
  19. typedef struct instruction {
  20. char *i_name;
  21. short i_asname;
  22. short i_nops;
  23. operand *i_oplist;
  24. struct varinfo *i_erases;
  25. cost_t i_cost;
  26. } instr_t,*instr_p;
  27. extern instr_t l_instr[];
  28. /*
  29. * The read only information on the operands is not used at the moment.
  30. * Predicted future use:
  31. * When using :ro data it is possible to use a register in its stead
  32. * if it contains the same information and is allowed as an operand
  33. * in this place. Too difficult for now.
  34. */