12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /*
- * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
- * See the copyright notice in the ACK home directory, in the file "Copyright".
- */
- /* $Id$ */
- #ifndef UTIL_NCGG_EXPR_H
- #define UTIL_NCGG_EXPR_H
- typedef struct expr {
- int ex_typ;
- short ex_regset[SZOFSET(MAXREGS)];
- int ex_index;
- } expr_t,*expr_p;
- #define TYPINT 1
- #define TYPBOOL 2
- #define TYPADDR 3
- #define TYPREG 4
- /* When the type is register the regset contains the set of
- possible registers for checking purposes only.
- */
- /* util/ncgg/expr.c */
- int i_expr(expr_t e);
- int b_expr(expr_t e);
- expr_t make_expr(int type, int operator, int op1, int op2);
- expr_t regno_expr(int regno);
- expr_t ident_expr(char *name);
- expr_t subreg_expr(int tokarg, int subreg);
- void subregset(short *sp, int subreg, short *regset);
- int membset(int setno, char *name, short *regset, char *appearance, int restyp, int *typp);
- expr_t memb_expr(int setno, char *name, char *appearance, int tokarg);
- expr_t tokm_expr(int tokarg, char *name);
- expr_t perc_ident_expr(char *name);
- expr_t all_expr(int all_no, int subreg);
- int eq2expr(expr_t e1, expr_t e2);
- int ne2expr(expr_t e1, expr_t e2);
- expr_t sum_expr(expr_t e1, expr_t e2);
- expr_t iextoaddr(expr_t e);
- expr_t regvar_expr(expr_t e, int regtyp);
- void initnodes(void);
- int ex_lookup(int operator, int lnode, int rnode);
- #endif /* UTIL_NCGG_EXPR_H */
|