diff options
author | Nick Clifton <nickc@redhat.com> | 2005-10-11 11:16:17 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2005-10-11 11:16:17 +0000 |
commit | 9497f5ac6bc10bdd65ea471787619bde1edca77d (patch) | |
tree | 7f36b3cb6f0d84b058dfba51242bd900edde9503 /gas/ChangeLog | |
parent | 1334d4d50c52bc295dace4982442369838f478b3 (diff) | |
download | gdb-9497f5ac6bc10bdd65ea471787619bde1edca77d.zip gdb-9497f5ac6bc10bdd65ea471787619bde1edca77d.tar.gz gdb-9497f5ac6bc10bdd65ea471787619bde1edca77d.tar.bz2 |
This adjusts equate handling by
- allowing true forward references (which will always assume the referenced
symbols have at the point of use) through the new .eqv pseudo-op and the
new == operator
- disallowing changing .equiv-generated equates (so that the protection this
provides is both forward and backward)
- snapshotting equates when their value gets changed so that previous uses
don't get affected by the new value.
- allowing expressions in places where absolute expressions (or register
names) are needed which were not completely resolvable at the point of
their definition but which are fully resolvable at the point of use
In addition it fixes PR/288.
Diffstat (limited to 'gas/ChangeLog')
-rw-r--r-- | gas/ChangeLog | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 64dd155..16d67b5 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,65 @@ +2005-10-11 Jan Beulich <jbeulich@novell.com> + + * expr.h (enum expr_mode): New. + (expression): Pass thrid argument to expr. + (expression_and_evaluate): New. + (deferred_expression): New. + (expr): Add third parameter. + (resolve_expression): New. + * struc-symbol.h (struct symbol): New members sy_volatile and + sy_forward_ref. + * symbols.c, symbols.h (symbol_clone): New. + (symbol_clone_if_forward_ref): New. + (snapshot_symbol): New. + (S_IS_VOLATILE): New. + (S_IS_FORWARD_REF): New. + (S_SET_VOLATILE): New. + (S_SET_FORWARD_REF): New. + * as.c (macro_expr): Use expression_and_evaluate. + * cond.c (s_if): Likewise. + (s_elseif): Likewise. + * dw2gencfi.c (cfi_parse_reg): Likewise. + * expr.c (operand): Add second parameter. Optionally call + deferred_expression. Pass mode argument to itself and md_parse_name. + Check mode before trying to evaluate symbol. Call + symbol_clone_if_forward_ref for both operands. + (expr): Add thrid parameter. Pass mode to operand and itself. + Optionally call resolve_expression. + (resolve_expression): New. + (get_single_number): Pass second argument to operand. + * read.c (potable): New entry for .eqv. + (read_a_source_file): Handle new == operator. + (get_absolute_expr): Use expression_and_evaluate. + (s_lsym): Likewise. + (assign_symbol): Rename second parameter. Call symbol_clone on + legal and illegal redefinition. Call S_SET_VOLATILE and + S_SET_FORWARD_REF depending on mode. + (s_set): Update description. + (s_space): Call resolve_expression. + (pseudo_set): Optionally call deferred_expression. Check + S_IS_FORWARD_REF before trying to simplify/resolve an expression. + (equals): Handle ==. + * config/tc-ia64.h (md_parse_name): Add mode parameter. + * config/tc-arc.c (arc_parse_cons_expression): Likewise. + * config/tc-m32r.h (md_parse_name): Likewise. + (m32r_parse_name): Likewise. + * config/tc-mmix.h (md_parse_name): Likewise. + * config/tc-mn10300.h (md_parse_name): Likewise. + (mn10300_parse_name): Likewise. + * config/tc-ppc.h (md_parse_name): Likewise. + * config/tc-sh.h (md_parse_name): Likewise. + (sh_parse_name): Likewise. + * config/tc-sh64.h (md_parse_name): Likewise. + (sh64_consume_datalabel): Likewise. + * config/tc-tic54x.h (md_parse_name): Likewise. + * config/tc-m32r.c (m32r_parse_name): Add mode parameter. Check it + before trying to evaluate symbol. + * config/tc-mn10300.c (mn10300_parse_name): Likewise. + * config/tc-sh.c (sh_parse_name): Likewise. + * config/tc-sh64.c (sh64_consume_datalabel): Add mode parameter. Pass + second argument to operandf. Pass mode parameter to sh_parse_name. + * doc/as.texinfo: Document .eqv and the == assignment operator. + 2005-10-10 Ian Lance Taylor <ian@airs.com> * Makefile.am (EXTRA_DIST): Remove bfin-lex.l and bfin-defs.h. |