Alan Modra
e0890092b6
* expr.c (expr): Move code setting "retval" to the end of the loop,
...
and rearrange for efficiency. For "PIC code" subtraction, use
"rightseg" rather than recalculating. For "symbol OP symbol"
subtract, set "retval" to absolute_section if symbols in same
section.
* symbols.c (resolve_symbol_value): Resolve "sym +/- expr" to an
O_symbol. Simplify a +/- b code. Allow equality and non-equality
comparisons on symbols from any section. Allow other comparison
operators as for subtraction.
(symbol_equated_reloc_p): New predicate function.
* symbols.h (symbol_equated_reloc_p): Declare.
* write.c (adjust_reloc_syms): Use symbol_equated_reloc_p.
(write_relocs): Likewise.
(write_object_file): Likewise.
(relax_segment <rs_machine_dependent>): Ensure segment for
expression syms is set correctly.
* config/tc-mips.c (md_estimate_size_before_relax): Likewise.
* config/tc-i386.c (md_assemble <Output jumps>): Don't lose part
of a complex expression when setting up frag_var.
2001-09-09 14:01:17 +00:00
Jeff Johnston
c68012fb32
2001-08-14 Jeff Johnston <jjohnstn@redhat.com>
...
* expr.c (operand)[LITERAL_PREFIXDOLLAR_HEX]: Treat $L as
a label, not a hex constant.
This patch was approved by Nick Clifton.
2001-08-14 20:00:32 +00:00
Alan Modra
0e389e770d
* read.c: Standardize error/warning messages - don't capitalise, no
...
final period or newline, don't say "ignored" or "zero assumed" for
as_bad messages. In some cases, change the wording to that used
elsewhere for similar messages.
* app.c, as.c, atof-generic.c, cgen.c, cond.c, depend.c, dwarf2dbg.c,
ecoff.c, expr.c, frags.c, input-file.c, input-scrub.c, listing.c,
output-file.c, stabs.c, subsegs.c, symbols.c, write.c: Likewise.
* ecoff.c (ecoff_directive_end): Test for missing name by
comparing input line pointers rather than reading string.
(ecoff_directive_ent): Likewise.
* read.c (s_set): Likewise.
(s_align): Report a warning rather than an error for
alignment too large.
(s_comm): Check for missing symbol name.
(s_lcomm_internal): Likewise.
(s_lsym): Likewise.
(s_globl): Use is_end_of_line instead of looking for '\n'.
(s_lcomm_internal): Likewise.
(ignore_rest_of_line): Report a warning rather than an error.
2001-08-01 01:44:25 +00:00
Nick Clifton
07a7a14553
Fix typo in comment
2001-06-13 11:29:53 +00:00
Alan Modra
ce34c3732a
Revert last patch.
2001-05-25 01:59:43 +00:00
Alan Modra
40e3ba9bb7
* expr.c (expr): Set return value to absolute_section for
...
subtractive operations on symbols within a segment.
* read.c (pseudo_set): Set segment for complex expressions.
2001-05-25 00:01:30 +00:00
Alan Modra
6386f3a767
* symbols.c (resolve_symbol_value): Remove "finalize" param,
...
instead use finalize_syms directly. Don't treat expressions
specially with regard to finalize_syms. Update calls to self.
(resolve_local_symbol): Update call to resolve_symbol_value.
(S_GET_VALUE): Likewise. Return resolve_symbol_value if
!finalize_syms.
* symbols.h (resolve_symbol_value): Update prototype.
* config/obj-aout.c (obj_crawl_symbol_chain): Update call
to resolve_symbol_value.
* config/obj-bout.c (obj_crawl_symbol_chain): Likewise.
* config/obj-coff.c (do_relocs_for): Likewise.
(yank_symbols): Likewise.
(fixup_segment): Likewise.
* config/obj-vms.c (obj_crawl_symbol_chain): Likewise.
* config/tc-mips.c (md_convert_frag): Likewise.
* config/tc-ppc.c (ppc_frob_symbol): Likewise.
(ppc_fix_adjustable): Likewise.
* dwarf2dbg.c (dwarf2dbg_estimate_size_before_relax): Likewise.
(dwarf2dbg_convert_frag): Likewise.
* ehopt.c (eh_frame_estimate_size_before_relax): Likewise.
(eh_frame_convert_frag): Likewise.
* expr.c (make_expr_symbol): Likewise.
* write.c (adjust_reloc_syms): Likewise.
(write_object_file): Likewise.
(relax_segment): Likewise.
(fixup_segment): Likewise.
(finalize_syms): Init to zero, and update comment.
(write_object_file): Set finalize_syms to 1 rather than 2.
* doc/internals.texi (sy_value): Mention finalize_syms.
(S_GET_VALUE): Remove restriction on when S_GET_VALUE can be called.
2001-05-22 10:23:50 +00:00
Alexandre Oliva
a8a22e3365
* expr.c (operand): Pass &c to md_parse_name().
...
* config/tc-ia64.h, config/tc-ppc.h, config/tc-tic54x.h: Adjust.
2001-04-12 07:03:10 +00:00
Alan Modra
1a5447b835
Pass finalize_syms on calls to resolve_symbol_value.
2001-03-30 07:07:11 +00:00
Nick Clifton
f7e42eb4af
Fix copyright notices
2001-03-08 23:24:26 +00:00
Alan Modra
c90cedf93e
Update copyright date.
2001-02-13 11:17:48 +00:00
Alan Modra
6fad6acb13
Fix parsing of multi-char operators.
2001-02-13 11:13:53 +00:00
Alan Modra
1688794441
Correct {STANDARD,MRI}_MUL_PRECEDENCE value.
2000-11-28 13:33:22 +00:00
Kazu Hirata
b041f888ac
2000-10-30 Kazu Hirata <kazu@hxi.com>
...
* expr.c: Fix formatting.
* flonum-copy.c: Likewise.
* flonum.h: Likewise.
* gasp.c: Likewise.
* hash.c: Likewise.
2000-10-30 21:59:01 +00:00
Kazu Hirata
e6c774b42a
2000-10-17 Kazu Hirata <kazu@hxi.com>
...
* debug.c: Fix formatting.
* depend.c: Likewise.
* dwarf2dbg.c: Likewise.
* dwarf2dbg.h: Likewise.
* ecoff.c: Likewise.
* expr.c: Likewise.
* expr.h: Likewise.
* flonum-konst.c: Likewise.
* frags.h: Likewise.
2000-10-17 20:21:45 +00:00
Alan Modra
927781e250
Miscellaneous tiny fixes.
2000-09-05 03:53:02 +00:00
Nick Clifton
958b5f013a
fix formatting
2000-09-03 21:51:27 +00:00
Kazu Hirata
bc4466dcf1
2000-08-11 Kazu Hirata <kazu@hxi.com>
...
* expr.c: Fix formatting.
2000-08-11 17:50:25 +00:00
Kazu Hirata
929b12bc4e
2000-08-10 Kazu Hirata <kazu@hxi.com>
...
* expr.c: Fix formatting.
2000-08-10 23:13:37 +00:00
Frank Ch. Eigler
977e771a09
* new parsing option
...
2000-07-17 Frank Ch. Eigler <fche@redhat.com>
* expr.c (operand): Permit %bin literals if LITERAL_PREFIXPERCENT_BIN
is defined.
2000-07-17 17:51:18 +00:00
Frank Ch. Eigler
ed6d6fd3c4
* $literal support
...
2000-06-23 Frank Ch. Eigler <fche@redhat.com>
* expr.c (operand): Permit $hex literals if LITERAL_PREFIXDOLLAR_HEX
is defined.
2000-06-23 10:51:28 +00:00
Alan Modra
f7c8887211
(operand): Do not as_bad() if RELAX_PAREN_GROUPING is
...
defined. Fix error message and double increment of
input_line_pointer for `[' grouping.
2000-06-23 10:12:48 +00:00
Nick Clifton
60bcf0fa8c
Applied Stephane Carrez <Stephane.Carrez@worldnet.fr> patches to add support
...
for m68hc11 and m68hc12 processors.
2000-06-19 01:22:44 +00:00
Alan Modra
b75c0c920f
is_end_of_line fixes.
2000-06-02 02:52:10 +00:00
Jim Wilson
800eeca487
IA-64 ELF support.
2000-04-21 20:22:24 +00:00
Hans-Peter Nilsson
271bb601c4
* expr.c (operand) [case 'f']: When testing if '0f' can start a
...
floating-point-number, make sure 'f' is in FLT_CHARS.
2000-03-13 21:20:15 +00:00
Alan Modra
abd63a324b
Remove dead code when not TC_M68K.
2000-02-24 01:56:31 +00:00
Timothy Wall
ab266a97fb
NUMBERS_WITH_SUFFIX *doesn't* want to handle 'x', since that is valid
...
when the 0x prefix is used.
2000-02-08 19:41:03 +00:00
Timothy Wall
6dc19fc4d6
Remove redundant code for checking numbers with suffixes. Add
...
functionality to break out of assembler loops.
2000-02-08 19:06:00 +00:00
Timothy Wall
f805106cd3
Add handling for numbers with suffixed radix.
2000-02-08 14:21:53 +00:00
Michael Meissner
dd33dc0f45
Add more md operators
1999-11-05 21:50:54 +00:00
Michael Meissner
446a06c9b8
Add md expression support; Cleanup alpha warnings
1999-10-18 22:29:15 +00:00
Ian Lance Taylor
0561a208f8
1999-09-11 Donn Terry <donn@interix.com>
...
* expr.c (expr): Change first parameter to int.
* config/obj-coff.c: Add declarations for static functions.
(coff_frob_symbol): Use SYM_AUXENT.
* config/tc-i386.h (flag_16bit_code): Don't declare.
1999-09-12 02:27:58 +00:00
Ian Lance Taylor
fa16d38700
1999-09-11 Donn Terry <donn@interix.com>
...
* expr.c (integer_constant): Correct too_many_digits calculation
in base 10 case.
1999-09-11 14:24:59 +00:00
Richard Henderson
58b5739a4e
* dwarf2dbg.c (*): Convert to K&R + prototypes.
...
(dwarf2_gen_line_info): Kill unused variables.
(dwarf2_finish): Likewise.
(dwarf2_where): Likewise.
(dwarf2_directive_file): If we've only got a string,
hand off to s_app_file.
* ecoff.c: Move the include of ecoff.h.
* symbols.h (S_IS_FUNCTION): Prototype.
* read.c (LEX_HASH): Supply a default.
(lex_type): Use it.
(s_globl): Update `c' after skipping whitespace.
* read.h (LEX_END_NAME, is_name_ender): New.
* expr.c (get_symbol_end): Respect it.
1999-06-05 18:19:09 +00:00
Richard Henderson
b585bc2c0a
* expr.c (operand): Don't use [ for parens if we want an index op.
...
(op_encoding): Switch [ into O_index, if desired.
(op_rank): Renumber with O_index on bottom.
(expr): If O_index, match closing bracket.
* expr.h (O_index): New.
1999-06-03 02:51:27 +00:00
Ian Lance Taylor
49309057b4
Add support for storing local symbols in a small structure to save
...
memory when assembling large files.
* as.h: Don't include struc-symbol.h.
(symbolS): Add typedef.
* symbols.c: Include struc-symbol.h.
(local_hash): New static variable.
(save_symbol_name): New static function, from symbol_create.
(symbol_create): Call save_symbol_name.
(local_symbol_count): New static variable.
(local_symbol_conversion_count): Likewise.
(LOCAL_SYMBOL_CHECK): Define.
(local_symbol_make): New static function.
(local_symbol_convert): New static function.
(colon): Handle local symbols. Create local symbol for local
label name.
(symbol_table_insert): Handle local symbols.
(symbol_find_or_make): Create local symbol for local label name.
(symbol_find_base): Check for local symbol.
(symbol_append, symbol_insert): Check for local symbols.
(symbol_clear_list_pointers, symbol_remove): Likewise.
(verify_symbol_chain): Likewise.
(copy_symbol_attributes): Likewise.
(resolve_symbol_value): Handle local symbols.
(resolve_local_symbol): New static function.
(resolve_local_symbol_values): New function.
(S_GET_VALUE, S_SET_VALUE): Handle local symbols.
(S_IS_FUNCTION, S_IS_EXTERNAL, S_IS_WEAK, S_IS_COMMON): Likewise.
(S_IS_DEFINED, S_IS_DEBUG, S_IS_LOCAL, S_GET_NAME): Likewise.
(S_GET_SEGMENT, S_SET_SEGMENT, S_SET_EXTERNAL): Likewise.
(S_CLEAR_EXTERNAL, S_SET_WEAK, S_SET_NAME): Likewise.
(symbol_previous, symbol_next): New functions.
(symbol_get_value_expression): Likewise.
(symbol_set_value_expression): Likewise.
(symbol_set_frag, symbol_get_frag): Likewise.
(symbol_mark_used, symbol_clear_used, symbol_used_p): Likewise.
(symbol_mark_used_in_reloc): Likewise.
(symbol_clear_used_in_reloc, symbol_used_in_reloc_p): Likewise.
(symbol_mark_mri_common, symbol_clear_mri_common): Likewise.
(symbol_mri_common_p): Likewise.
(symbol_mark_written, symbol_clear_written): Likewise.
(symbol_written_p): Likewise.
(symbol_mark_resolved, symbol_resolved_p): Likewise.
(symbol_section_p, symbol_equated_p): Likewise.
(symbol_constant_p): Likewise.
(symbol_get_bfdsym, symbol_set_bfdsym): Likewise.
(symbol_get_obj, symbol_set_obj): Likewise.
(symbol_get_tc, symbol_set_tc): Likewise.
(symbol_begin): Initialize local_hash.
(print_symbol_value_1): Handle local symbols.
(symbol_print_statistics): Print local symbol statistics.
* symbols.h: Include "struc-symbol.h" if not BFD_ASSEMBLER.
Declare new symbols.c functions. Move many declarations here from
struc-symbol.h.
(SYMBOLS_NEED_BACKPOINTERS): Define if needed.
* struc-symbol.h (SYMBOLS_NEED_BACKPOINTERS): Don't set.
(struct symbol): Move bsym to make it clearly the first field.
Remove TARGET_SYMBOL_FIELDS.
(symbolS): Don't typedef.
(struct broken_word): Remove.
(N_TYPE_seg, seg_N_TYPE): Move to symbol.h.
(SEGMENT_TO_SYMBOL_TYPE, N_REGISTER): Likewise.
(symbol_clear_list_pointers): Likewise.
(symbol_insert, symbol_remove): Likewise.
(symbol_previous, symbol_append): Likewise.
(verify_symbol_chain, verify_symbol_chain_2): Likewise.
(struct local_symbol): Define.
(local_symbol_converted_p, local_symbol_mark_converted): Define.
(local_symbol_resolved_p, local_symbol_mark_resolved): Define.
(local_symbol_get_frag, local_symbol_set_frag): Define.
(local_symbol_get_real_symbol): Define.
(local_symbol_set_real_symbol): Define.
Define.
* write.c (write_object_file): Call resolve_local_symbol_values.
* config/obj-ecoff.h (OBJ_SYMFIELD_TYPE): Define.
(TARGET_SYMBOL_FIELDS): Don't define.
* config/obj-elf.h (OBJ_SYMFIELD_TYPE): Add local field. If
ECOFF_DEBUGGING, add ECOFF fields.
(ELF_TARGET_SYMBOL_FIELDS, TARGET_SYMBOL_FIELDS): Don't define.
* config/obj-multi.h (struct elf_obj_sy): Add local field. If
ECOFF_DEBUGGING, add ECOFF fields.
(ELF_TARGET_SYMBOL_FIELDS, TARGET_SYMBOL_FIELDS): Don't define.
(ECOFF_DEBUG_TARGET_SYMBOL_FIELDS): Don't define.
* config/tc-mcore.h: Don't include struc-symbol.h.
(TARGET_SYMBOL_FIELDS): Don't define.
(struct mcore_tc_sy): Define.
(TC_SYMFIELD_TYPE): Define.
* Many files: Use symbolS instead of struct symbol. Use new
accessor functions rather than referring to symbolS fields
directly.
* read.c (s_mri_common): Don't add in value of line_label.
* config/tc-mips.c (md_apply_fix): Correct parenthesization when
checking for SEC_LINK_ONCE.
* config/tc-sh.h (sh_fix_adjustable): Declare.
1999-06-03 00:29:48 +00:00
Alan Modra
6d4d30bb14
/
...
Move bitfield overflow checks to after the md_apply_fix call in
fixup_segment so that md_apply_fix has a chance to modify value.
Handle 8 and 16-bit pcrel relocs for i386.
Prototypes and other minor code cleanups.
1999-05-17 03:21:46 +00:00
Richard Henderson
252b5132c7
19990502 sourceware import
1999-05-03 07:29:11 +00:00