aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-mips.c7
2 files changed, 12 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index c29e5e2..8841d1f 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+Tue Jan 28 15:27:28 1997 Ian Lance Taylor <ian@cygnus.com>
+
+ * config/tc-mips.c (mips16_ip): Handle a missing expression like
+ an explicit 0, so that explicitly extended instructions work
+ correctly.
+
Mon Jan 27 17:41:20 1997 Ian Lance Taylor <ian@cygnus.com>
* ecoff.c (ecoff_build_symbols): Don't generate a local ECOFF
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 961c434..3eadbbe 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -7144,7 +7144,12 @@ mips16_ip (str, ip)
{
/* It looks like the expression was omitted before a
register indirection, which means that the
- expression is implicitly zero. */
+ expression is implicitly zero. We still set up
+ imm_expr, so that we handle explicit extensions
+ correctly. */
+ imm_expr.X_op = O_constant;
+ imm_expr.X_add_number = 0;
+ imm_reloc = (int) BFD_RELOC_UNUSED + c;
continue;
}