|
@@ -4,6 +4,9 @@
|
|
|
*/
|
|
|
/* $Id$ */
|
|
|
|
|
|
+#ifndef UTIL_NCGG_EXPR_H
|
|
|
+#define UTIL_NCGG_EXPR_H
|
|
|
+
|
|
|
typedef struct expr {
|
|
|
int ex_typ;
|
|
|
short ex_regset[SZOFSET(MAXREGS)];
|
|
@@ -18,3 +21,26 @@ typedef struct expr {
|
|
|
/* 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 */
|