* expr.h (struct expressionS): Revert last change; widen X_op.

* config/tc-alpha.c (md_begin): Check the field is wide enough.
This commit is contained in:
Richard Henderson 1999-06-07 10:23:47 +00:00
parent 32a5c94a56
commit bf29b23178
3 changed files with 23 additions and 4 deletions

View File

@ -1,3 +1,8 @@
Mon Jun 7 10:22:16 1999 Richard Henderson <rth@cygnus.com>
* expr.h (struct expressionS): Revert last change; widen X_op.
* config/tc-alpha.c (md_begin): Check the field is wide enough.
Mon Jun 7 11:25:16 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* Makefile.am (TARGET_CPU_CFILES): Add config/tc-fr30.c.

View File

@ -96,8 +96,9 @@ struct alpha_macro
/* Two extra symbols we want to see in our input. This is a blatent
misuse of the expressionS.X_op field. */
#define O_pregister (O_max+1) /* O_register, but in parentheses */
#define O_cpregister (O_pregister+1) /* + a leading comma */
#define O_pregister ((operatorT) (O_max+1)) /* O_register, in parentheses */
#define O_cpregister ((operatorT) (O_pregister+1)) /* + a leading comma */
#define O_alpha_max ((operatorT) (O_cpregister+1))
/* Macros for extracting the type and number of encoded register tokens */
@ -709,6 +710,13 @@ md_begin ()
{
unsigned int i;
/* Verify that X_op field is wide enough. */
{
expressionS e;
e.X_op = O_alpha_max;
assert (e.X_op == O_alpha_max);
}
/* Create the opcode hash table */
alpha_opcode_hash = hash_new ();

View File

@ -116,8 +116,14 @@ typedef struct expressionS
symbolS *X_op_symbol;
/* A number to add. */
offsetT X_add_number;
/* The type of the expression. */
operatorT X_op;
/* 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 : 7;
#else
unsigned X_op : 7;
#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