* config/tc-txvu.c (md_assemble): Handle no separator between

upper and lower insn #ifndef VERTICAL_BAR_SEPARATOR.
	(assemble_insn): Likewise.
This commit is contained in:
Doug Evans
1998-01-06 13:12:16 +00:00
parent 42639e838c
commit 61e09fac57
2 changed files with 26 additions and 5 deletions

View File

@ -1,4 +1,10 @@
start-sanitize-sky 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> 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. * config/tc-txvu.c: #include dis-asm.h, opcode/txvu.h, elf/txvu.h.

View File

@ -103,12 +103,13 @@ struct txvu_fixup
#define MAX_FIXUPS 5 #define MAX_FIXUPS 5
static void assemble_insn PARAMS ((char *, int)); static char * assemble_insn PARAMS ((char *, int));
void void
md_assemble (str) md_assemble (str)
char *str; char *str;
{ {
#ifdef VERTICAL_BAR_SEPARATOR
char *p = strchr (str, '|'); char *p = strchr (str, '|');
if (p == NULL) if (p == NULL)
@ -121,12 +122,21 @@ md_assemble (str)
assemble_insn (str, 0); assemble_insn (str, 0);
*p = '|'; *p = '|';
assemble_insn (p + 1, 1); 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. /* 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) assemble_insn (str, lower_p)
char *str; char *str;
int lower_p; int lower_p;
@ -368,7 +378,11 @@ assemble_insn (str, lower_p)
while (isspace (*str)) while (isspace (*str))
++str; ++str;
if (*str != '\0') if (*str != '\0'
#ifndef VERTICAL_BAR_SEPARATOR
&& lower_p
#endif
)
as_bad ("junk at end of line: `%s'", str); as_bad ("junk at end of line: `%s'", str);
/* Write out the instruction. /* Write out the instruction.
@ -403,13 +417,14 @@ assemble_insn (str, lower_p)
} }
/* All done. */ /* All done. */
return; return str;
} }
/* Try the next entry. */ /* Try the next entry. */
} }
as_bad ("bad instruction `%s'", start); as_bad ("bad instruction `%s'", start);
return 0;
} }
void void