From 336435bc4dc648b48da47e8660e11569619d56a2 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 10 Aug 1995 16:43:00 +0000 Subject: [PATCH] * config/tc-m68k.c (m68k_ip): When recognizing '#', use isbyte and iword rather than expr8 and expr16. When recognizing 'M', use issbyte rather than expr8. When recognizing 'Q' and 't', just check for O_constant rather than using expr8. * config/m68k-parse.h (expr8, expr16): Don't define. * Makefile.in (m68k-parse.o): Depend upon m68k-parse.h, not m68k-parse.y. --- gas/ChangeLog | 8 ++++++++ gas/Makefile.in | 2 +- gas/config/tc-m68k.c | 13 ++++++++----- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 2ed0a61729..61eccb5919 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,13 @@ Thu Aug 10 00:38:11 1995 Ian Lance Taylor + * config/tc-m68k.c (m68k_ip): When recognizing '#', use isbyte and + iword rather than expr8 and expr16. When recognizing 'M', use + issbyte rather than expr8. When recognizing 'Q' and 't', just + check for O_constant rather than using expr8. + * config/m68k-parse.h (expr8, expr16): Don't define. + * Makefile.in (m68k-parse.o): Depend upon m68k-parse.h, not + m68k-parse.y. + * read.c (potable): Add spc, ttl, xcom, xref. (s_mri_sect): New function. * read.h (s_mri_sect): Declare. diff --git a/gas/Makefile.in b/gas/Makefile.in index 1aaf8f24a8..dc1d112918 100644 --- a/gas/Makefile.in +++ b/gas/Makefile.in @@ -354,7 +354,7 @@ e-mipsecoff.o : $(srcdir)/config/e-mipsecoff.c m68k-parse.c: $(srcdir)/config/m68k-parse.y $(BISON) $(BISONFLAGS) $(srcdir)/config/m68k-parse.y mv -f y.tab.c m68k-parse.c -m68k-parse.o: m68k-parse.c $(srcdir)/config/m68k-parse.y +m68k-parse.o: m68k-parse.c $(srcdir)/config/m68k-parse.h # Remake the info files. diff --git a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c index 55137c5d31..6e320c0bae 100644 --- a/gas/config/tc-m68k.c +++ b/gas/config/tc-m68k.c @@ -768,11 +768,13 @@ m68k_ip (instring) losing++; else if (s[1] == 'b' && ! isvar (&opP->disp) - && ! expr8 (&opP->disp)) + && (opP->disp.exp.X_op != O_constant + || ! isbyte (opP->disp.exp.X_add_number))) losing++; else if (s[1] == 'w' && ! isvar (&opP->disp) - && ! expr16 (&opP->disp)) + && (opP->disp.exp.X_op != O_constant + || ! isword (opP->disp.exp.X_add_number))) losing++; break; @@ -1076,7 +1078,8 @@ m68k_ip (instring) case 'M': if (opP->mode != IMMED) losing++; - else if (! expr8 (&opP->disp)) + else if (opP->disp.exp.X_op != O_constant + || ! issbyte (opP->disp.exp.X_add_number)) losing++; else if (! m68k_quick && instring[3] != 'q' @@ -1092,7 +1095,7 @@ m68k_ip (instring) case 'Q': if (opP->mode != IMMED) losing++; - else if (! expr8 (&opP->disp) + else if (opP->disp.exp.X_op != O_constant || opP->disp.exp.X_add_number < 1 || opP->disp.exp.X_add_number > 8) losing++; @@ -1139,7 +1142,7 @@ m68k_ip (instring) case 't': if (opP->mode != IMMED) losing++; - else if (! expr8 (&opP->disp) + else if (opP->disp.exp.X_op != O_constant || opP->disp.exp.X_add_number < 0 || opP->disp.exp.X_add_number > 7) losing++;