instruct.h 878 B

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