* config/tc-sparc.c (log2): New static function.
(s_reserve): Use log2 to convert alignment before calling
record_alignment.
(s_common): Use log2 to convert alignment before calling
record_alignment and frag_align.
(sparc_cons_align): Use log2.
* elf32-m68k.c (elf_m68k_check_relocs): Also reference count
R_68K_PCxx and R_68K_xx relocations. Make sure that
ELF_LINK_HASH_NEEDS_PLT is always set for a PLT reloc reference.
(elf_m68k_gc_sweep_hook): Also reference count R_68K_PCxx and
R_68K_xx relocations.
(elf_m68k_adjust_dynamic_symbol): Reset the plt offset of a symbol
that has no plt entry.
(elf_m68k_relocate_section): Ignore the plt offset in a static
link.
* elflink.h (elf_adjust_dynamic_symbol): Reset the plt offset for
an ignored symbol.
(elf_gc_common_finalize_got_offsets): Set the got offsets also in
a static link.
* elf32-m68k.c (R_68K_GNU_VTINHERIT, R_68K_GNU_VTENTRY): New reloc
types.
(howto_table, reloc_map): Add entries for them.
(elf_m68k_check_relocs): Handle them. Implement reference
counting for got and plt entries.
(elf_m68k_gc_mark_hook, elf_m68k_gc_sweep_hook): New functions.
(elf_m68k_adjust_dynamic_symbol): Handle unreferenced plt
symbols.
(rtype_to_howto_rel, elf_info_to_howto_rel): Delete.
(elf_m68k_relocate_section): Handle the new reloc types.
(bfd_elf32_bfd_final_link, elf_backend_gc_mark_hook,
elf_backend_gc_sweep_hook, elf_backend_can_gc_sections): Define.
* elflink.h (elf_link_add_object_symbols): When creating an
indirect reference for symbol versioning also copy the plt
offset.
(elf_fix_symbol_flags): When clearing the ELF_LINK_HASH_NEEDS_PLT
flag also reset the plt offset.
(elf_link_assign_sym_version): Likewise.
(elf_gc_common_finalize_got_offsets): Increment the got offset by
the size of the entry in bytes.
(elf_gc_allocate_got_offsets): Likewise.
* i386-dis.c (ckprefix): Handle fwait specially only when it isn't
the first prefix.
(dofloat): Correct test for fnstsw. Print `fnstsw %ax' rather
than `fnstsw %eax'.
(OP_J): Remove unnecessary subtraction when 16-bit displacement
will be masked later.
* config/tc-i386.c (mode_from_disp_size): Change arg and return
type to unsigned int.
(md_assemble): Change type used to store offsets from unsigned
long to long.
(i386_operand): Switch error check to only call RESTORE_END_STRING
once after parse_register.
Ian Lance Taylor [Fri, 10 Jul 1998 20:31:44 +0000 (20:31 +0000)]
* ieee.c (ieee_slurp_external_symbols): Select an appropriate
section for an absolute symbol in a fully linked file. Based on
patch from Christian Holland <[email protected]>.
Ian Lance Taylor [Fri, 10 Jul 1998 20:19:22 +0000 (20:19 +0000)]
From Christian Holland <[email protected]>:
* ieee.c (parse_ieee): Initialize info.global_vars and
info.global_types.
(parse_ieee_atn): Ignore register lifetime information reportedly
emitted by MRI compiler.
Jeff Law [Thu, 9 Jul 1998 22:23:18 +0000 (22:23 +0000)]
* mn10300-tdep.c (mn10300_generic_register_names): New variable.
(set_machine_hook): New function. Copy the appropriate register
names into reg_names.
(_initialize_mn10300_tdep): Set up to call set_machine_hook.
* tm-mn10300 (NUM_REGS): Bump to 32.
(REGISTER_NAMES): Updated accordingly.
start-sanitize-am33
* mn10300-tdep.c (am33_register_names): New variable.
(mn10300_analyze_prologue): Handle regs saved by am33 prologues.
* tm-mn10300.h (E0_REGNUM): Define.
end-sanitize-am33
Jeff Law [Thu, 9 Jul 1998 19:41:47 +0000 (19:41 +0000)]
* am33.igen: Fix Z bit for remaining addc/subc instructions.
Do not sign extend immediate for mov imm,XRn.
More random mul, mac & div fixes.
Remove some unused variables.
Sign extend 24bit displacement in memory addresses.
Whee, more fixes.
Jeff Law [Thu, 9 Jul 1998 19:04:22 +0000 (19:04 +0000)]
* mn10300.igen: Fix Z bit for addc and subc instructions.
Minor fixes in multiply/divide patterns.
start-sanitize-am33
* am33.igen: Fix Z bit for addc Rm,Rn and subc Rm,Rn. Various
fixes to 2 register multiply, divide and mac instructions. Set
Z,N correctly for sat16. Sign extend 24 bit immediate for add,
and sub instructions.
Jeff Law [Thu, 9 Jul 1998 16:09:24 +0000 (16:09 +0000)]
* am33.igen: Add remaining non-DSP instructions.
Lots of work still remains. PSW handing is probably broken badly and the
mul/mac classes of instructions are probably not handled correctly.
Jeff Law [Wed, 8 Jul 1998 18:25:52 +0000 (18:25 +0000)]
* config/tc-mips.c (mips_ip, case 'i' and 'j'): Mask off high bits
for %lo expressions.
(mips_ip, case 'u'): Move range check after code to mask
off bits in %hi/%lo expressions. Mask off high bits for
%lo expressions.
pr16135
Andrew Cagney [Wed, 8 Jul 1998 08:00:36 +0000 (08:00 +0000)]
Add a printf fmt style version of sim_events_schedule.
This allows the caller to specify extra trace information that is
only evaluated when tracing is enabled.
Jeff Law [Wed, 8 Jul 1998 03:55:07 +0000 (03:55 +0000)]
* readelf.c (byte_get): Use PARAMS in prototype.
(error): Make it work with non-ANSI compilers.
(warn): Likewise.
(get_ver_flags): Don't use an ANSI prototype in the definition.
* Makefile.am (ldver.texi): New target.
(ld.info, ld.dvi): Depend upon ldver.texi.
* ld.texinfo: Include ldver.texi. Mention version number on title
page and in top node.
* Makefile.in: Rebuild.
* doc/Makefile.am (gasver.texi): New target.
(as.info, as.dvi): Depends upon gasver.texi.
* doc/as.texinfo: Include gasver.texi. Mention version number on
title page and in top node.
* doc/Makefile.in: Rebuild.
* listing.c (listing_listing): For EDICT_LIST, skip all lines up to
but not including the line containing the edict.
* listing.h (LISTING_EOF): New.
* input-scrub.c (input_scrub_next_buffer): Call it.
* objcopy.c (filter_bytes): Set size correctly if the size of the
section is not an even multiple of the interleave. Based on patch
from Brion Stone <[email protected]>.
* config/tc-i386.c (space_chars): Remove. The scrubber converts
sequences of whitespace to a single space.
(is_space_chars): Just compare with space.
(md_begin): Don't initialize space_chars.
(md_assemble): Just skip a single whitespace character.
(i386_operand): Rewrite base-index parsing to use new
parse_register, and to skip white space. Skip white space in a
number of other places too. Don't give error message if
parse_register fails.
(parse_register): Change reg_string parameter to be non-const.
Add end_op parameter. Skip white space after the `%', and return
end of register string. Give error message here rather than
caller.
* scripttempl/pe.sc: Use SORT to sort sections appropriately.
* emultempl/pe.em (sort_by_file_name): Remove.
(sort_by_section_name): Remove.
(sort_sections_1, sort_sections): Remove.
(gld_${EMULATION_NAME}_before_allocation): Don't call
sort_sections.
(hold_section, hold_section_name): New static variables.
(hold_use, hold_text, hold_rdata, hold_data, hold_bss): Likewise.
(gld_${EMULATION_NAME}_place_orphan): Rewrite. Look for a good
place to put the section. Align the section. Sort the input
sections by name.
(gld_${EMULATION_NAME}_place_section): New static function.
* emultempl/pe.em (set_pe_subsystem): Don't call
ldlang_add_undef.
(gld_${EMULATION_NAME}_after_parse): New static function.
(ld_${EMULATION_NAME}_emulation): Use new after_parse function
rather than after_parse_default.
* ldgram.y (extern_name_list): Do not require symbols to be
separated by commas.
(ifile_p1): Add EXTERN.
* ldlex.l: Accept EXTERN in BOTH and SCRIPT mode as well as MRI
mode.
* ld.texinfo (Options): Mention that EXTERN is equivalent to -u.
(Miscellaneous Commands): Document EXTERN.
* elf.c (copy_private_bfd_data): Only set phdr_included oncde for
a PT_LOAD segment, rather than only setting it once for the entire
file.
* elf.c (_bfd_elf_make_section_from_shdr): When setting the LMA,
rather than ignoring every phdr with a p_paddr of 0, ignore all
the phdrs if they all have a p_paddr of 0.
Brought over from sh4-980527-branch:
Fix for execute/va-arg-5.c -Os -mrelax -m4-single failure:
* coff-sh.c (sh_insn_uses_freg): Ignore lowest bit of register number.
Brought over from sh4-980527-branch:
Fix for execute/921208-1.c -Os -mrelax -m4-single failure:
* coff-sh.c (sh_insns_conflict): Load of fpscr conflicts with
floating point operations.
* cgen-sim.h (CPU_SCACHE): Make size unsigned.
(CPU_SCACHE_HASH_MASK): New macro.
(SCACHE_HASH_PC): Rewrite.
* genmloop.sh (engine_resume_{full,fast}): Move some of hash
computation out of main loop.
* obj-vms.c: Add C++ support with ctors/dtors sections. Add weak
symbol definitions.
(Ctors_Symbols, Dtors_Symbols): New symbol chains.
(ps_CTORS, ps_DTORS): New section types.
(vms_fixup_xtors_section): New function
(Ctors_Psect, Dtors_Psect): Define.
(IS_GXX_XTOR): Define
(global_symbol_directory): Change check of gxx_bug_fixed to 0.
Filter static constructors/destructors and add to
Ctors_Symbols/Dtors_Symbols chain.
(vms_write_object_file): Write Ctors_Symbols/Dtors_Symbols to
appropriate section.
Dawn Perchik [Thu, 2 Jul 1998 17:30:20 +0000 (17:30 +0000)]
* mdebugread.c (parse_partial_symbols): Go ahead and read the .mdebug
section, but just don't add a 2nd minimal symbol if this is an .mdebug
section in an ELF file.
* stabs.c (parse_stab_range_type): Handle 4 and 8 byte signed
integers with real upper bounds. Handle a lower bound one larger
than the upper bound as a signed integer. Handle 8 byte signed
integers.
(stab_demangle_template): Optionally return the demangled name of
the template.
(stab_demangle_qualified): Treat a template name as a tagged
type.
(stab_demangle_fund_type): Likewise.