* config/tc-mips.c (mips_ip): Don't warn on 'i' or 'j' mismatch if
authorIan Lance Taylor <ian@airs.com>
Mon, 12 Jul 1993 14:24:20 +0000 (14:24 +0000)
committerIan Lance Taylor <ian@airs.com>
Mon, 12 Jul 1993 14:24:20 +0000 (14:24 +0000)
there is another alternative for the instruction.

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

index 771d021603b8037edb332e335b814e58b41d5c2a..679062f4f94719df4ad75f138d2d06291a19ac71 100644 (file)
@@ -1,3 +1,8 @@
+Mon Jul 12 07:22:28 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+       * config/tc-mips.c (mips_ip): Don't warn on 'i' or 'j' mismatch if
+       there is another alternative for the instruction.
+
 Fri Jul  9 17:31:34 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)
 
        * doc/as.texinfo: updates for H8/300H
index 709b5d5e1e13ad0bc118e59f4b9d1149ed79a05b..18c1bcfd1abcb6160435b1b89b52edec8436aac9 100644 (file)
@@ -2244,13 +2244,23 @@ mips_ip (str, ip)
              if (*args == 'i')
                {
                  if ((unsigned long) imm_expr.X_add_number > 65535)
-                   as_bad ("16 bit expression not in range 0..65535");
+                   {
+                     if (insn + 1 < &mips_opcodes[NUMOPCODES] &&
+                         !strcmp (insn->name, insn[1].name))
+                       break;
+                     as_bad ("16 bit expression not in range 0..65535");
+                   }
                }
              else
                {
                  if (imm_expr.X_add_number < -32768 ||
                      imm_expr.X_add_number > 32767)
-                   as_bad ("16 bit expression not in range -32768..32767");
+                   {
+                     if (insn + 1 < &mips_opcodes[NUMOPCODES] &&
+                         !strcmp (insn->name, insn[1].name))
+                       break;
+                     as_bad ("16 bit expression not in range -32768..32767");
+                   }
                }
              s = expr_end;
              continue;