Alan Modra
e57e6ddc2e
Prepare gas for 64-bit obstacks
...
Use size_t in a few places involved with obstacks, and don't include
obstack.h in files that don't use obstacks.
gas/
* config/bfin-parse.y: Don't include obstack.h.
* config/obj-aout.c: Likewise.
* config/obj-coff.c: Likewise.
* config/obj-som.c: Likewise.
* config/tc-bfin.c: Likewise.
* config/tc-i960.c: Likewise.
* config/tc-rl78.c: Likewise.
* config/tc-rx.c: Likewise.
* config/tc-tic4x.c: Likewise.
* expr.c: Likewise.
* listing.c: Likewise.
* config/obj-elf.c (elf_file_symbol): Make name_length a size_t.
* config/tc-aarch64.c (symbol_locate): Likewise.
* config/tc-arm.c (symbol_locate): Likewise.
* config/tc-mmix.c (mmix_handle_mmixal): Make len_0 a size_t.
* config/tc-score.c (s3_build_score_ops_hsh): Make len a size_t.
(s3_build_dependency_insn_hsh): Likewise.
* config/tc-score7.c (s7_build_score_ops_hsh): Likewise.
(s7_build_dependency_insn_hsh): Likewise.
* frags.c (frag_grow): Make parameter a size_t, and use size_t locals.
(frag_new): Make parameter a size_t.
(frag_var_init): Make max_chars and var parameters size_t.
(frag_var, frag_variant): Likewise.
(frag_room): Return a size_t.
(frag_align_pattern): Make n_fill parameter a size_t.
* frags.h: Update function prototypes.
* symbols.c (save_symbol_name): Make name_length a size_t.
2014-07-26 21:00:50 +09:30
David Weatherford
a82c7d9030
Add support to the Xtensa target for creating trampolines for out-of-range branches.
...
* tc-xtensa.c (xtensa_check_frag_count, xtensa_create_trampoline_frag)
(xtensa_maybe_create_trampoline_frag, init_trampoline_frag)
(find_trampoline_seg, search_trampolines, get_best_trampoline)
(check_and_update_trampolines, add_jump_to_trampoline)
(dump_trampolines): New function.
(md_parse_option): Add cases for --[no-]trampolines options.
(md_assemble, finish_vinsn, xtensa_end): Add call to
xtensa_check_frag_count.
(xg_assemble_vliw_tokens): Add call to
xtensa_maybe_create_trampoline_frag.
(xtensa_relax_frag): Relax fragments with RELAX_TRAMPOLINE state.
(relax_frag_immed): Relax jump instructions that cannot reach its
target.
* tc-xtensa.h (xtensa_relax_statesE::RELAX_TRAMPOLINE): New relax
state.
* as.texinfo: Document --[no-]trampolines command-line options.
* c-xtensa.texi: Document trampolines relaxation and command line
options.
* frags.c (get_frag_count, clear_frag_count): New function.
(frag_alloc): Increment totalfrags counter.
* frags.h (get_frag_count, clear_frag_count): New function.
* all.exp: Add test for trampoline relaxation.
* trampoline.d: Trampoline relaxation expected dump.
* trampoline.s: Trampoline relaxation test source.
2014-03-21 11:53:42 +00:00
Alan Modra
4b95cf5c0c
Update copyright years
2014-03-05 22:16:15 +10:30
Alan Modra
08ea70204d
* frags.h (frag_offset_fixed_p): Update prototype.
...
* frags.c (frag_offset_fixed_p): Change type of "offset" to offsetT.
* expr.c (expr, resolve_expression): Likewise for frag_off var.
2012-06-30 00:27:31 +00:00
Iain Sandoe
cdaa5616cb
2012-02-21 Tristan Gingold <gingold@adacore.com>
...
* config/tc-i386.h (OBJ_MACH_O): New section.
(TC_FORCE_RELOCATION): Use obj_mach_o_force_reloc.
(TC_FORCE_RELOCATION_SUB_SAME): New
(TC_FORCE_RELOCATION_SUB_LOCAL): New.
(TC_VALIDATE_FIX_SUB): New.
* frags.h (struct frag): OBJ_FRAG_TYPE, new field.
* symbols.c (colon): obj_frob_colon: New hook.
* write.c (write_object_file): md_pre_relax_hook, new
hook.
* config/obj-macho.c (obj_mach_o_frob_colon): New.
(obj_mach_o_frob_label): Record sub-section labels.
(obj_mach_o_frob_symbol): Rename from obj_macho_frob_symbol.
(obj_mach_o_set_subsections): New.
(obj_mach_o_pre_relax_hook): New.
(obj_mach_o_in_different_subsection): New.
(obj_mach_o_force_reloc_sub_same): New.
(obj_mach_o_force_reloc_sub_local): New.
(obj_mach_o_force_reloc): New.
* config/obj-macho.h (OBJ_SYMFIELD_TYPE): New.
(obj_frob_colon): New Define.
(obj_mach_o_frob_label): Renamed.
(obj_mach_o_frob_symbol): Renamed.
(OBJ_FRAG_TYPE): New.
(obj_mach_o_in_different_subsection, obj_mach_o_force_reloc,
obj_mach_o_force_reloc_sub_same,
obj_mach_o_force_reloc_sub_local): New declarations.
2012-02-21 09:13:02 +00:00
Alan Modra
6885131b49
* as.c (main): Define .gasversion. rather than __GAS_VERSION__.
...
* frags.h (bss_address_frag): Delete
(predefined_address_frag): New.
* frags.c (frag_init): Init predefined_address_frag. Delete ref
to bss_addres_frag.
* symbols.c (S_CAN_BE_REDEFINED): New function.
* symbols.h (S_CAN_BE_REDEFINED): Declare.
* read.c (assign_symbol): Use S_CAN_BE_REDEFINED.
2011-10-12 21:07:07 +00:00
Alan Modra
e35a414d3c
PR gas/12049
...
* frags.h (struct frag): Add "region" field.
* write.c (relax_frag): Don't add "stretch" to forward reference
target if there is an intervening org or align.
(relax_segment): Set region.
2010-10-19 12:00:33 +00:00
Nick Clifton
ec2655a6a7
Switch to GPLv3
2007-07-03 11:01:12 +00:00
Alan Modra
6cbe03fb0f
* frags.c (frag_offset_fixed_p): Constify args.
...
* frags.h (frag_offset_fixed_p): Ditto.
2006-04-18 09:58:26 +00:00
Alan Modra
9963077898
PR 997
...
* frags.c (frag_offset_fixed_p): New function.
* frags.h (frag_offset_fixed_p): Declare.
* expr.c (expr): Use frag_offset_fixed_p when simplifying subtraction.
(resolve_expression): Likewise.
2006-04-04 08:04:57 +00:00
Ben Elliston
b4f261e094
* frags.h: Remove ANSI_PROTOTYPES conditional code.
...
* config/obj-elf.h: Likewise.
* config/tc-h8300.h: Likewise.
* config/tc-h8500.h: Likewise.
* config/tc-i370.h: Likewise.
* config/tc-i386.h: Likewise.
* config/tc-m68hc11.h: Likewise.
* config/tc-m68k.h: Likewise.
* config/tc-ppc.h: Likewise.
* config/tc-s390.h: Likewise.
* config/tc-sh.h: Likewise.
* config/tc-sparc.h: Likewise.
* config/tc-tic30.c: Likewise.
* config/tc-w65.h: Likewise.
* config/tc-xtensa.h: Likewise.
2005-07-08 05:57:21 +00:00
Nick Clifton
4b4da1607a
Update the address and phone number of the FSF
2005-05-05 09:13:19 +00:00
Alan Modra
2da5c03714
update copyright dates
2005-03-03 01:29:54 +00:00
Ben Elliston
59c871b457
* as.h: Remove #if 0'd code.
...
* atof-generic.c (atof_generic): Likewise.
* ecoff.c (ecoff_directive_frame): Likewise.
* frags.h (FRAG_APPEND_1_CHAR): Likewise.
* itbl-ops.c (itbl_add_reg): Likewise.
* listing.c (calc_hex): Likewise.
* read.c (MASK_CHAR): Likewise.
* subsegs.c (subsegs_print_statistics): Likewise.
* symbols.c (indent): Likewise.
* write.c (write_relocs): Likewise.
(write_object_file): Likewise.
(relax_frag): Likewise.
2005-01-21 05:54:38 +00:00
Alan Modra
09b935accc
* frags.h (struct frag): Add has_code and insn_addr fields.
...
* write.c (cvt_frag_to_fill): Invoke md_frag_check.
* config/tc-ppc.c (md_assemble): Check and set insn_addr.
* config/tc-ppc.h (md_frag_check): Define.
2004-07-02 06:40:19 +00:00
Richard Sandiford
0530d30a58
* frags.h (frag_room): Declare.
...
* frags.c (frag_room): New function.
* doc/internals.texi: Document it.
2004-01-23 12:52:20 +00:00
Kazu Hirata
dd625418be
* ehopt.c: Convert to ISO-C.
...
* emul.h: Likewise.
* expr.c: Likewise.
* expr.h: Likewise.
* flonum-copy.c: Likewise.
* flonum-mult.c: Likewise.
* flonum.h: Likewise.
* frags.c: Likewise.
* frags.h: Likewise.
2003-11-22 16:03:03 +00:00
Kazu Hirata
47eebc207f
* ChangeLog: Fix typos.
...
* ChangeLog-9295: Likewise.
* as.c: Fix comment typos.
* as.h: Likewise.
* atof-generic.c: Likewise.
* bit_fix.h: Likewise.
* frags.h: Likewise.
* hash.c: Likewise.
* input-file.c: Likewise.
* input-scrub.c: Likewise.
* itbl-ops.c: Likewise.
* itbl-parse.y: Likewise.
* listing.c: Likewise.
* macro.h: Likewise.
* read.c: Likewise.
* sb.c: Likewise.
* sb.h: Likewise.
* symbols.c: Likewise.
* symbols.h: Likewise.
2003-10-27 12:45:17 +00:00
Kazu Hirata
d1a6c2428d
* as.h: Fix formatting.
...
* cgen.c: Likewise.
* cgen.h: Likewise.
* dwarf2dbg.c: Likewise.
* frags.h: Likewise.
* gasp.c: Likewise.
* macro.c: Likewise.
* read.c: Likewise.
* stabs.c: Likewise.
* symbols.c: Likewise.
2002-05-03 02:25:33 +00:00
Alan Modra
e46d99eb07
Multi-pass relaxation machinery.
2001-03-30 02:19:36 +00:00
Alan Modra
38686296b3
Use `relax_marker' instead of fragile address test code to determine
...
whether a frag's fr_address has been updated.
2001-03-20 03:12:01 +00:00
Nick Clifton
f7e42eb4af
Fix copyright notices
2001-03-08 23:24:26 +00:00
Richard Henderson
0a9ef43907
* as.h (rs_align_test): New.
...
* frags.c (NOP_OPCODE): Move default from read.c.
(MAX_MEM_FOR_RS_ALIGN_CODE): New default.
(frag_align_code): New.
* frags.h (frag_align_code): Declare.
* read.c (NOP_OPCODE): Remove.
(do_align): Use frag_align_code.
* write.c (NOP_OPCODE): Remove.
(get_recorded_alignment): New.
(cvt_frag_to_fill): Handle rs_align_test.
(relax_segment): Likewise.
(subsegs_finish): Align last subseg in section to the
section alignment. Use frag_align_code.
* write.h (get_recorded_alignment): Declare.
* config/obj-coff.c (size_section): Handle rs_align_test.
(fill_section, fixup_mdeps): Likewise.
(write_object_file): Use frag_align_code.
* config/tc-alpha.c (alpha_align): Use frag_align_code.
(alpha_handle_align): New.
* config/tc-alpha.h (HANDLE_ALIGN): New.
(MAX_MEM_FOR_RS_ALIGN_CODE): New.
* config/tc-i386.h (md_do_align): Use frag_align_code.
(MAX_MEM_FOR_RS_ALIGN_CODE): New.
* config/tc-ia64.c (ia64_md_do_align): Don't do code alignment.
(ia64_handle_align): New.
* config/tc-ia64.h (HANDLE_ALIGN): New.
(MAX_MEM_FOR_RS_ALIGN_CODE): New.
* config/tc-m32r.c (m32r_do_align): Remove.
(m32r_handle_align): New.
(fill_insn): Use frag_align_code.
* config/tc-m32r.h (md_do_align): Remove.
(HANDLE_ALIGN, MAX_MEM_FOR_RS_ALIGN_CODE): New.
* config/tc-m88k.c, config/tc-m88k.h: Similarly.
* config/tc-mips.c, config/tc-mips.h: Similarly.
* config/tc-sh.c (sh_cons_align): Use rs_align_test.
(sh_handle_align): Likewise. Handle rs_align_code.
(sh_do_align): Remove.
* config/tc-sh.h (md_do_align): Remove.
(MAX_MEM_FOR_RS_ALIGN_CODE): New.
* config/tc-sparc.c (sparc_cons_align): Use rs_align_test.
(sparc_handle_align): Likewise. Handle rs_align_code.
* config/tc-sparc.h (md_do_align): Remove.
(MAX_MEM_FOR_RS_ALIGN_CODE): New.
2000-12-28 10:07:56 +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
Kazu Hirata
a01b9fa4ba
2000-09-12 Kazu Hirata <kazu@hxi.com>
...
* as.h: Fix formatting.
* asintl.h: Likewise.
* bit_fix.h: Likewise.
* dwarf2dbg.h: Likewise.
* expr.h: Likewise.
* flonum.h: Likewise.
* frags.h: Likewise.
* itbl-ops.h: Likewise.
* macro.h: Likewise.
* read.h: Likewise.
* sb.h: Likewise.
* struc-symbol.h: Likewise.
* subsegs.h: Likewise.
* symbols.h: Likewise.
* tc.h: Likewise.
* write.h: Likewise.
2000-09-12 20:57:14 +00:00
Alan Modra
5a327c7ac2
Missed copyright update in last patch.
2000-05-23 05:07:47 +00:00
Alan Modra
ee7fcc42b1
Pass jump reloc in fr_var so it can be used in
...
md_estimate_size_before_relax, replacing old kludge.
2000-05-23 04:48:21 +00:00
Timothy Wall
bea9907b2a
octets vs bytes changes for GAS
2000-02-03 18:20:23 +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
Richard Henderson
252b5132c7
19990502 sourceware import
1999-05-03 07:29:11 +00:00