cs_partit.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /* $Id$ */
  2. /*
  3. * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  4. * See the copyright notice in the ACK home directory, in the file "Copyright".
  5. */
  6. /* These routines partition the huge set of EM-instructions in
  7. * "manageable chunks.
  8. */
  9. int instrgroup(line_p lnp);
  10. /* Return the group into which the instruction
  11. * in lnp belongs to.
  12. */
  13. bool stack_group(int instr);
  14. /* Return whether instr is an instruction that
  15. * only changes the state of the stack, i.e.
  16. * is a "true" operator.
  17. */
  18. offset op11size(line_p lnp);
  19. /* Return the size of the operand of the unary
  20. * operator in lnp.
  21. */
  22. offset op12size(line_p lnp);
  23. /* Return the size of the first operand of the
  24. * binary operator in lnp.
  25. */
  26. offset op22size(line_p lnp);
  27. /* Return the size of the second operand of the
  28. * binary operator in lnp.
  29. */
  30. offset op13size(line_p lnp);
  31. /* Return the size of the first operand of the
  32. * ternary operator in lnp.
  33. */
  34. offset op23size(line_p lnp);
  35. /* Return the size of the second operand of the
  36. * ternary operator in lnp.
  37. */
  38. offset op33size(line_p lnp);
  39. /* Return the size of the third operand of the
  40. * ternary operator in lnp.
  41. */
  42. offset avsize(line_p lnp);
  43. /* Return the size of the result of the
  44. * operator in lnp.
  45. */
  46. int regtype(byte instr);
  47. /* Return in what kind of machine-register
  48. * the result of instr should be stored:
  49. * pointer, float, or any.
  50. */