summaryrefslogtreecommitdiff
path: root/gas/expr.c
Commit message (Collapse)AuthorAgeFilesLines
* Locale changes from Bruno Haible <haible@clisp.cons.org>.H.J. Lu2001-09-191-10/+5
|
* * expr.c (expr): Move code setting "retval" to the end of the loop,Alan Modra2001-09-091-18/+24
| | | | | | | | | | | | | | | | | | | | | 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-08-14 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2001-08-141-0/+3
| | | | | | | * expr.c (operand)[LITERAL_PREFIXDOLLAR_HEX]: Treat $L as a label, not a hex constant. This patch was approved by Nick Clifton.
* * read.c: Standardize error/warning messages - don't capitalise, noAlan Modra2001-08-011-10/+11
| | | | | | | | | | | | | | | | | | | | | 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.
* Fix typo in commentNick Clifton2001-06-131-1/+1
|
* Revert last patch.Alan Modra2001-05-251-13/+0
|
* * expr.c (expr): Set return value to absolute_section forAlan Modra2001-05-251-0/+13
| | | | | subtractive operations on symbols within a segment. * read.c (pseudo_set): Set segment for complex expressions.
* * symbols.c (resolve_symbol_value): Remove "finalize" param,Alan Modra2001-05-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* * expr.c (operand): Pass &c to md_parse_name().Alexandre Oliva2001-04-121-1/+1
| | | | * config/tc-ia64.h, config/tc-ppc.h, config/tc-tic54x.h: Adjust.
* Pass finalize_syms on calls to resolve_symbol_value.Alan Modra2001-03-301-1/+1
|
* Fix copyright noticesNick Clifton2001-03-081-1/+2
|
* Update copyright date.Alan Modra2001-02-131-1/+1
|
* Fix parsing of multi-char operators.Alan Modra2001-02-131-14/+17
|
* Correct {STANDARD,MRI}_MUL_PRECEDENCE value.Alan Modra2000-11-281-3/+3
|
* 2000-10-30 Kazu Hirata <kazu@hxi.com>Kazu Hirata2000-10-301-3/+2
| | | | | | | | * expr.c: Fix formatting. * flonum-copy.c: Likewise. * flonum.h: Likewise. * gasp.c: Likewise. * hash.c: Likewise.
* 2000-10-17 Kazu Hirata <kazu@hxi.com>Kazu Hirata2000-10-171-6/+4
| | | | | | | | | | | | * 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.
* Miscellaneous tiny fixes.Alan Modra2000-09-051-1/+1
|
* fix formattingNick Clifton2000-09-031-9/+9
|
* 2000-08-11 Kazu Hirata <kazu@hxi.com>Kazu Hirata2000-08-111-8/+8
| | | | * expr.c: Fix formatting.
* 2000-08-10 Kazu Hirata <kazu@hxi.com>Kazu Hirata2000-08-101-245/+221
| | | | * expr.c: Fix formatting.
* * new parsing optionFrank Ch. Eigler2000-07-171-0/+6
| | | | | | | 2000-07-17 Frank Ch. Eigler <fche@redhat.com> * expr.c (operand): Permit %bin literals if LITERAL_PREFIXPERCENT_BIN is defined.
* * $literal supportFrank Ch. Eigler2000-06-231-0/+6
| | | | | | | 2000-06-23 Frank Ch. Eigler <fche@redhat.com> * expr.c (operand): Permit $hex literals if LITERAL_PREFIXDOLLAR_HEX is defined.
* (operand): Do not as_bad() if RELAX_PAREN_GROUPING isAlan Modra2000-06-231-4/+8
| | | | | defined. Fix error message and double increment of input_line_pointer for `[' grouping.
* Applied Stephane Carrez <Stephane.Carrez@worldnet.fr> patches to add supportNick Clifton2000-06-191-3/+3
| | | | for m68hc11 and m68hc12 processors.
* is_end_of_line fixes.Alan Modra2000-06-021-4/+7
|
* IA-64 ELF support.Jim Wilson2000-04-211-0/+7
|
* * expr.c (operand) [case 'f']: When testing if '0f' can start aHans-Peter Nilsson2000-03-131-1/+2
| | | | floating-point-number, make sure 'f' is in FLT_CHARS.
* Remove dead code when not TC_M68K.Alan Modra2000-02-241-1/+11
|
* NUMBERS_WITH_SUFFIX *doesn't* want to handle 'x', since that is validTimothy Wall2000-02-081-1/+1
| | | | when the 0x prefix is used.
* Remove redundant code for checking numbers with suffixes. AddTimothy Wall2000-02-081-24/+7
| | | | functionality to break out of assembler loops.
* Add handling for numbers with suffixed radix.Timothy Wall2000-02-081-8/+30
|
* Add more md operatorsMichael Meissner1999-11-051-0/+8
|
* Add md expression support; Cleanup alpha warningsMichael Meissner1999-10-181-0/+8
|
* 1999-09-11 Donn Terry <donn@interix.com>Ian Lance Taylor1999-09-121-2/+3
| | | | | | | * 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-11 Donn Terry <donn@interix.com>Ian Lance Taylor1999-09-111-1/+1
| | | | | * expr.c (integer_constant): Correct too_many_digits calculation in base 10 case.
* * dwarf2dbg.c (*): Convert to K&R + prototypes.Richard Henderson1999-06-051-3/+7
| | | | | | | | | | | | | | | (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.
* * expr.c (operand): Don't use [ for parens if we want an index op.Richard Henderson1999-06-031-23/+43
| | | | | | | (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.
* Add support for storing local symbols in a small structure to saveIan Lance Taylor1999-06-031-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* /Alan Modra1999-05-171-0/+4
| | | | | | | 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.
* 19990502 sourceware importbinu_ss_19990502Richard Henderson1999-05-031-0/+1859