* config/tc-mips.c (mips16_ip): Handle a missing expression like
authorIan Lance Taylor <ian@airs.com>
Tue, 28 Jan 1997 20:28:18 +0000 (20:28 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 28 Jan 1997 20:28:18 +0000 (20:28 +0000)
an explicit 0, so that explicitly extended instructions work
correctly.

gas/ChangeLog
gas/config/tc-mips.c

index c29e5e28b8e8409c018f2c6f62ef6a012d215a95..8841d1faa8db1849852b652cf6d8abc43a112c7c 100644 (file)
@@ -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
index 961c4349f56da0f16c2f2269860f36ddfae29a77..3eadbbe561a97d8a2b0eef0a8516a86b4f36b27e 100644 (file)
@@ -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;
                }