aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-mips.c12
2 files changed, 10 insertions, 8 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 9c694b4..aa8f650 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2000-06-27 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/tc-mips.c (mips_ip): handle "(foo-.-4)" type of
+ expressions. Ignore the problem when handling 16 bit immediates,
+ because the assembler will take care of the relocation later.
+
2000-06-27 Nick Clifton <nickc@cygnus.com>
* config/tc-d30v.c (write_2_short): Do not allow opcodes with
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 1b5c9c8..a4d25bc 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -7746,10 +7746,8 @@ mips_ip (str, ip)
if (insn + 1 < &mips_opcodes[NUMOPCODES] &&
!strcmp (insn->name, insn[1].name))
break;
- if (imm_expr.X_op != O_constant
- && imm_expr.X_op != O_big)
- insn_error = _("absolute expression required");
- else
+ if (imm_expr.X_op == O_constant
+ || imm_expr.X_op == O_big)
as_bad (_("16 bit expression not in range 0..65535"));
}
}
@@ -7785,10 +7783,8 @@ mips_ip (str, ip)
{
if (more)
break;
- if (imm_expr.X_op != O_constant
- && imm_expr.X_op != O_big)
- insn_error = _("absolute expression required");
- else
+ if (imm_expr.X_op == O_constant
+ || imm_expr.X_op == O_big)
as_bad (_("16 bit expression not in range -32768..32767"));
}
}