Ian Lance Taylor [Sun, 13 Jun 1999 19:38:06 +0000 (19:38 +0000)]
* cg_dfn.c: Include "libiberty.h"
(DFN_INCR_DEPTH): Define instead of DFN_DEPTH.
(dfn_stack): Define as pointer rather than array.
(pre_visit): Reallocate dfn_stack as needed.
Ian Lance Taylor [Sun, 13 Jun 1999 19:02:25 +0000 (19:02 +0000)]
* objdump.c (disassemble_bytes): If the disassembler returns an
error, print out anything it may have printed to the buffer. From
H.J. Lu <hjl@gnu.org>.
Ian Lance Taylor [Sun, 13 Jun 1999 17:04:42 +0000 (17:04 +0000)]
Rework last checkin to the following:
* i386-dis.c (FWAIT_OPCODE): Define.
(used_prefixes): New static variable.
(fetch_data): Don't print an error message if we have already
fetched some bytes successfully.
(ckprefix): Clear used_prefixes. Use FWAIT_OPCODE, not 0x9b.
(prefix_name): New static function.
(print_insn_i386): If setjmp fails, indicating a data error, but
we have managed to fetch some bytes, print the first one as a
prefix or a .byte pseudo-op. If fwait is followed by a non
floating point instruction, print the first prefix. Set
used_prefixes when prefixes are used. If any prefixes were not
used after disassembling the instruction, print the first prefix
instead of printing the instruction.
(putop): Set used_prefixes when prefixes are used.
(append_seg, OP_E, OP_G, OP_REG, OP_I, OP_sI, OP_J): Likewise.
(OP_DIR, OP_SIMD_Suffix): Likewise.
Mark Mitchell [Sun, 13 Jun 1999 14:49:51 +0000 (14:49 +0000)]
* elf-bfd.h (_bfd_elf_link_adjust_dynindx): New function.
* elflink.c (_bfd_elf_link_adjust_dynindx): Define it.
* elflink.h (elf_link_remove_section_and_adjust_dynindices): New
function.
(bfd_elf_size_dynamic_sections): Use it.
Ian Lance Taylor [Sun, 13 Jun 1999 13:56:26 +0000 (13:56 +0000)]
* i386-dis.c (FWAIT_OPCODE): Define.
(fetch_data): Don't print an error message if we have already
found an fwait prefix.
(ckprefix): Use FWAIT_OPCODE rather than 0x9b.
(print_insn_i386): If setjmp fails, indicating a data error, but
we have found an fwait prefix, then print it as an fwait
instruction. In any case, return the number of bytes consumed, if
any, rather than always returning -1.
Ian Lance Taylor [Sun, 13 Jun 1999 10:16:43 +0000 (10:16 +0000)]
* defparse.y (explist): Remove separate expline to eliminate
shift/reduce conflict.
From Kai-Uwe Rommel <rommel@ars.de>:
* defparse.y: Add tokens NONSHARED, SINGLE, MULTIPLE,
INITINSTANCE, INITGLOBAL, TERMINSTANCE, and TERMGLOBAL.
(command): Add option_list after LIBRARY.
(attr): Accept and ignore NONSHARED, SINGLE, and MULTIPLE.
(option_list, option): New nonterminals.
* deflex.l: Recognize NONSHARED, SINGLE, MULTIPLE, INITINSTANCE,
INITGLOBAL, TERMINSTANCE, and TERMGLOBAL.
Ian Lance Taylor [Sun, 13 Jun 1999 09:23:04 +0000 (09:23 +0000)]
1999-06-13 Alan Modra <alan@spri.levels.unisa.edu.au>
* elf32-i386.c (elf_howto_table): Change R_386_PC8 from
complain_overflow_bitfield to complain_overflow_signed.
Ian Lance Taylor [Sat, 12 Jun 1999 22:40:18 +0000 (22:40 +0000)]
* ld-checks/asm.s: Use a symbol name for .lcomm.
* ld-checks/checks.exp: Use different names for the two tests.
Don't add extra text when invoking fail.
Ian Lance Taylor [Sat, 12 Jun 1999 22:15:51 +0000 (22:15 +0000)]
* write.c (adjust_reloc_syms): Rather than never reducing reloc
which refer to symbols in linkonce sections, permit reducing the
relocs if the symbol is local.
Ian Lance Taylor [Sat, 12 Jun 1999 21:24:56 +0000 (21:24 +0000)]
This fixes ! to work as documented in a memory region attribute list.
From Thomas Zenker <thz@lennartz-electronic.de>:
* ldgram.y (attributes_opt): Use attributes_list instead of NAME.
(attributes_list, attributes_string): New nonterminals.
* ldlang.c (lang_set_flags): Add invert parameter. Don't handle
'!'.
* ldlang.c (lang_set_flags): Update declaration.
Ian Lance Taylor [Sat, 12 Jun 1999 14:00:03 +0000 (14:00 +0000)]
* emultempl/pe.em (gld_${EMULATION_NAME}_after_parse): Don't add
entry_symbol as an undefined symbol when doing a relocateable
link. From <jeffdb@goodnet.com>.
Ian Lance Taylor [Sat, 12 Jun 1999 13:30:24 +0000 (13:30 +0000)]
* readelf.c (get_elf_class): Use correct printf format for type.
(get_data_encoding): Likewise.
(get_osabi_name): Likewise.
(process_file_header): Don't pass an extra argument to printf.
(process_dynamic_segment): Cast dynamic_size to long before
printing.
(decode_location_expression): Cast byte_get to long before
printing.
Ian Lance Taylor [Fri, 11 Jun 1999 21:07:46 +0000 (21:07 +0000)]
* 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.
Ian Lance Taylor [Fri, 11 Jun 1999 21:06:44 +0000 (21:06 +0000)]
* 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.
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.