]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
* config/tc-sparc.c (md_assemble): If sparc_ip gives us a
authorDavid S. Miller <davem@redhat.com>
Tue, 19 Apr 2005 19:45:10 +0000 (19:45 +0000)
committerDavid S. Miller <davem@redhat.com>
Tue, 19 Apr 2005 19:45:10 +0000 (19:45 +0000)
NULL insn, exit early.  Remove now spurious NULL checks.
(sparc_ip): Use as_bad for unknown opcode errors, set *pinsn
to NULL and exit.

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

index eb5169716bf80f431ec60de24dc8cc2ecf1e0e29..31ffae6c706412f63bdc34a072d7cf6ae42f6601 100644 (file)
@@ -1,3 +1,10 @@
+2005-04-19  David S. Miller  <davem@davemloft.net>
+
+       * config/tc-sparc.c (md_assemble): If sparc_ip gives us a
+       NULL insn, exit early.  Remove now spurious NULL checks.
+       (sparc_ip): Use as_bad for unknown opcode errors, set *pinsn
+       to NULL and exit.
+
 2005-04-19  Jan Beulich  <jbeulich@novell.com>
 
        * symbols.h (symbol_find_base): Remove prototype.
index fe361a1b1f0ce7812e19383fe162f559a6c9c67d..ea49bbab1d40d6dc1ea6f0daf02acfb20ff9657d 100644 (file)
@@ -1304,11 +1304,12 @@ md_assemble (str)
 
   know (str);
   special_case = sparc_ip (str, &insn);
+  if (insn == NULL)
+    return;
 
   /* We warn about attempts to put a floating point branch in a delay slot,
      unless the delay slot has been annulled.  */
-  if (insn != NULL
-      && last_insn != NULL
+  if (last_insn != NULL
       && (insn->flags & F_FBR) != 0
       && (last_insn->flags & F_DELAYED) != 0
       /* ??? This test isn't completely accurate.  We assume anything with
@@ -1321,7 +1322,6 @@ md_assemble (str)
      point instruction and a floating point branch.  We insert one
      automatically, with a warning.  */
   if (max_architecture < SPARC_OPCODE_ARCH_V9
-      && insn != NULL
       && last_insn != NULL
       && (insn->flags & F_FBR) != 0
       && (last_insn->flags & F_FLOAT) != 0)
@@ -1417,7 +1417,9 @@ sparc_ip (str, pinsn)
       break;
 
     default:
-      as_fatal (_("Unknown opcode: `%s'"), str);
+      as_bad (_("Unknown opcode: `%s'"), str);
+      *pinsn = NULL;
+      return special_case;
     }
   insn = (struct sparc_opcode *) hash_find (op_hash, str);
   *pinsn = insn;