Ian Lance Taylor [Fri, 11 Jun 1999 19:03:06 +0000 (19:03 +0000)]
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.
Ian Lance Taylor [Thu, 10 Jun 1999 21:15:05 +0000 (21:15 +0000)]
* 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.
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.
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.
Ian Lance Taylor [Thu, 10 Jun 1999 20:35:50 +0000 (20:35 +0000)]
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.
* 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.
Andreas Schwab [Wed, 9 Jun 1999 02:44:17 +0000 (02:44 +0000)]
* readelf.c (dump_section): Cast bfd_vma values to [unsigned] long
for printing, in case it is wider than long.
(display_block): Likewise.
(read_and_display_attr): Likewise.
(decode_location_expression): Likewise. Don't depend on
evaluation order.
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.
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.
Andreas Schwab [Mon, 7 Jun 1999 02:28:54 +0000 (02:28 +0000)]
* 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'.
* 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.
* 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-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.
Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* elf32-ppc.c (ppc_elf_relocate_section): Don't barf on out of
range undefweak symbols.
* hash.c: Add missing comma after @xref{}
* linker.c: Likewise.
* 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.
David Mosberger <davidm@hpl.hp.com>
* dwarf2.c (struct line_info): Add member END_SEQUENCE to keep
track of end_sequence markers.
(add_line_info): Add END_SEQUENCE arg.
(decode_line_info): Don't try to infer lo_pc and hi_pc from the
debug-line info---it doesn't work right if a compilation unit
consists of multiple discontiguous code-sequences. It would be
worthwhile to optimize for the common case where a compilation
unit results in a contiguous set of code sequences, but this is
quite tricky to get right for arbitrary DWARF2 files.
(lookup_address_in_line_info_table): Don't use the last line entry
for a compilation unit for anything with an address higher than
this line entry. Also, check for end_sequence markers to
correctly handle discontinuities.
(_bfd_dwarf2_find_nearest_line): When checking previously loaded
compilation units, check all compilation units with each->high==0
just like when reading compilation units.
* dwarf2.c (decode_line_info): Initialize table->files and
table->last_line to NULL to avoid segfaults due to random
values in these members.
(concat_filename): Check for out-of-range file number before
indexing filename table. Segfaults suck.
* dwarf2.c (decode_line_info): Don't truncate address to least
significant 32 bits (breaks 64 bit targets).
(lookup_address_in_function_table): Ditto.
(comp_unit_contains_address): Ditto.
* 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.
* gasp.c (chunksize): New variable.
* macro.c (macro_expand_body): Call hash_jam with NULL rather than
hash_delete
.CVS: ----------------------------------------------------------------------
Mark Mitchell [Wed, 2 Jun 1999 18:16:48 +0000 (18:16 +0000)]
* elf32-mips.c (elf_mips_howto_table): Add R_MIPS_JALR.
* elf64-mips.c (mips_elf64_howto_table_rel): Likewise.
(mips_elf64_howto_table_rela): Likewise.
* elfcode.h (elf_slurp_reloc_table_from_section): New function,
split out from ...
(elf_slurp_reloc_table): Here. Use it to handle the case where a
single section has two associated relocation sections.