aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJie Zhang <jie.zhang@analog.com>2009-09-02 08:57:38 +0000
committerJie Zhang <jie.zhang@analog.com>2009-09-02 08:57:38 +0000
commit958cff2f9b7d0caaf1d02325c3464546dd2b4c11 (patch)
treeceef8df996004d27074d01aa4daca0a97586eb25
parent05d510a95080f13c5a4f5ee3e3ef4a1390b68c0c (diff)
downloadgdb-958cff2f9b7d0caaf1d02325c3464546dd2b4c11.zip
gdb-958cff2f9b7d0caaf1d02325c3464546dd2b4c11.tar.gz
gdb-958cff2f9b7d0caaf1d02325c3464546dd2b4c11.tar.bz2
* 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.
-rw-r--r--gas/ChangeLog8
-rw-r--r--gas/config/bfin-defs.h2
-rw-r--r--gas/config/bfin-parse.y8
3 files changed, 13 insertions, 5 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index dd22576..51384a9 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,13 @@
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>
* config/gas/bfin-parse.y (asm_1): Clean up and unify error handling
for load and store insns.
diff --git a/gas/config/bfin-defs.h b/gas/config/bfin-defs.h
index cc6569d..8923b73 100644
--- a/gas/config/bfin-defs.h
+++ b/gas/config/bfin-defs.h
@@ -287,7 +287,7 @@ typedef enum
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;
diff --git a/gas/config/bfin-parse.y b/gas/config/bfin-parse.y
index 4a2fa6a..72db6d9 100644
--- a/gas/config/bfin-parse.y
+++ b/gas/config/bfin-parse.y
@@ -4376,11 +4376,11 @@ mkexpr (int x, SYMBOL_T s)
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)
{