aboutsummaryrefslogtreecommitdiff
path: root/gas/read.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1993-07-15 16:02:21 +0000
committerIan Lance Taylor <ian@airs.com>1993-07-15 16:02:21 +0000
commitc978e704a9a21709c255feb5aa49ead641ee158e (patch)
treea6d3b8fb3970b2e99ac2c35a5a9dcdf782b95aef /gas/read.c
parentf09aae8404ef1d9ed3a677c59c418162060c35a9 (diff)
downloadgdb-c978e704a9a21709c255feb5aa49ead641ee158e.zip
gdb-c978e704a9a21709c255feb5aa49ead641ee158e.tar.gz
gdb-c978e704a9a21709c255feb5aa49ead641ee158e.tar.bz2
* Preliminary support for m88k-coff.
* configure.in (m88k-*-coff*): New target. Use coffbfd and m88kcoff. * config/m88kcoff.mt: New file. * read.c (lex_type): New macro LEX_AT to set lex type of '@'. (pseudo_set): Handle difference of symbols in different fragments by saving the entire expression as the value of the symbol. * symbols.c (resolve_symbol_value): Resolve difference expressions. * config/obj-coffbfd.c (obj_pseudo_table): If TC_M88K, accept "sdef" as a synonym for "def". * config/obj-coffbfd.h: If TC_M88K, include coff/m88k.h and set TARGET_FORMAT. (S_IS_LOCAL): Any symbol which includes \001 in the name is local. * config/tc-m88k.c, config/tc-m88k.h: Numerous changes to bring m88k port up to date, and to add COFF support.
Diffstat (limited to 'gas/read.c')
-rw-r--r--gas/read.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/gas/read.c b/gas/read.c
index 2a5dabe..c3cb711 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -68,6 +68,11 @@ char *input_line_pointer; /*->next char of source file to parse. */
die horribly;
#endif
+#ifndef LEX_AT
+/* The m88k unfortunately uses @ as a label beginner. */
+#define LEX_AT 0
+#endif
+
/* used by is_... macros. our ctype[] */
const char lex_type[256] =
{
@@ -75,7 +80,7 @@ const char lex_type[256] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ[\]^_ */
0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, /* _!"#$%&'()*+,-./ */
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* 0123456789:;<=>? */
- 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, /* @ABCDEFGHIJKLMNO */
+ LEX_AT, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, /* @ABCDEFGHIJKLMNO */
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3, /* PQRSTUVWXYZ[\]^_ */
0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, /* `abcdefghijklmno */
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, /* pqrstuvwxyz{|}~. */
@@ -1473,11 +1478,7 @@ pseudo_set (symbolP)
S_GET_VALUE (exp.X_subtract_symbol);
goto abs;
}
- as_bad ("Invalid expression: separation between symbols `%s'",
- S_GET_NAME (exp.X_add_symbol));
- as_bad (" and `%s' may not be constant",
- S_GET_NAME (exp.X_subtract_symbol));
- need_pass_2++;
+ symbolP->sy_value = exp;
}
else
{