aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-txvu.c
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>1998-01-06 13:12:16 +0000
committerDoug Evans <dje@google.com>1998-01-06 13:12:16 +0000
commit61e09fac5755a6c8eea0a826665ef4b4ffab5d1b (patch)
tree98be916af8d384e4fb60b609f96efb8956eec0ec /gas/config/tc-txvu.c
parent42639e838c251504d55d9c69c933eda23c815959 (diff)
downloadgdb-61e09fac5755a6c8eea0a826665ef4b4ffab5d1b.zip
gdb-61e09fac5755a6c8eea0a826665ef4b4ffab5d1b.tar.gz
gdb-61e09fac5755a6c8eea0a826665ef4b4ffab5d1b.tar.bz2
* config/tc-txvu.c (md_assemble): Handle no separator between
upper and lower insn #ifndef VERTICAL_BAR_SEPARATOR. (assemble_insn): Likewise.
Diffstat (limited to 'gas/config/tc-txvu.c')
-rw-r--r--gas/config/tc-txvu.c25
1 files changed, 20 insertions, 5 deletions
diff --git a/gas/config/tc-txvu.c b/gas/config/tc-txvu.c
index 8d7937b..183a833 100644
--- a/gas/config/tc-txvu.c
+++ b/gas/config/tc-txvu.c
@@ -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