1994-06-24 11:31:16 +00:00
|
|
|
/* $Id$ */
|
1987-03-09 19:15:41 +00:00
|
|
|
/*
|
|
|
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
|
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
|
|
*/
|
1984-11-26 13:58:05 +00:00
|
|
|
/* These routines partition the huge set of EM-instructions in
|
|
|
|
* "manageable chunks.
|
|
|
|
*/
|
|
|
|
|
2018-02-05 21:09:30 +00:00
|
|
|
extern int instrgroup(line_p lnp);
|
|
|
|
/*
|
1984-11-26 13:58:05 +00:00
|
|
|
* Return the group into which the instruction
|
|
|
|
* in lnp belongs to.
|
|
|
|
*/
|
|
|
|
|
2018-02-05 21:09:30 +00:00
|
|
|
extern bool stack_group(int instr);
|
|
|
|
/*
|
1984-11-26 13:58:05 +00:00
|
|
|
* Return whether instr is an instruction that
|
|
|
|
* only changes the state of the stack, i.e.
|
|
|
|
* is a "true" operator.
|
|
|
|
*/
|
|
|
|
|
2018-02-05 21:09:30 +00:00
|
|
|
extern offset op11size(line_p lnp);
|
|
|
|
/*
|
1984-11-26 13:58:05 +00:00
|
|
|
* Return the size of the operand of the unary
|
|
|
|
* operator in lnp.
|
|
|
|
*/
|
|
|
|
|
2018-02-05 21:09:30 +00:00
|
|
|
extern offset op12size(line_p lnp);
|
|
|
|
/*
|
1984-11-26 13:58:05 +00:00
|
|
|
* Return the size of the first operand of the
|
|
|
|
* binary operator in lnp.
|
|
|
|
*/
|
|
|
|
|
2018-02-05 21:09:30 +00:00
|
|
|
extern offset op22size(line_p lnp);
|
|
|
|
/*
|
1984-11-26 13:58:05 +00:00
|
|
|
* Return the size of the second operand of the
|
|
|
|
* binary operator in lnp.
|
|
|
|
*/
|
|
|
|
|
2018-02-05 21:09:30 +00:00
|
|
|
extern offset op13size(line_p lnp);
|
|
|
|
/*
|
1984-11-26 13:58:05 +00:00
|
|
|
* Return the size of the first operand of the
|
|
|
|
* ternary operator in lnp.
|
|
|
|
*/
|
|
|
|
|
2018-02-05 21:09:30 +00:00
|
|
|
extern offset op23size(line_p lnp);
|
|
|
|
/*
|
1984-11-26 13:58:05 +00:00
|
|
|
* Return the size of the second operand of the
|
|
|
|
* ternary operator in lnp.
|
|
|
|
*/
|
|
|
|
|
2018-02-05 21:09:30 +00:00
|
|
|
extern offset op33size(line_p lnp);
|
|
|
|
/*
|
1984-11-26 13:58:05 +00:00
|
|
|
* Return the size of the third operand of the
|
|
|
|
* ternary operator in lnp.
|
|
|
|
*/
|
|
|
|
|
2018-02-05 21:09:30 +00:00
|
|
|
extern offset avsize(line_p lnp);
|
|
|
|
/*
|
1984-11-26 13:58:05 +00:00
|
|
|
* Return the size of the result of the
|
|
|
|
* operator in lnp.
|
|
|
|
*/
|
|
|
|
|
2018-02-05 21:09:30 +00:00
|
|
|
extern int regtype(byte instr);
|
|
|
|
/*
|
1984-11-26 13:58:05 +00:00
|
|
|
* Return in what kind of machine-register
|
|
|
|
* the result of instr should be stored:
|
|
|
|
* pointer, float, or any.
|
|
|
|
*/
|