+2009-09-02 Jie Zhang <jie.zhang@analog.com>
+
+ * config/bfin-parse.y (value_match): Use int instead of long.
+
+ From Michael Frysinger <michael.frysinger@analog.com>
+ * config/bfin-defs.h (Expr_Node_Value): Declare the i_value
+ member as long long.
+
2009-09-02 Jie Zhang <jie.zhang@analog.com>
From Bernd Schmidt <bernd.schmidt@analog.com>
typedef union
{
const char *s_value; /* if relocation symbol, the text. */
- int i_value; /* if constant, the value. */
+ long long i_value; /* if constant, the value. */
Expr_Op_Type op_value; /* if operator, the value. */
} Expr_Node_Value;
static int
value_match (Expr_Node *expr, int sz, int sign, int mul, int issigned)
{
- long umax = (1L << sz) - 1;
- long min = -1L << (sz - 1);
- long max = (1L << (sz - 1)) - 1;
+ int umax = (1 << sz) - 1;
+ int min = -1 << (sz - 1);
+ int max = (1 << (sz - 1)) - 1;
- long v = EXPR_VALUE (expr);
+ int v = (EXPR_VALUE (expr)) & 0xffffffff;
if ((v % mul) != 0)
{