Commit Graph

78 Commits

Author SHA1 Message Date
Ian Lance Taylor
a1605869fb * struc-symbol.h: Put local_symbol code in ifdef BFD_ASSEMBLER.
* symbols.c: Likewise.
	* config/obj-aout.c (obj_crawl_symbol_chain): Refer directly to
	sy_next field when taking address, rather than symbol_next.
1999-06-11 21:07:46 +00:00
Ian Lance Taylor
ae69440806 * config/tc-i386.c (i386_immediate): Remove unused label
seg_unimplemented.
1999-06-11 21:07:03 +00:00
Ian Lance Taylor
9e3af0e72a * dwarf2dbg.c: Change bfd_vma to addressT and bfd_signed_vma to
offsetT.
	(out_set_addr): Don't use BYTES_PER_ADDRESS.  Instead, get the
	value from the output file architecture.
	(dwarf2_gen_line_info): Ifdef BFD_ASSEMBLER specific code.
	* dwarf2dbg.h: Change bfd_vma to addressT.
1999-06-11 21:06:44 +00:00
Ian Lance Taylor
14c1861305 * gas/i386/amd.s: Add a symbol so a.out tests will work.
* gas/i386/katmai.s: Likewise.
	* gas/i386/amd.d: Corresponding change.
	* gas/i386/katmai.d: Corresponding change.
1999-06-11 21:02:59 +00:00
Ian Lance Taylor
a7cd1c2299 * dwarf2dbg.h: Use PARAMS in function declarations. 1999-06-11 20:29:31 +00:00
Ian Lance Taylor
76171f81c7 1999-06-11 Martin Dorey <mdorey@madge.com>
* write.c (fixup_segment): Don't add symbol value for i960 ELF.
	* config/tc-i960.c (s_leafproc): Don't call tc_set_bal_of_cal if
	OBJ_ELF.
	(md_apply_fix): Simplify BFD_ASSEMBLER handling.
1999-06-11 19:03:06 +00:00
Ian Lance Taylor
5865bb778d * config/tc-i386.c (md_apply_fix3): Add default case to switch. 1999-06-10 21:47:35 +00:00
Ian Lance Taylor
9e7c96d9d0 * config/tc-sparc.c (md_pseudo_table): Remove pushsection and
popsection.
1999-06-10 21:45:36 +00:00
Ian Lance Taylor
1b50c71893 * config/tc-sparc.c (sparc_ip): Add default case to reloc switch. 1999-06-10 21:43:24 +00:00
Ian Lance Taylor
1bf67e0db8 * read.c (read_a_source_file): Only declare inescape if
QUOTES_IN_INSN.
1999-06-10 21:36:37 +00:00
Ian Lance Taylor
41e60a8210 * itbl-ops.c (itbl_disassemble): Change sprintf format strings to
match parameters.
	(find_entry_byval): Add parens to avoid warning.
1999-06-10 21:35:32 +00:00
Ian Lance Taylor
84be4d7117 * as.c: If HAVE_ITBL_CPU, include "itbl-ops.h". 1999-06-10 21:35:13 +00:00
Ian Lance Taylor
9b4d630bb9 * symbols.c (resolve_symbol_value): Don't permit subtraction of
undefined symbols.
1999-06-10 21:26:10 +00:00
Ian Lance Taylor
8ee99f93eb * gas/mips/sync.d: Pass -mips2 to the assembler.
* gas/mips/elf_e_flags.s: Tweak code so that the tests pass for
	mips-elf target as well as mips64-elf target.
	* gas/mips/elf_e_flags1.d: Corresponding changes.
	* gas/mips/elf_e_flags2.d: Likewise.
	* gas/mips/elf_e_flags3.d: Likewise.
	* gas/mips/elf_e_flags4.d: Likewise.
	* gas/elf/elf.exp: Add setup_xfail for mips*-*-*.
	* gas/all/itbl-test.c (main): Update itbl_get_reg_val call for new
	parameter.
1999-06-10 21:15:05 +00:00
Richard Henderson
a22b281cd7 Jakub Jelinek <jj@ultra.linux.cz>
* config/tc-sparc.c (sparc_ip): Don't use side-effect expression
        with isoctal.
        * config/tc-sparc.c (synthetize_setuw, synthetize_setsw,
        synthetize_setx): New functions.
        (md_assemble): Broken the special cases into the above
        functions. Make compiler happy if sizeof(bfd_vma)==4.
        Fix sethi generated from set/setuw. If instructions have a relloc,
        always clear the fields to be relocated in the opcode.
        (sparc_ip): Remove special_case global variable.
1999-06-10 21:11:39 +00:00
Richard Henderson
b3fb1136bf Jakub Jelinek <jj@ultra.linux.cz>
* gas/sparc/synth64.s: Add checks for single register signx/clruw.
        * gas/sparc/set64.s: Add tests for setuw and setsw synthetic insns.
        * gas/sparc/prefetch.d: Add -64 as switch.
        * gas/sparc/rdpr.d: Ditto.
        * gas/sparc/wrpr.d: Ditto.
        * gas/sparc/synth64.d: Ditto, reflect synth64.s changes.
        * gas/sparc/reloc64.d: Add -64 as switch, be more tolerant, as
        current gas outputs %hi(0) and not %hi(0x0).
        * gas/sparc/set64.d: Add -64 as switch, reflect set64.s changes and
        optimizations for setx instruction.
        * gas/sparc/sparc.exp: Do sparc64*-*-* checks if it is any of the
        compiled-in targets.
1999-06-10 21:08:10 +00:00
Ian Lance Taylor
d7ba4a779e Based on patches from John W. Woznack <jwoznack@concentric.net>:
* itbl-ops.c (itbl_get_reg_val): Add pval parameter.  Return
	indication of success rather than a value.
	(itbl_get_val): Likewise.
	(itbl_get_field): Use strcspn.  Change delimiters to include
	parens.
	* itbl-ops.h (itbl_get_reg_val): Update declaration.
	(itbl_get_val): Likewise.
	* config/tc-mips.c (mips_ip): Update call to itbl_get_reg_val.
1999-06-10 20:35:50 +00:00
Ian Lance Taylor
7f2f689c83 * symbols.c (copy_symbol_attributes): Convert local symbols to
regular symbols.
1999-06-10 14:45:58 +00:00
Richard Henderson
18452d405c * gas/macros/irp.s: Use foo' and bar' instead of r' and s'.
* gas/macros/rept.s, gas/macros/test2.s, gas/macros/test3.s: Likewise.
        * gas/macros/{irp,rept,test2,test3}.d: Update.
1999-06-10 13:48:44 +00:00
Nick Clifton
c1d3c45e14 Add support for ARM920 and ARM920t 1999-06-10 01:59:33 +00:00
Richard Henderson
eb858bb431 Typo. 1999-06-07 12:54:17 +00:00
Richard Henderson
63fab58c7d Jakub Jelinek <jj@ultra.linux.cz>
* config/tc-sparc.c (md_assemble): Fix up setx, support setsw.
        Optimize set if sizeof(bfd_vma) == 64.
        (sparc_ip): Fix sethi - without %hi() it should generate
        R_SPARC_32 reloc, not R_SPARC_HI22.
        (tc_gen_reloc): Handle BFD_RELOC_SPARC22.
1999-06-07 12:53:56 +00:00
Richard Henderson
cf9a13018b Jakub Jelinek <jj@ultra.linux.cz>
* config/tc-sparc.c (md_begin): Handle native wordsize aliases.
        (s_ncons): New function.
        (native_op_table): New table.
        (sparc_ip): Be more strict on %hi() etc.; prepare assembler for
        R_SPARC_OLO10 handling.
1999-06-07 12:40:36 +00:00
Richard Henderson
bf29b23178 * expr.h (struct expressionS): Revert last change; widen X_op.
* config/tc-alpha.c (md_begin): Check the field is wide enough.
1999-06-07 10:23:47 +00:00
Andreas Schwab
a4835b426a * Makefile.am (TARGET_CPU_CFILES): Add config/tc-fr30.c.
(TARGET_CPU_HFILES): Add config/tc-fr30.h.
	(TARG_ENV_HFILES): Add config/te-epoc-pe.h.
	* Makefile.in: Regenerated.
1999-06-07 02:58:53 +00:00
Andreas Schwab
9be1cda6a5 * config/obj-elf.c (obj_elf_common): In MRI mode if called as
`common' pass on to s_mri_common.
	(elf_pseudo_table): Pass 1 to obj_elf_common for `common'.
1999-06-07 02:28:54 +00:00
Richard Henderson
623356292c * config/obj-elf.c (obj_elf_section): Don't free the return
value of demand_copy_C_string.
1999-06-06 00:09:50 +00:00
Richard Henderson
9de8d8f184 * dwarf2dbg.c (dwarf2_gen_line_info): Mirror the section symbol
creation logic from obj_elf_create_section.
        * config/obj-elf.c (elf_pseudo_tab): Add pushsection/popsection.
        (section_stack): New.
        (special_sections): Make const.
        (obj_elf_section): Gut and rewrite parsing.
        (obj_elf_change_section): New function broken out of obj_elf_section.
        (obj_elf_parse_section_letters): Likewise.
        (obj_elf_section_word): Likewise.
        (obj_elf_section_type): Likewise.
        (obj_elf_previous): Treat as a toggle.
        (obj_elf_popsection): New.
        * config/tc-ppc.c (ppc_section_word): Take str+len not ptr_str.
        (ppc_section_type): Likewise.
        * config/tc-ppc.h: Likewise.
        * expr.h (struct expressionS): Don't make X_op a bitfield.
        * config/tc-alpha.c: Update for symbol handling changes.
        (md_apply_fix) [case GPREL]: Use now_seg instead of absolute_section.
        (load_expression, emit_ir_load, emit_loadstore, emit_jsrjmp): Likewise.
1999-06-05 23:15:34 +00:00
Richard Henderson
9894490542 * gas/elf/elf.exp: New directory.
* gas/elf/section0.[sd]: New test.
        * gas/elf/section1.[sd]: New test.
1999-06-05 23:14:42 +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
Ian Lance Taylor
993142d5a4 1999-06-04 Mark Klein <mklein@dis.com>
* config/tc-hppa.c (md_begin): Convert local symbol dummy_symbol
	to real if OBJ_SOM
	(tc_gen_reloc): Still need bfd_abs_symbol in some relocs.
1999-06-04 21:08:54 +00:00
Ian Lance Taylor
398e8c258a 1999-06-04 Mark Klein <mklein@dis.com>
* config/tc-hppa.c: Update for symbol handling changes.
1999-06-04 10:46:25 +00:00
Nick Clifton
5164c3826e Update to match current gas,bfd and opcodes. 1999-06-04 07:12:40 +00:00
Ian Lance Taylor
080e41e66b * cgen.c: Update for symbol handling changes. 1999-06-03 12:51:21 +00:00
Ian Lance Taylor
f412ead8f6 * config/tc-m32r.c: Update for symbol handling changes. 1999-06-03 12:46:26 +00:00
Ian Lance Taylor
a0f75b47e9 * config/tc-hppa.h: Update for symbol handling changes.
* config/tc-hppa.c: Likewise.
1999-06-03 12:42:36 +00:00
Ian Lance Taylor
174419c123 * config/tc-arm.h: Update for symbol handling changes.
* config/tc-arm.c: Likewise.
	(symbol_make_empty): Remove.  Just use symbol_create.
1999-06-03 09:50:01 +00:00
Ian Lance Taylor
bf27257ea6 * symbols.c (symbol_set_tc): Correct name. 1999-06-03 09:49:04 +00:00
Ian Lance Taylor
6104f0a06c * Makefile.am: Rebuild dependencies.
($(OBJS)): Don't depend upon struc-symbol.h.
	(.dep1, .tcdep, .objdep): Create itbl-parse.h.
	* dep-in.sed: Don't remove struc-symbol.h.
	* Makefile.in: Rebuild.
1999-06-03 09:06:24 +00:00
Ian Lance Taylor
b401371382 * doc/internals.texi (Symbols): Describe changes in symbol
handling.
1999-06-03 08:44:04 +00:00
Richard Henderson
ac50fedaa4 Update. 1999-06-03 03:20:40 +00:00
Richard Henderson
6576f0b52a * dwarf2dbg.c (dwarf2_gen_line_info): Use section_symbol
instead of doing the work by hand.
1999-06-03 03:20:21 +00:00
Richard Henderson
fac0d250c7 * as.c (parse_args): Add option -gdwarf2 to allow requesting
DWARF2 debug info (line information only, at this point).
        * as.h: Update comment about supported debug formats.
        * dwarf2dbg.c, dwarf2dbg.h: New files.
        * Makefile.am (GAS_CFILES, HFILES, GENERIC_OBJS): Add them.
1999-06-03 02:51:53 +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
Richard Henderson
1c32af2255 * read.c (read_a_source_file): Conditionally allow matched "
in lines passed to md_assemble.
1999-06-03 02:51:09 +00:00
Richard Henderson
86eab3efc4 * config/obj-elf.c (elf_pseudo_table): Add `common'. 1999-06-03 02:50:51 +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
Ian Lance Taylor
2b47531bf9 * app.c (input_buffer): New static variable.
(app_push): Save saved_input in allocated buffer.
	(app_pop): Restored saved_input.
	(do_scrub_chars): Change get parameter to take char * and int as
	arguments.  Change GET macro to pass input_buffer to get
	function.  Don't save input into allocated buffer.
	* as.h (do_scrub_chars): Update declaration.
	* input-file.c (input_file_get): Change to take char * and int.
	Read data into passed in buffer.  Remove static buffer.
	* read.c (scrub_from_string): Change to take char * and int.  Copy
	data into passed in buffer.
1999-06-03 00:24:14 +00:00
Ian Lance Taylor
1af6dcd2bb * gasp.c (chunksize): New variable.
* macro.c (macro_expand_body): Call hash_jam with NULL rather than
	hash_delete
.CVS: ----------------------------------------------------------------------
1999-06-03 00:23:27 +00:00
Ian Lance Taylor
54d22525bb * hash.h: Neaten. Declare hash_traverse.
* hash.c: Complete rewrite based on BFD hashing code.
1999-06-02 23:22:50 +00:00