summaryrefslogtreecommitdiffstats
path: root/contrib/binutils/gas/expr.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/binutils/gas/expr.h')
-rw-r--r--contrib/binutils/gas/expr.h35
1 files changed, 24 insertions, 11 deletions
diff --git a/contrib/binutils/gas/expr.h b/contrib/binutils/gas/expr.h
index a963148..0ed6af6 100644
--- a/contrib/binutils/gas/expr.h
+++ b/contrib/binutils/gas/expr.h
@@ -1,5 +1,5 @@
/* expr.h -> header file for expr.c
- Copyright (C) 1987, 92-97, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1987, 92-98, 1999 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
@@ -102,6 +102,11 @@ typedef enum
O_logical_and,
/* (X_add_symbol || X_op_symbol) + X_add_number. */
O_logical_or,
+ /* X_op_symbol [ X_add_symbol ] */
+ O_index,
+ /* machine dependent operators */
+ O_md1, O_md2, O_md3, O_md4, O_md5, O_md6, O_md7, O_md8,
+ O_md9, O_md10, O_md11, O_md12, O_md13, O_md14, O_md15, O_md16,
/* this must be the largest value */
O_max
} operatorT;
@@ -109,25 +114,32 @@ typedef enum
typedef struct expressionS
{
/* The main symbol. */
- struct symbol *X_add_symbol;
+ symbolS *X_add_symbol;
/* The second symbol, if needed. */
- struct symbol *X_op_symbol;
+ symbolS *X_op_symbol;
/* A number to add. */
offsetT X_add_number;
+
/* The type of the expression. We can't assume that an arbitrary
compiler can handle a bitfield of enum type. FIXME: We could
check this using autoconf. */
#ifdef __GNUC__
- operatorT X_op : 5;
+ operatorT X_op : 8;
#else
- unsigned X_op : 5;
+ unsigned char X_op;
#endif
+
/* Non-zero if X_add_number should be regarded as unsigned. This is
only valid for O_constant expressions. It is only used when an
O_constant must be extended into a bignum (i.e., it is not used
when performing arithmetic on these values).
FIXME: This field is not set very reliably. */
unsigned int X_unsigned : 1;
+
+ /* 7 additional bits can be defined if needed. */
+
+ /* Machine dependent field */
+ unsigned short X_md;
} expressionS;
/* "result" should be type (expressionS *). */
@@ -146,15 +158,16 @@ typedef char operator_rankT;
extern char get_symbol_end PARAMS ((void));
extern void expr_begin PARAMS ((void));
+extern void expr_set_precedence PARAMS ((void));
extern segT expr PARAMS ((int rank, expressionS * resultP));
extern unsigned int get_single_number PARAMS ((void));
-extern struct symbol *make_expr_symbol PARAMS ((expressionS * expressionP));
+extern symbolS *make_expr_symbol PARAMS ((expressionS * expressionP));
extern int expr_symbol_where
- PARAMS ((struct symbol *, char **, unsigned int *));
+ PARAMS ((symbolS *, char **, unsigned int *));
-extern struct symbol * expr_build_uconstant PARAMS ((offsetT));
-extern struct symbol * expr_build_unary PARAMS ((operatorT, struct symbol *));
-extern struct symbol * expr_build_binary
- PARAMS ((operatorT, struct symbol *, struct symbol *));
+extern symbolS *expr_build_uconstant PARAMS ((offsetT));
+extern symbolS *expr_build_unary PARAMS ((operatorT, symbolS *));
+extern symbolS *expr_build_binary PARAMS ((operatorT, symbolS *, symbolS *));
+extern symbolS *expr_build_dot PARAMS ((void));
/* end of expr.h */
OpenPOWER on IntegriCloud