summaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2005-04-18 14:16:10 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2005-04-18 14:16:10 +0000
commit9ee2a2d449d0e4f70e9e04039e362f8b9259e1d9 (patch)
treef9e85495c58c76d9e3ff7758766c7ae2212d744d /gas
parente6ca91be4f25f03e5b7c8960c34736a31f77c549 (diff)
downloadbinutils-gdb-9ee2a2d449d0e4f70e9e04039e362f8b9259e1d9.tar.gz
* config/tc-mips.c (normalize_constant_expr): Don't check for
HAVE_32BIT_GPRS. (check_absolute_expr): Only call normalize_constant_expr() if HAVE_32BIT_GPRS. (mips_ip): Likewise. * config/tc-mips.c (check_absolute_expr): Fix formatting.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog10
-rw-r--r--gas/config/tc-mips.c14
2 files changed, 19 insertions, 5 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 7d8eb469a57..062b47f436a 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,13 @@
+2005-04-18 Maciej W. Rozycki <macro@linux-mips.org>
+
+ * config/tc-mips.c (normalize_constant_expr): Don't check for
+ HAVE_32BIT_GPRS.
+ (check_absolute_expr): Only call normalize_constant_expr() if
+ HAVE_32BIT_GPRS.
+ (mips_ip): Likewise.
+
+ * config/tc-mips.c (check_absolute_expr): Fix formatting.
+
2005-04-18 Jan Beulich <jbeulich@novell.com>
* macro.c (free_token): New, freeing all the memory associated with a
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 0e9969038d4..24ba8b14fe9 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -3265,7 +3265,7 @@ mips16_macro_build (expressionS *ep, const char *name, const char *fmt,
static void
normalize_constant_expr (expressionS *ex)
{
- if ((ex->X_op == O_constant && HAVE_32BIT_GPRS)
+ if (ex->X_op == O_constant
&& IS_ZEXT_32BIT_NUM (ex->X_add_number))
ex->X_add_number = (((ex->X_add_number & 0xffffffff) ^ 0x80000000)
- 0x80000000);
@@ -3425,9 +3425,11 @@ check_absolute_expr (struct mips_cl_insn *ip, expressionS *ex)
if (ex->X_op == O_big)
as_bad (_("unsupported large constant"));
else if (ex->X_op != O_constant)
- as_bad (_("Instruction %s requires absolute expression"), ip->insn_mo->name);
+ as_bad (_("Instruction %s requires absolute expression"),
+ ip->insn_mo->name);
- normalize_constant_expr (ex);
+ if (HAVE_32BIT_GPRS)
+ normalize_constant_expr (ex);
}
/* Count the leading zeroes by performing a binary chop. This is a
@@ -8103,7 +8105,8 @@ do_msbd:
if (imm2_expr.X_op != O_big
&& imm2_expr.X_op != O_constant)
insn_error = _("absolute expression required");
- normalize_constant_expr (&imm2_expr);
+ if (HAVE_32BIT_GPRS)
+ normalize_constant_expr (&imm2_expr);
s = expr_end;
continue;
@@ -8571,7 +8574,8 @@ do_msbd:
if (imm_expr.X_op != O_big
&& imm_expr.X_op != O_constant)
insn_error = _("absolute expression required");
- normalize_constant_expr (&imm_expr);
+ if (HAVE_32BIT_GPRS)
+ normalize_constant_expr (&imm_expr);
s = expr_end;
continue;