PR gas/3797
authorNick Clifton <nickc@redhat.com>
Wed, 28 Feb 2007 18:38:51 +0000 (18:38 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 28 Feb 2007 18:38:51 +0000 (18:38 +0000)
* config/tc-d10v.c (do_assemble): Do not generate error messages, just return -1 whenever a problem is encoun$
 (md_assemble): If do_assemble returns -1 generate a non-fatal error message and return.
* gas/lns/lns.exp: Do not run the lns-common test for the d10v port.
* gas/d10v/address-002.l: Update expected assembler output.
* gas/d10v/address-003.l, gas/d10v/address-004.l,
  gas/d10v/address-005.l, gas/d10v/address-006.l,
  gas/d10v/address-007.l, gas/d10v/address-008.l,
  gas/d10v/address-009.l, gas/d10v/address-010.l,
  gas/d10v/address-011.l, gas/d10v/address-012.l,
  gas/d10v/address-013.l, gas/d10v/address-014.l,
  gas/d10v/address-015.l, gas/d10v/address-016.l,
  gas/d10v/address-017.l, gas/d10v/address-018.l,
  gas/d10v/address-019.l, gas/d10v/address-020.l,
  gas/d10v/address-021.l, gas/d10v/address-022.l,
  gas/d10v/address-023.l, gas/d10v/address-024.l,
  gas/d10v/address-025.l, gas/d10v/address-026.l,
  gas/d10v/address-027.l, gas/d10v/address-030.l,
  gas/d10v/address-031.l, gas/d10v/address-032.l,
  gas/d10v/address-033.l, gas/d10v/address-034.l,
  gas/d10v/address-035.l, gas/d10v/address-036.l,
  gas/d10v/address-037.l, gas/d10v/address-038.l,
  gas/d10v/address-039.l, gas/d10v/address-040.l,
  gas/d10v/address-041.l: Likewise.

42 files changed:
gas/ChangeLog
gas/config/tc-d10v.c
gas/testsuite/ChangeLog
gas/testsuite/gas/d10v/address-002.l
gas/testsuite/gas/d10v/address-003.l
gas/testsuite/gas/d10v/address-004.l
gas/testsuite/gas/d10v/address-005.l
gas/testsuite/gas/d10v/address-006.l
gas/testsuite/gas/d10v/address-007.l
gas/testsuite/gas/d10v/address-008.l
gas/testsuite/gas/d10v/address-009.l
gas/testsuite/gas/d10v/address-010.l
gas/testsuite/gas/d10v/address-011.l
gas/testsuite/gas/d10v/address-012.l
gas/testsuite/gas/d10v/address-013.l
gas/testsuite/gas/d10v/address-014.l
gas/testsuite/gas/d10v/address-015.l
gas/testsuite/gas/d10v/address-016.l
gas/testsuite/gas/d10v/address-017.l
gas/testsuite/gas/d10v/address-018.l
gas/testsuite/gas/d10v/address-019.l
gas/testsuite/gas/d10v/address-020.l
gas/testsuite/gas/d10v/address-021.l
gas/testsuite/gas/d10v/address-022.l
gas/testsuite/gas/d10v/address-023.l
gas/testsuite/gas/d10v/address-024.l
gas/testsuite/gas/d10v/address-025.l
gas/testsuite/gas/d10v/address-026.l
gas/testsuite/gas/d10v/address-027.l
gas/testsuite/gas/d10v/address-030.l
gas/testsuite/gas/d10v/address-031.l
gas/testsuite/gas/d10v/address-032.l
gas/testsuite/gas/d10v/address-033.l
gas/testsuite/gas/d10v/address-034.l
gas/testsuite/gas/d10v/address-035.l
gas/testsuite/gas/d10v/address-036.l
gas/testsuite/gas/d10v/address-037.l
gas/testsuite/gas/d10v/address-038.l
gas/testsuite/gas/d10v/address-039.l
gas/testsuite/gas/d10v/address-040.l
gas/testsuite/gas/d10v/address-041.l
gas/testsuite/gas/lns/lns.exp

index da2051c..d715107 100644 (file)
@@ -4,6 +4,12 @@
 
 2007-02-28  Nick Clifton  <nickc@redhat.com>
 
+       PR gas/3797
+       * config/tc-d10v.c (do_assemble): Do not generate error messages,
+       just return -1 whenever a problem is encountered.
+       (md_assemble): If do_assemble returns -1 generate a non-fatal
+       error message and return.
+
        PR gas/2623
        * config/tc-msp430.c (line_separator_char): Change to '{'.
 
index c12eb64..245162a 100644 (file)
@@ -1,5 +1,5 @@
 /* tc-d10v.c -- Assembler code for the Mitsubishi D10V
-   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006
+   Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007
    Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
@@ -1440,7 +1440,6 @@ do_assemble (char *str, struct d10v_opcode **opcode)
   char name[20];
   int nlen = 0;
   expressionS myops[6];
-  unsigned long insn;
 
   /* Drop leading whitespace.  */
   while (*str == ' ')
@@ -1462,7 +1461,7 @@ do_assemble (char *str, struct d10v_opcode **opcode)
   /* Find the first opcode with the proper name.  */
   *opcode = (struct d10v_opcode *) hash_find (d10v_hash, name);
   if (*opcode == NULL)
-    as_fatal (_("unknown opcode: %s"), name);
+    return -1;
 
   save = input_line_pointer;
   input_line_pointer = (char *) op_end;
@@ -1471,8 +1470,7 @@ do_assemble (char *str, struct d10v_opcode **opcode)
     return -1;
   input_line_pointer = save;
 
-  insn = build_insn ((*opcode), myops, 0);
-  return insn;
+  return build_insn ((*opcode), myops, 0);
 }
 
 /* If while processing a fixup, a reloc really needs to be created.
@@ -1778,7 +1776,7 @@ md_assemble (char *str)
          prev_seg = now_seg;
          prev_subseg = now_subseg;
          if (prev_insn == (unsigned long) -1)
-           as_fatal (_("can't find opcode "));
+           as_fatal (_("can't find previous opcode "));
          fixups = fixups->next;
          str = str2 + 2;
        }
@@ -1788,11 +1786,10 @@ md_assemble (char *str)
   if (insn == (unsigned long) -1)
     {
       if (extype != PACK_UNSPEC)
-       {
-         etype = extype;
-         return;
-       }
-      as_fatal (_("can't find opcode "));
+       etype = extype;
+      else
+       as_bad (_("could not assemble: %s"), str);
+      return;
     }
 
   if (etype != PACK_UNSPEC)
index 2702533..8cd6a60 100644 (file)
@@ -1,5 +1,32 @@
 2007-02-28  Nick Clifton  <nickc@redhat.com>
 
+       PR gas/3797
+       * gas/lns/lns.exp: Do not run the lns-common test for the d10v
+       port.
+       * gas/d10v/address-002.l: Update expected assembler output.
+       * gas/d10v/address-003.l, gas/d10v/address-004.l,
+       gas/d10v/address-005.l, gas/d10v/address-006.l,
+       gas/d10v/address-007.l, gas/d10v/address-008.l,
+       gas/d10v/address-009.l, gas/d10v/address-010.l,
+       gas/d10v/address-011.l, gas/d10v/address-012.l,
+       gas/d10v/address-013.l, gas/d10v/address-014.l,
+       gas/d10v/address-015.l, gas/d10v/address-016.l,
+       gas/d10v/address-017.l, gas/d10v/address-018.l,
+       gas/d10v/address-019.l, gas/d10v/address-020.l,
+       gas/d10v/address-021.l, gas/d10v/address-022.l,
+       gas/d10v/address-023.l, gas/d10v/address-024.l,
+       gas/d10v/address-025.l, gas/d10v/address-026.l,
+       gas/d10v/address-027.l, gas/d10v/address-030.l,
+       gas/d10v/address-031.l, gas/d10v/address-032.l,
+       gas/d10v/address-033.l, gas/d10v/address-034.l,
+       gas/d10v/address-035.l, gas/d10v/address-036.l,
+       gas/d10v/address-037.l, gas/d10v/address-038.l,
+       gas/d10v/address-039.l, gas/d10v/address-040.l, 
+       gas/d10v/address-041.l: Likewise.
+
+2007-02-28  Nick Clifton  <nickc@redhat.com>
+
+       PR gas/3975
        * gas/arm/mapshort.d: Split into two new files...
        * gas/arm/mapshort-eabi.d: The one and...
        * gas/arm/mapshort-elf.d: This one.
index 2f8c4f5..1ad93db 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldb r0
index 2f8c4f5..36068de 100644 (file)
@@ -1,3 +1,4 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldub r0
+
index 2f8c4f5..a411621 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: stb r0
index 2f8c4f5..1ad93db 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldb r0
index 2f8c4f5..72cff1d 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldub r0
index 2f8c4f5..a411621 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: stb r0
index 2f8c4f5..1ad93db 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldb r0
index 2f8c4f5..72cff1d 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldub r0
index 2f8c4f5..2847fa9 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ld r0
index 2f8c4f5..688385e 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ld2w r0
index 2f8c4f5..a411621 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: stb r0
index 2f8c4f5..edf420d 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: st r0
index 2f8c4f5..49f87bb 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: st2w r0
index 2f8c4f5..1ad93db 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldb r0
index 2f8c4f5..72cff1d 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldub r0
index 2f8c4f5..2847fa9 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ld r0
index 2f8c4f5..688385e 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ld2w r0
index 2f8c4f5..a411621 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: stb r0
index 2f8c4f5..edf420d 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: st r0
index 2f8c4f5..49f87bb 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: st2w r0
index 2f8c4f5..1ad93db 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldb r0
index 2f8c4f5..72cff1d 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldub r0
index 2f8c4f5..a411621 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: stb r0
index 2f8c4f5..1ad93db 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldb r0
index 2f8c4f5..72cff1d 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldub r0
index 2f8c4f5..a411621 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: stb r0
index 2f8c4f5..1ad93db 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldb r0
index 2f8c4f5..72cff1d 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldub r0
index 2f8c4f5..2847fa9 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ld r0
index 2f8c4f5..688385e 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ld2w r0
index 2f8c4f5..a411621 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: stb r0
index 2f8c4f5..edf420d 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: st r0
index 2f8c4f5..49f87bb 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: st2w r0
index 2f8c4f5..1ad93db 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldb r0
index 2f8c4f5..72cff1d 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ldub r0
index 2f8c4f5..2847fa9 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ld r0
index 2f8c4f5..688385e 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: ld2w r0
index 2f8c4f5..a411621 100644 (file)
@@ -1,3 +1,3 @@
 .*: Assembler messages:
 .*:6: Error: bad opcode or operands
-.*:6: Fatal error: can't find opcode 
+.*:6: Error: could not assemble: stb r0
index 7a62c5c..055c140 100644 (file)
@@ -21,16 +21,21 @@ run_list_test "lns-diag-1" ""
 # ??? Won't work on targets that don't have a bare "nop" insn.
 # Perhaps we could arrange for an include file or something that
 # defined a macro...
-if { ![istarget ia64*-*-*]
+# Nor does it work on targets that do not generate line number
+# information (d10v).
+if {
+        ![istarget d10v-*-*]
+     && ![istarget ia64*-*-*]
      && ![istarget i370-*-*]
      && ![istarget i960-*-*]
      && ![istarget mcore-*-*]
      && ![istarget or32-*-*]
-     && ![istarget s390*-*-*] } {
-  # Use alternate file for targets using DW_LNS_fixed_advance_pc opcodes.
-  if { [istarget xtensa-*-*] } {
-    run_dump_test "lns-common-1-alt"
-  } else {
-    run_dump_test "lns-common-1"
-  }
+     && ![istarget s390*-*-*]
+} {
+    # Use alternate file for targets using DW_LNS_fixed_advance_pc opcodes.
+    if { [istarget xtensa-*-*] } {
+      run_dump_test "lns-common-1-alt"
+    } else {
+      run_dump_test "lns-common-1"
+    }
 }