diff options
-rw-r--r-- | gas/ChangeLog | 15 | ||||
-rw-r--r-- | gas/macro.c | 69 |
2 files changed, 43 insertions, 41 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 5e503fe..5a71bae 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,8 +1,13 @@ +2005-11-07 Alan Modra <amodra@bigpond.net.au> + + * macro.c (buffer_and_nest): Skip labels regardless of + NO_PSEUDO_DOT and flag_m68k_mri. + 2005-11-07 Arnold Metselaar <arnold.metselaar@planet.nl> * expr.c (integer_constant): Match only 'B' as binary suffix if - NUMBERS_WITH_SUFFIX and LOCAL_LABELS_FB. Allow both 'b' and 'B' - otherwise. + NUMBERS_WITH_SUFFIX and LOCAL_LABELS_FB. Allow both 'b' and 'B' + otherwise. 2005-11-04 Alexandre Oliva <aoliva@redhat.com> @@ -65,7 +70,7 @@ * config/tc-m32c.c (md_relax_table, subtype_mappings, md_convert_frag): Add jsr.w support. - + * config/tc-m32c.c (md_assemble): Don't use errmsg as the format itself. (md_cgen_lookup_reloc): Add m32c bitbase operands. Add 8-s24 @@ -93,7 +98,7 @@ * Makefile.am: Add Z80 cpu. * Makefile.in: Regenerated. - * app.c (do_scrub_chars)<TC_Z80>: Correctly scrub "ex af,af'" + * app.c (do_scrub_chars)<TC_Z80>: Correctly scrub "ex af,af'" and disallow newlines in quoted strings. * configure.tgt: Add z80-*-coff. * config/obj-coff.h: Add format "coff-z80". @@ -356,7 +361,7 @@ * doc/c-arm.texi: Document .cpu, .arch, .fpu and .eabi_attribute. 2005-10-06 Khem Raj <kraj@mvista.com> - NIIBE Yutaka <gniibe@m17n.org> + NIIBE Yutaka <gniibe@m17n.org> * config/tc-sh.c (allow_dollar_register_prefix): New variable. (parse_reg_without_prefix): New function. diff --git a/gas/macro.c b/gas/macro.c index eab3e66..23156a1 100644 --- a/gas/macro.c +++ b/gas/macro.c @@ -180,49 +180,46 @@ buffer_and_nest (const char *from, const char *to, sb *ptr, while (more) { - /* Try and find the first pseudo op on the line. */ + /* Try to find the first pseudo op on the line. */ int i = line_start; - if (! NO_PSEUDO_DOT && ! flag_m68k_mri) - { - /* With normal syntax we can suck what we want till we get - to the dot. With the alternate, labels have to start in - the first column, since we can't tell what's a label and - whats a pseudoop. */ + /* With normal syntax we can suck what we want till we get + to the dot. With the alternate, labels have to start in + the first column, since we can't tell what's a label and + what's a pseudoop. */ - if (! LABELS_WITHOUT_COLONS) - { - /* Skip leading whitespace. */ - while (i < ptr->len && ISWHITE (ptr->ptr[i])) - i++; - } + if (! LABELS_WITHOUT_COLONS) + { + /* Skip leading whitespace. */ + while (i < ptr->len && ISWHITE (ptr->ptr[i])) + i++; + } - for (;;) + for (;;) + { + /* Skip over a label, if any. */ + if (i >= ptr->len || ! is_name_beginner (ptr->ptr[i])) + break; + i++; + while (i < ptr->len && is_part_of_name (ptr->ptr[i])) + i++; + if (i < ptr->len && is_name_ender (ptr->ptr[i])) + i++; + if (LABELS_WITHOUT_COLONS) + break; + /* Skip whitespace. */ + while (i < ptr->len && ISWHITE (ptr->ptr[i])) + i++; + /* Check for the colon. */ + if (i >= ptr->len || ptr->ptr[i] != ':') { - /* Skip over a label, if any. */ - if (i >= ptr->len || ! is_name_beginner (ptr->ptr[i])) - break; - i++; - while (i < ptr->len && is_part_of_name (ptr->ptr[i])) - i++; - if (i < ptr->len && is_name_ender (ptr->ptr[i])) - i++; - if (LABELS_WITHOUT_COLONS) - break; - /* Skip whitespace. */ - while (i < ptr->len && ISWHITE (ptr->ptr[i])) - i++; - /* Check for the colon. */ - if (i >= ptr->len || ptr->ptr[i] != ':') - { - i = line_start; - break; - } - i++; - line_start = i; + i = line_start; + break; } - + i++; + line_start = i; } + /* Skip trailing whitespace. */ while (i < ptr->len && ISWHITE (ptr->ptr[i])) i++; |