* config/tc-txvu.c (md_assemble): Handle no separator between
authorDoug Evans <dje@google.com>
Tue, 6 Jan 1998 13:12:16 +0000 (13:12 +0000)
committerDoug Evans <dje@google.com>
Tue, 6 Jan 1998 13:12:16 +0000 (13:12 +0000)
upper and lower insn #ifndef VERTICAL_BAR_SEPARATOR.
(assemble_insn): Likewise.

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

index e76d12aa2c09a3debde457f264ff87c54f5200ea..18a0ab47260b55c6827a83897a75ed9faf6b83f3 100644 (file)
@@ -1,4 +1,10 @@
 start-sanitize-sky
+Tue Jan  6 13:10:20 1998  Doug Evans  <devans@seba.cygnus.com>
+
+       * config/tc-txvu.c (md_assemble): Handle no separator between
+       upper and lower insn #ifndef VERTICAL_BAR_SEPARATOR.
+       (assemble_insn): Likewise.
+
 Mon Jan  5 14:54:09 1998  Doug Evans  <devans@seba.cygnus.com>
 
        * config/tc-txvu.c: #include dis-asm.h, opcode/txvu.h, elf/txvu.h.
index 8d7937b75388c35456f6bf7aa367315522433c4e..183a83313902177b5ee4500b715d6e6027cd2fc8 100644 (file)
@@ -103,12 +103,13 @@ struct txvu_fixup
 
 #define MAX_FIXUPS 5
 
-static void assemble_insn PARAMS ((char *, int));
+static char * assemble_insn PARAMS ((char *, int));
 
 void
 md_assemble (str)
      char *str;
 {
+#ifdef VERTICAL_BAR_SEPARATOR
   char *p = strchr (str, '|');
 
   if (p == NULL)
@@ -121,12 +122,21 @@ md_assemble (str)
   assemble_insn (str, 0);
   *p = '|';
   assemble_insn (p + 1, 1);
+#else
+  str = assemble_insn (str, 0);
+  /* Don't assemble next one if we couldn't assemble the first.  */
+  if (str)
+    assemble_insn (str, 1);
+#endif
 }
 
 /* Assemble one instruction.
-   LOWER_P is non-zero if assembling in the lower insn slot.  */
+   LOWER_P is non-zero if assembling in the lower insn slot.
+   The result is a pointer to beyond the end of the scanned insn.
+   If this is the upper insn, the caller can pass back to result to us
+   parse the lower insn.  */
 
-static void
+static char *
 assemble_insn (str, lower_p)
      char *str;
      int lower_p;
@@ -368,7 +378,11 @@ assemble_insn (str, lower_p)
          while (isspace (*str))
            ++str;
 
-         if (*str != '\0')
+         if (*str != '\0'
+#ifndef VERTICAL_BAR_SEPARATOR
+             && lower_p
+#endif
+             )
            as_bad ("junk at end of line: `%s'", str);
 
          /* Write out the instruction.
@@ -403,13 +417,14 @@ assemble_insn (str, lower_p)
            }
 
          /* All done.  */
-         return;
+         return str;
        }
 
       /* Try the next entry.  */
     }
 
   as_bad ("bad instruction `%s'", start);
+  return 0;
 }
 
 void