From 9ee2a2d449d0e4f70e9e04039e362f8b9259e1d9 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Mon, 18 Apr 2005 14:16:10 +0000 Subject: * 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. --- gas/config/tc-mips.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'gas/config') diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 0e99690..24ba8b1 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; -- cgit v1.1