2006-12-13  Paul Brook  <paul@codesourcery.com>

	Backport from mainline.
	gas/
	* config/tc-arm.c (arm_arch_option_table): Add v7-{a,r,m}.
	* doc/c-arm.texi: Fix spelling of ARMv7 profile variants.

2006-12-01  Paul Brook  <paul@codesourcery.com>

	Backport from mainline.
	gas/
	* config/tc-arm.c (arm_force_relocation): Return 1 for relocs against
	function symbols.

	gas/testsuite/
	* gas/arm/thumbrel.s: New test.
	* gas/arm/thumbrel.d: New test.

2006-12-01  Kazu Hirata  <kazu@codesourcery.com>

	bfd/
	* bfd-in2.h: Regenerate.

2006-11-30  Kazu Hirata  <kazu@codesourcery.com>

	bfd/
	* archures.c (bfd_mach_cpu32_fido): New.
	(bfd_mach_mcf_isa_a_nodiv, bfd_mach_mcf_isa_a,
	bfd_mach_mcf_isa_a_mac, bfd_mach_mcf_isa_a_emac,
	bfd_mach_mcf_isa_aplus, bfd_mach_mcf_isa_aplus_mac,
	bfd_mach_mcf_isa_aplus_emac, bfd_mach_mcf_isa_b_nousp,
	bfd_mach_mcf_isa_b_nousp_mac, bfd_mach_mcf_isa_b_nousp_emac,
	bfd_mach_mcf_isa_b, bfd_mach_mcf_isa_b_mac,
	bfd_mach_mcf_isa_b_emac, bfd_mach_mcf_isa_b_float,
	bfd_mach_mcf_isa_b_float_mac, bfd_mach_mcf_isa_b_float_emac):
	Increment the defined values.
	* cpu-m68k.c (arch_info_struct): Add en entry for
	bfd_mach_cpu32_fido.
	(m68k_arch_features): Add an entry corresponding to
	bfd_mach_cpu32_fido.
	(bfd_m68k_compatible): Handle bfd_mach_cpu32_fido.
	* elf32-m68k.c (elf32_m68k_object_p): Handle
	EF_M68K_CPU32_FIDO_A.
	(elf32_m68k_merge_private_bfd_data): Use EF_M68K_CPU32_MASK.
	(elf32_m68k_print_private_bfd_data): Handle
	EF_M68K_CPU32_FIDO_A.

	binutils/
	* readelf.c (get_machine_flags): Handle EF_M68K_CPU32_FIDO_A.

	gas/
	* config/tc-m68k.c (m68k_elf_final_processing): Handle
	EF_M68K_CPU32_FIDO_A.

	include/
	* include/elf/m68k.h (EF_M68K_CPU32_FIDO_A,
	EF_M68K_CPU32_MASK): New.

2006-11-29  Daniel Jacobowitz  <dan@codesourcery.com>

	Backport:
	2006-05-02  James E Wilson  <wilson@specifix.com>
	* gprof.c (main): When setting default output_style, add separate
	checks for INPUT_HISTOGRAM and INPUT_CALL_GRAPH.

2006-11-29  Mark Shinwell  <shinwell@codesourcery.com>

	Backport from mainline:

	2006-07-29  Richard Sandiford  <richard@codesourcery.com>

	ld/
	* Makefile.am (eelf32b4300.c): Update dependencies.
	(eelf32bmip.c): Likewise.
	(eelf32bsmip.c): Likewise.
	(eelf32btsmip.c): Likewise.
	(eelf32btsmipn32.c): Likewise.
	(eelf32ltsmip.c): Likewise.
	(eelf32ltsmipn32.c): Likewise.
	(eelf32ebmip.c): Likewise.
	(eelf32ebmipvxworks.c): Likewise.
	(eelf32elmip.c): Likewise.
	(eelf32elmipvxworks.c): Likewise.
	(eelf32bmipn32.c): Likewise.
	(eelf32lmip.c): Likewise.
	(eelf32mipswindiss.c): Likewise.
	(eelf32lsmip.c): Likewise.
	(eelf64bmip.c): Likewise.
	(eelf64btsmip.c): Likewise.
	(eelf64ltsmip.c): Likewise.
	(emipsbig.c): Likewise.  Canonicalize ${GENSCRIPTS} line.
	(emipsbsd.c): Likewise.
	(emipsidt.c): Update dependencies.
	(emipsidtl.c): Likewise.
	(emipslit.c): Likewise.
	(emipslnews.c): Likewise.
	(emipspe.c): Likewise.  Fix ${GENSCRIPTS} invocation.
	* Makefile.in: Regenerate.
	* emulparams/elf32bmip.sh (EXTRA_EM_FILE): Define.
	* emulparams/elf32bmipn32-defs.sh (EXTRA_EM_FILE): Likewise.
	* emultempl/irix.em: Include emultempl/mipself.em.
	* emultempl/mipself.em: New file.

	ld/testsuite/
	* ld-mips-elf/hash1.s, ld-mips-elf/hash1a.d,
	* ld-mips-elf/hash1b.d, ld-mips-elf/hash1c.d: New tests.
	* ld-mips-elf/mips-elf.exp: Run them.

	2006-07-14  Jakub Jelinek  <jakub@redhat.com>

	* elflink.c (bfd_elf_size_dynsym_hash_dynstr): Fix cinfo.shift2 value.

	2006-07-10  Jakub Jelinek  <jakub@redhat.com>

	include/
	* bfdlink.h (struct bfd_link_info): Add emit_hash and
	emit_gnu_hash bitfields.

	include/elf/
	* common.h (SHT_GNU_HASH, DT_GNU_HASH): Define.

	ld/
	* scripttempl/elf.sc: Add .gnu.hash section.
	* emultempl/elf32.em (OPTION_HASH_STYLE): Define.
	(gld${EMULATION_NAME}_add_options): Register --hash-style option.
	(gld${EMULATION_NAME}_handle_option): Handle it.
	(gld${EMULATION_NAME}_list_options): Document it.
	* ldmain.c (main): Initialize emit_hash and emit_gnu_hash.
	* ld.texinfo: Document --hash-style option.

	ld/testsuite/
	* ld-powerpc/tlsso32.r: Adjust.
	* ld-powerpc/tlsso32.d: Adjust.
	* ld-powerpc/tlsso32.g: Adjust.
	* ld-powerpc/tlsso.r: Adjust.
	* ld-powerpc/tlsso.g: Adjust.
	* ld-powerpc/tlstocso.g: Adjust.

	bfd/
	* elf.c (_bfd_elf_print_private_bfd_data): Handle DT_GNU_HASH.
	(bfd_section_from_shdr, elf_fake_sections, assign_section_numbers):
	Handle SHT_GNU_HASH.
	(special_sections_g): Include .gnu.hash section.
	(bfd_elf_gnu_hash): New function.
	* elf-bfd.h (bfd_elf_gnu_hash, _bfd_elf_hash_symbol): New prototypes.
	(struct elf_backend_data): Add elf_hash_symbol method.
	* elflink.c (_bfd_elf_link_create_dynamic_sections): Create .hash
	only if info->emit_hash, create .gnu.hash section if
	info->emit_gnu_hash.
	(struct collect_gnu_hash_codes): New type.
	(elf_collect_gnu_hash_codes, elf_renumber_gnu_hash_syms,
	_bfd_elf_hash_symbol): New functions.
	(compute_bucket_count): Don't compute HASHCODES array, instead add
	that and NSYMS as arguments.  Use bed->s->sizeof_hash_entry
	instead of bed->s->arch_size / 8.  Fix .hash size estimation.
	When not optimizing, use the number of hashed symbols rather than
	dynsymcount.
	(bfd_elf_size_dynamic_sections): Only add DT_HASH if info->emit_hash,
	and ADD DT_GNU_HASH if info->emit_gnu_hash.
	(bfd_elf_size_dynsym_hash_dynstr): Size .hash only if info->emit_hash,
	adjust compute_bucket_count caller.  Create and populate .gnu.hash
	section if info->emit_gnu_hash.
	(elf_link_output_extsym): Only populate .hash section if
	finfo->hash_sec != NULL.
	(bfd_elf_final_link): Adjust assertion.  Handle DT_GNU_HASH.
	* elfxx-target.h (elf_backend_hash_symbol): Define if not yet defined.
	(elfNN_bed): Add elf_backend_hash_symbol.
	* elf64-x86-64.c (elf64_x86_64_hash_symbol): New function.
	(elf_backend_hash_symbol): Define.
	* elf32-i386.c (elf_i386_hash_symbol): New function.
	(elf_backend_hash_symbol): Define.

	binutils/
	* readelf.c (get_dynamic_type): Handle DT_GNU_HASH.
	(get_section_type_name): Handle SHT_GNU_HASH.
	(dynamic_info_DT_GNU_HASH): New variable.
	(process_dynamic_section): Handle DT_GNU_HASH.
	(process_symbol_table): Print also DT_GNU_HASH histogram.

2006-11-29  Kazu Hirata  <kazu@codesourcery.com>

	bfd/
	* elf32-m68k.c (elf32_m68k_object_p): Treat the default case
	as ColdFire.
	(elf32_m68k_merge_private_bfd_data): Use EF_M68K_ARCH_MASK to
	extract architecture mask.  Treat the default case as ColdFire.

	binutils/
	* readelf.c (get_machine_flags): Treat the default case as
	ColdFire.

2006-11-28  Kazu Hirata  <kazu@codesourcery.com>

	bfd/
	* elf32-m68k.c (elf32_m68k_object_p,
	elf32_m68k_print_private_bfd_data): Use EF_M68K_ARCH_MASK to
	extract architecture mask.

	binutils/
	* readelf.c (get_machine_flags): Use EF_M68K_ARCH_MASK to
	extract architecture mask.

	include/elf/
	* m68k.h (EF_M68K_ARCH_MASK): New.

2006-11-19  Nathan Sidwell  <nathan@codesourcery.com>

	opcodes/
	* m68k-opc.c (m68k_opcodes):   Add tpf coldfire instruction as
	alias for trapf. (missed on 2006-11-16 checkin).

2006-11-17  Kazu Hirata  <kazu@codesourcery.com>

	bfd/
	* elf32-m68k.c: Update uses of EF_M68K_*.

	binutils/
	* readelf.c: Update uses of EF_M68K_*.

	gas/
	* config/tc-m68k.c: Update uses of EF_M68K_*.

	include/elf
	* m68k.h (EF_M68K_ISA_MASK, EF_M68K_ISA_A_NODIV,
	EF_M68K_ISA_A, EF_M68K_ISA_A_PLUS, EF_M68K_ISA_B_NOUSP,
	EF_M68K_ISA_B, EF_M68K_ISA_C, EF_M68K_MAC_MASK, EF_M68K_MAC,
	EF_M68K_EMAC, EF_M68K_EMAC_B, EF_M68K_FLOAT): Rename to
	EF_M68K_CF_ISA_MASK, EF_M68K_CF_ISA_A_NODIV, EF_M68K_CF_ISA_A,
	EF_M68K_CF_ISA_A_PLUS, EF_M68K_CF_ISA_B_NOUSP,
	EF_M68K_CF_ISA_B, EF_M68K_CF_ISA_C, EF_M68K_CF_MAC_MASK,
	EF_M68K_CF_MAC, EF_M68K_CF_EMAC, EF_M68K_CF_EMAC_B,
	EF_M68K_CF_FLOAT, respectively.

2006-11-16  Nathan Sidwell  <nathan@codesourcery.com>

	gas/testuite/
	* gas/m68k/all.exp: Add mcf-trap.
	* gas/m68k/mcf-trap.[sd]: New.

	opcodes/
	* m68k-opc.c (m68k_opcodes): Place trap instructions before set
	conditionals.

2006-11-10  Nathan Sidwell  <nathan@codesourcery.com>

	binutils/
	* Makefile.am (TOOL_PROGS): Set from @TOOL_PROGS@.
	(install-exec-local): Protect against TOOL_PROGS being empty.
	* configure.in (TOOL_PROGS): New, set it appropriately.
	* Makefile.in: Rebuilt.
	* configure: Rebuilt.

2006-11-08  Vladimir Prus  <vladimir@codesourcery.com>

	libiberty/
	* pex-win32.c (no_suffixes): Remove.
	(std_suffixes): Add "" as first element.
	(find_executable): Remove detection of already-present
	extension. Try all suffixes in std_suffixes.

2006-11-07  Vladimir Prus  <vladimir@codesourcery.com>  

	* testsuite/ld-elf/symbol2w.s: Use "%" instead
	of "@" to avoid breakage on ARM.

2006-11-06  Vladimir Prus  <vladimir@codesourcery.com>

	ld/testsuite	
	* ld-elf/symbol2ref.s: Use "dc.a" as opposed to ".long".

2006-11-04  Vladimir Prus  <vladimir@codesourcery.com>

	ld/
	* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
	Don't prepend "warning" to the message.

	ld/testsuite	
	* ld-elf/warn2.d: New.
	* ld-elf/symbol2w.s: New.
	* ld-elf/symbol2ref.s: New.	

2006-10-31  Mark Shinwell  <shinwell@codesourcery.com>

	gas/
	* config/tc-arm.c (do_t_czb): Rename to do_t_cbz.
	(insns): Adjust accordingly.
	(md_apply_fix): Alter comments to use CBZ instead of CZB.

2006-10-30  Paul Brook  <paul@codesourcery.com>

	bfd/
	* elf32-arm.c (elf32_arm_to_thumb_export_stub): Assert that output
	section is present.
	(allocate_dynrelocs): Only add export stub for symbols definind in
	this object.

2006-10-30  Kazu Hirata  <kazu@codesourcery.com>

	Merge fido bits:
	2006-10-25  Kazu Hirata  <kazu@codesourcery.com>

	gprof/
	* hist.c, hist.h: Fix formatting.

	gprof/
	* Makefile.in (corefile.o): Depend on hist.h.
	* corefile.c: Include hist.h.

	2006-10-06  Vladimir Prus  <vladimir@codesourcery.com>

	* hist.h (struct histogram)
	(histograms, num_histograms): New.
	* hist.c (find_histogram, find_histogram_for_pc)
	(read_histogram_header): New.
	(s_lowpc, s_highpc, lowpc, highpc, hist_num_bins)
	(hist_sample): Remove.
	(hist_read_rec): Use the above, and handle multiple
	histogram records with disjoint address ranges.
	(hist_write_hist): Support several histogram records.
	(scale_and_align_entries): Adjust for multiple histograms.
	(hist_assign_samples_1): New.
	(hist_assign_samples): Use the above.
	(hist_clip_symbol_address): New.
	* hist.h (hist_check_address)
	(hist_clip_symbol_address): Declare.
	* gmon_io.c (gmon_out_read, gmon_out_write): Adjust handling
	of legacy format for multiple histogram changes.
	* corefile.c (find_call): Check for core_text_space and
	clip symbol address range here.
	* vax.c	(vax_find_call): Don't check for
	core_text_space, or clip the symbol's address range here.
	Use hist_check_address to check call's target address.	
	* sparc.c: Likewise.
	* tahoe.c: Likewise.
	* i386.c: Likewise.
	* mips.c: Likewise. Also use core_text_sect->vma as the base
	address for code accesses, just like other machine-specific
	routines do.

	2006-08-03  Kazu Hirata  <kazu@codesourcery.com>

	* gas/config/tc-m68k.c (archs): Add -mfido as an alias for
	-mfido_a.

	2006-06-23  Kazu Hirata  <kazu@codesourcery.com>

	* gas/config/tc-m68k.c (cpu_of_arch): Replace fido with
	fido_a.
	(archs): Likewise.
	(m68k_ip): Likewise.
	(select_control_regs): Likewise.
	(md_show_usage): Replace -mfido with -mfidoa.
	* include/opcode/m68k.h (fido): Rename to fido_a.
	* opcodes/m68k-opc.c (m68k_opcodes): Replace fido with fido_a.

	2006-06-22  Kazu Hirata  <kazu@codesourcery.com>

	* config.sub: Replace fido with fido.
	* bfd/config.bfd: Likewise
	* gas/configure.tgt: Likewise.
	* gas/config/m68k-parse.h: Likewise.
	* gas/config/tc-m68k.c: Likewise.
	* gas/testsuite/gas/m68k/all.exp: Likewise.
	* gas/testsuite/gas/m68k/fido.d: Rename to fido.d.
	* gas/testsuite/gas/m68k/fido.s: Rename to fido.s.
	* include/opcode/m68k.h: Replace fido with fido.
	* ld/configure.tgt: Likewise.
	* opcodes/m68k-dis.c: Likewise.
	* opcodes/m68k-opc.c: Likewise.

	2005-08-01  Kazu Hirata  <kazu@codesourcery.com>

	* gas/config/m68k-parse.h (m68k_register): Add CAC and MBB.
	* gas/config/tc-m68k.c (fido_control_regs): New.
	(cpu_of_arch): Add fido.
	(archs): Add an entry for fido.
	(m68k_ip): Add warnings for uses of tbl[su]{n,}[bwl] on
	fido.  Recognize CAC and MBB.
	(init_tabl): Add CAC and MBB.
	(select_control_regs): Choose fido as the current chip
	when the current architecture is fido or when -mfido
	is given explicitly.
	* gas/testsuite/gas/m68k/all.exp: Disable operands, cas, and
	bitfield on fido-*-*.  Run fido on fido-*-*.
	* gas/testsuite/gas/m68k/fido.d: New.
	* gas/testsuite/gas/m68k/fido.s: Likewise.
	* include/opcode/m68k.h: Document new control registers CAC
	and MBB.
	* opcodes/m68k-dis.c (print_insn_arg): Add cac and mbb.
	* opcodes/m68k-opc.c (m68k_opcodes): Add sleep and trapx.

	2005-07-22  Kazu Hirata  <kazu@codesourcery.com>

	* gas/config/tc-m68k.c (archs): Add fido as an OR of
	cpu32 and fido.
	(md_show_usage): Add -mfido.
	* include/opcode/m68k.h (fido): New.

	2005-07-11  Kazu Hirata  <kazu@codesourcery.com>

	* config.sub: Recognize fido and fido-*.
	* bfd/config.bfd: Likewise.
	* gas/configure.tgt: Likewise.
	* ld/configure.tgt: Likewise.

2006-10-28  Paul Brook  <paul@codesourcery.com>
	Julian Brown  <julian@codesourcery.com>

	bfd/
	* elf32-arm.c (copy_eabi_attributes): Correct starting offset.
	(elf32_arm_merge_eabi_attributes): Mark output as initialized.
	Only set Tag_CPU_name and Tag_ABI_PCS_R9_use if input attribute
	is present.

2006-10-28  Kazu Hirata  <kazu@codesourcery.com>

	include/opcode/
	* m68k.h (mcfmac, mcfemac, cfloat, mcfhwdiv, mcfisa_a,
	mcfisa_aa, mcfisa_b, mcfusp, mcf_mask): Double the defined
	values.

2006-10-26  Paul Brook  <paul@codesourcery.com>

	gas/
	* config/tc-arm.c (do_neon_ext): Fix constraint.

2006-10-26  Paul Brook  <paul@codesourcery.com>

	gas/
	* config/tc-arm.c (arm_is_eabi): New function.
	* config/tc-arm.h (arm_is_eabi): New prototype.
	(THUMB_IS_FUNC): Use ELF function type for EABI objects.
	* doc/c-arm.texi (.thumb_func): Update documentation.

2006-10-26  Paul Brook  <paul@codesourcery.com>

	binutils/
	* objdump.c (disassemble_section): Set info->symtab_pos.
	(disassemble_data): Set info->symtab and info->symtab_size.

	include/
	* dis-asm.h (disassemble_info): Add symtab, symtab_pos and
	symtab_size.

	opcodes/
	* arm-dis.c (last_is_thumb, last_mapping_sym, last_mapping_addr): New.
	(get_sym_code_type): New function.
	(print_insn): Search for mapping symbols.

2006-10-26  Paul Brook  <paul@codesourcery.com>

	gas/
	* config/tc-arm.c (arm_adjust_symtab): Don't use STT_ARM_16BIT
	for EABIv4.

2006-10-26  Paul Brook  <paul@codesourcery.com>

	gas/
	* config/tc-arm.c (do_neon_ext): Enforce immediate range.
	(insns): Use I15 for vext.

	gas/testsute/
	* gas/arm/neon-cov.s: Add new vext test.
	* gas/arm/neon-cov.d: Ditto.

2006-10-25  Paul Brook  <paul@codesourcery.com>

	gas/
	* config/tc-arm.c (do_vfp_sp_const, do_vfp_dp_const): Fix operans
	encoding.

	gas/testsuite/
	* gas/arm/vfpv3-const-conv.s: Improve test coverage.
	* gas/arm/vfpv3-const-conv.d: Adjust expected output.
	* gas/arm/vfp-neon-syntax_t2.d: Ditto.
	* gas/arm/vfp-neon-syntax.d: Ditto.

	opcodes/
	* arm-dis.c (coprocessor_opcodes): Fix bitfields for fconstd/fconstd.

2006-10-24  Mark Shinwell  <shinwell@codesourcery.com>

	gas/
	* config/tc-arm.c (md_apply_fix): Turn CZB instructions that
	attempt to jump to the next instruction into NOPs.

2006-10-19  Joseph S. Myers  <joseph@codesourcery.com>
            Mark Mitchell  <mark@codesourcery.com>

	ld/
	* configure.tgt (arm*linux*): Support both big- and little-endian.

2006-10-16  Nathan Sidwell  <nathan@codesourcery.com>

	binutils/
	* Makefile.am: Rebuild dependencies.
	(REPORT_BUGS_TO): Always defined.
	(INCLUDES): Adjust.
	* Makefile.in: Rebuilt.
	* configure.in (REPORT_BUGS_TO): Provide default value.
	* configure: Rebuilt.
	* bucomm.h: Remove bin-bugs.h.
	* addr2line.c (usage): Don't print empty REPORT_BUGS_TO.
	* coffdump.c (show_usage): Likewise.
	* cxxfilt.c (usage): Likewise.
	* nlmconv.c (show_usage): Likewise.
	* nm.c (usage): Likewise.
	* objcopy.c (copy_usage, strip_usage): Likewise.
	* objdump.c (usage): Likewise.
	* size.c (usage): Likewise.
	* srconv.c (show_usage): Likewise.
	* string.c (usage): Likewise.
	* sysdymp.c (show_usage): Likewise.
	* windres.c (usage): Likewise.
	* readelf (usage): Likewise. Add STREAM argument.  Adjust callers.

	gas/
	* Makefile.am: Rebuild dependencies.
	(REPORT_BUGS_TO): Always defined.
	(INCLUDES): Adjust.
	* Makefile.in: Rebuilt.
	* configure.in (REPORT_BUGS_TO): Provide default value.
	* configure: Rebuilt.
	* as.c (show_usage): Don't print empty REPORT_BUGS_TO.
	* as.h: Remove bin-bugs.h.

	ld/
	* Makefile.am: Rebuild dependencies.
	(REPORT_BUGS_TO): Always defined.
	(INCLUDES): Adjust.
	* Makefile.in: Rebuilt.
	* configure.in (REPORT_BUGS_TO): Provide default value.
	* configure: Rebuilt.
	* ld.h: Remove bin-bugs.h
	* lexsup.c (help):  Don't print empty REPORT_BUGS_TO.

	gprof/
	* Makefile.am: Rebuild dependencies.
	(REPORT_BUGS_TO): Always defined.
	(PKGVERSION): Define.
	(INCLUDES): Adjust.
	* Makefile.in: Rebuilt.
	* configure.in (REPORT_BUGS_TO): Provide default value.
	* configure: Rebuilt.
	* gprof.c (usage): Don't print empty REPORT_BUGS_TO.
	* gprof.h: Remove bin-bugs.h

	include/
	* bin-bugs.h: Remove.

2006-10-16  Mark Shinwell  <shinwell@codesourcery.com>

	bfd/
	* elf32-arm.c (using_thumb2): Use TAG_CPU_* constants.

	include/
	* elf/arm.h: Define TAG_CPU_ARCH_* constants.

2006-10-13  Nathan Sidwell  <nathan@codesourcery.com>

	gas/
	* config/tc-m68k.c (m68k_ip):  Correct output of cpu aliases.

2006-10-03  Joseph Myers  <joseph@codesourcery.com>

	ld/
	* configure.tgt (i[3-7]86-*-linux-*): Also define
	targ_extra_libpath in want64 case.
	* emulparams/elf_x86_64.sh: Handle i[3-7]86-*-linux-* the same as
	x86_64*-linux*.

2006-09-29  Nathan Sidwell  <nathan@codesourcery.com>

	binutils/
	* ar.c (usage): Pass s to list_supported_targets.
	* cxxfilt.c (usage): Print bug url when giving help.

2006-09-28  Mark Shinwell  <shinwell@codesourcery.com>

	include/
	* libiberty.h: Declare pex_run_in_environment.

	libiberty/  
	* pex-common.c: New function pex_run_in_environment.
	* pex-common.h: Add environment parameter to exec_child.
	* pex-msdos.c: Add environment parameter to pex_msdos_exec_child.
	* pex-djgpp.c: Add environment parameter to pex_djgpp_exec_child.
	(pex_djgpp_exec_child): Pass environment to child process.
	* pex-unix.c: Add environment parameter to pex_unix_exec_child.
	(pex_unix_exec_child): Pass environment to child process.
	* pex-win32.c: Add environment parameter to pex_win32_exec_child.
	New function env_compare for comparing VAR=VALUE pairs.
	(win32_spawn): Assemble environment block and pass to CreateProcess.
	(spawn_script): Pass environment through to win32_spawn.
	(pex_win32_exec_child): Pass environment through to spawn_script and
	win32_spawn.
	* functions.texi: Regenerate.
	* pexecute.txh: Document pex_run_in_environment.

2006-09-19  Mark Shinwell  <shinwell@codesourcery.com>
            Joseph Myers  <joseph@codesourcery.com>
            Ian Lance Taylor  <ian@wasabisystems.com>
            Ben Elliston  <bje@wasabisystems.com>

	bfd/
	* archures.c: Add definition for bfd_mach_arm_iWMMXt2.
	* cpu-arm.c (processors): Add bfd_mach_arm_iWMMXt2.
	(arch_info_struct, bfd_arm_update_notes): Likewise.
	(architectures): Likewise.
	(bfd_arm_merge_machines): Check for iWMMXt2.
	* bfd-in2.h: Rebuild.

	gas/
	* config/tc-arm.c (enum operand_parse_code): New code OP_RIWR_I32z.
	(parse_operands): Handle OP_RIWR_I32z.
	(do_iwmmxt_wmerge): New function.
	(do_iwmmxt_wldstd): Handle iwmmxt2 case where second operand is
	a register.
	(do_iwmmxt_wrwrwr_or_imm5): New function.
	(insns): Mark instructions as RIWR_I32z as appropriate.
	Also add torvsc<b,h,w>, wabs<b,h,w>, wabsdiff<b,h,w>,
	waddbhus<l,m>, waddhc, waddwc, waddsubhx, wavg4{r}, wmaddu{x,n},
	wmadds{x,n}, wmerge, wmiaxy{n}, wmiawxy{n}, wmul<sm,um>{r},
	wmulw<um,sm,l>{r}, wqmiaxy{n}, wqmulm{r}, wqmulwm{r}, wsubaddhx.
	(md_begin): Handle IWMMXT2.
	(arm_cpus): Add iwmmxt2.
	(arm_extensions): Likewise.
	(arm_archs): Likewise.

	gas/testsuite/
	* gas/arm/iwmmxt2.s: New file.
	* gas/arm/iwmmxt2.d: New file.

	opcodes/
	* arm-dis.c (coprocessor_opcodes): The X-qualifier to WMADD may
	only be used with the default multiply-add operation, so if N is
	set, don't bother printing X.  Add new iwmmxt instructions.
	(IWMMXT_INSN_COUNT): Update.
	(iwmmxt_wwssnames): Qualify "wwss" names at index 2, 6, 10 and 14
	with a 'c' suffix.
	(print_insn_coprocessor): Check for iWMMXt2.  Handle format
	specifiers 'r', 'i'.

2006-09-18  Paul Brook  <paul@codesourcery.com>

	gas/
	* config/tc-arm.c (parse_immediate_maybe_bounded): Rename back...
	(parse_immediate): ... to this.  Revert earlier changes.
	(parse_immediate_bounded): Remove.
	(parse_immediate_unbounded): Remove.
	(parse_address_main): Revert earlier changes.
	(parse_ror): Ditto.
	(po_imm_unb_or_fail): Remove.
	(neon_cmode_for_logic_imm): Try smaller element sizes.
	(neon_cmode_for_move_imm): Ditto.
	(do_neon_logic): Handle .i64 pseudo-op.

	gas/testsuite/
	* testsuite/gas/arm/neon-cov.s: Test pseudo-instruction forms of
	vmov, vmvn and logic immediate instructions.
	* testsuite/gas/arm/neon-cov.d: ditto.

2006-09-16  Paul Brook  <paul@codesourcery.com>

	gas/testsuite/
	* gas/arm/unwind.s: Test two argument form of .movsp.
	* gas/arm/unwind.d: Update expected output.
	* gas/arm/unwind_vxworks.d: Ditto.

2006-09-14  Paul Brook  <paul@codesourcery.com>

	gas/
	* config/tc-arm.c (s_arm_unwind_movsp): Add offset argument.
	* doc/c-arm.texi (movsp): Document offset argument.

2006-09-14  Paul Brook  <paul@codesourcery.com>

	* config/tc-arm.c (thumb32_negate_data_op): Consistently use
	unsigned int to avoid 64-bit host problems.

2006-09-14  Julian Brown  <julian@codesourcery.com>

	gas/
	* config/tc-arm.c (parse_immediate): Add BOUNDED parameter, rename
	to...
	(parse_immediate_maybe_bounded): This. Only bounds-check if BOUNDED
	is true.
	(parse_immediate_bounded): New function, with same arguments and
	semantics as previous parse_immediate.
	(parse_immediate_unbounded): New function. Parse an unbounded
	integer (with sizeof (exp.X_add_number)).
	(parse_big_immediate): Allow for 64-bit exp.X_add_number when
	parsing 64-bit immediates.
	(parse_address_main): Use parse_immediate_bounded not
	parse_immediate.
	(parse_ror): Likewise.
	(parse_operands): Likewise. For Neon immediates, use
	parse_immediate_unbounded. Add new local po_imm_unb_or_fail macro.

2006-09-14  Paul Brook  <paul@codesourcery.com>

	ld/
	* Makefile.in: Regenerate.

2006-09-11  Nathan Sidwell  <nathan@codesourcery.com>

	gas/
	* config/tc-m68k.c (m68k_register_mcf5210a_ctrl): New.
	(m68k_cpus): Add 5210a & 5211a.

2006-09-10  Nathan Sidwell  <nathan@codesourcery.com>

	bfd/
	* Makefile.am (VERSUFFIX_s): Remove.
	(bfdver.h): Replace bfd_version_suffix with bfd_version_package.
	* configure.in: Replace --with-versuffix with --with-pkgversion.
	* version.h: Remove BFD_VERSION_SUFFIX. Update BFD_VERSION_STRING.
	* Makefile.in: Rebuilt.
	* configure: Rebuilt.

	binutils/
	* Makefile.am (REPORT_BUGS_TO_s): Replace with ...
	(REPORT_BUGS_TO): ... this.
	(INCLUDES): Update.
	* Makefile.in: Rebuilt.

	gas/
	* Makefile.am (REPORT_BUGS_TO_s): Replace with ...
	(REPORT_BUGS_TO): ... this.
	(INCLUDES, DEP_INCLUDES): Update.
	* Makefile.in: Rebuilt.

	gprof/
	* Makefile.am (REPORT_BUGS_TO_s): Replace with ...
	(REPORT_BUGS_TO): ... this.
	(VERSUFFIX_s): Remove.
	(INCLUDES): Update.
	* configure.in: Replace --with-versuffix with --with-pkgversion.
	* gprof.c (main): Update version printing.
	* Makefile.in: Rebuilt.
	* configure: Rebuilt.

	ld/
	* Makefile.am (REPORT_BUGS_TO_s): Replace with ...
	(REPORT_BUGS_TO): ... this.
	(INCLUDES): Update.
	* Makefile.in: Rebuilt.

2006-09-08  Paul Brook  <paul@codesourcery.com>

	gas/
	* config/tc-arm.c (object_arch): New variable.
	(s_arm_object_arch): New function.
	(md_pseudo_table): Add object_arch.
	(aeabi_set_public_attributes): Obey object_arch.
	* doc/c-arm.texi: Document .object_arch.

2006-09-08  Kazu Hirata  <kazu@codesourcery.com>

	gas/testsuite/
	Backport
	2006-09-08  Kazu Hirata  <kazu@codesourcery.com>

	* lib/gas-dg.exp (gas-dg-test): Treat $dir as a literal.

2006-09-07  Mark Mitchell  <mark@codesourcery.com>
            Nathan Sidwell  <nathan@codesourcery.com>
	    Vladimir Prus  <vladimir@codesourcery.com>

        * configure.in (TOPLEVEL_CONFIGURE_ARGUMENTS, baseargs): Fix
        quoting.
        * configure: Regenerated.

2006-09-07  Paul Brook  <paul@codesourcery.com>

	gas/
	* config/tc-arm.c (insns): Allow ARM IT pseudo-insn on all cores.

	gas/testsuite/
	* gas/arm/arm-it.s: New test.
	* gas/arm/arm-it.d: New test.

2006-09-06  Paul Brook  <paul@codesourcery.com>

	gas/
	* config/tc-arm.c (parse_operands): Mark operand as present.

	gas/testsuite/
	* gas/arm/neon-omit.s: Test three-argument variants.
	* gas/arm/neon-omit.d: Update expected output.

2006-09-05  Julian Brown  <julian@codesourcery.com>

	gas/
	* config/tc-arm.c (parse_qfloat_immediate): Fix hex immediates,
	handle 0.0 and -0.0 specially.

	gas/testsuite/
	* gas/arm/neon-const.s: Use FP syntax for 0/-0.
	* gas/arm/vfp-neon-syntax-inc.s: Likewise, for 1.

2006-09-05  Vladimir Prus  <vladimir@codesourcery.com>

	bfd/
	* elf32-arm.c (elf32_arm_swap_symbol_out): Remove
	unconditionall setting of low bit for Thumb symbol
	mistakenly left behind after check for external
	symbols was added.

	ld/testsuite/
	* ld-arm/use-thumb-lib.sym: Use regexps instead of
	absolute addresses, for robustness.

2006-09-05  Julian Brown  <julian@codesourcery.com>

	gas/
	* config/tc-arm.c (parse_qfloat_immediate): Disallow integer syntax for
	floating-point immediates.

2006-09-04  Paul Brook  <paul@codesourcery.com>

	gas/
	* config/tc-arm.c (do_neon_dyadic_if_i): Remove.
	(do_neon_dyadic_if_i_d): Avoid setting U bit.
	(do_neon_mac_maybe_scalar): Ditto.
	(do_neon_dyadic_narrow): Force operand type to NT_integer.
	(insns): Remove out of date comments.

	gas/testsuite/
	* gas/arm/neon-cov.s: Test .u and .s aliases for .i suffixes.
	* gas/arm/neon-cov.d: Adjust expected output.

	opcodes/
	* arm-dis.c (neon_opcode): Fix suffix on VMOVN.

2006-09-01  Mark Shinwell  <shinwell@codesourcery.com>

	bfd/
	* elf32-arm.c (elf32_arm_howto_table_1): Correct masks for
	R_ARM_THM_PC12 relocation.

2006-09-01  Nathan Sidwell  <nathan@codesourcery.com>

	ld/testsuite/
	* ld-elf/loadaddr.s: Copy from mainline.

2006-08-31  Mark Shinwell  <shinwell@codesourcery.com>

	bfd/
	* elf32-arm.c (elf32_arm_howto_table_1): Adjust entries for
	R_ARM_THM_ALU_PREL_11_0 and R_ARM_THM_PC12 relocations.
	(elf32_arm_final_link_relocate): Handle R_ARM_THM_ALU_PREL_11_0
	and R_ARM_THM_PC12 relocations.

2006-08-31  Joseph Myers  <joseph@codesourcery.com>

	ld/testsuite/
	* ld-scripts/crossref.exp: XFAIL third test on mips*-*-linux*.

2006-08-30  Mark Shinwell  <shinwell@codesourcery.com>

	bfd/
	* elf32-arm.c (elf32_arm_final_link_relocate): Add support for
	R_ARM_MOVW_BREL_NC, R_ARM_MOVW_BREL, R_ARM_MOVT_BREL,
	R_ARM_THM_MOVW_BREL_NC, R_ARM_THM_MOVW_BREL and
	R_ARM_THM_MOVT_BREL relocations.

2006-08-29  Nathan Sidwell  <nathan@codesourcery.com>

	ld/
	* ldlang.c (walk_wild): Allow * to glob '/' in wildcarded match.

2006-08-29  Nathan Sidwell  <nathan@codesourcery.com>

	ld/
	Backport 2006-08-28  Alan Modra  <amodra@bigpond.net.au>
	* scripttempl/elf.sc: Ensure that crtbegin and crtend entries will
	not match random object files in a path containing "crtbegin" or
	"crtend" as part of a directory name.
	* scripttempl/armbpabi.sc: Likewise.
	* scripttempl/crisaout.sc: Likewise.
	* scripttempl/elf32crx.sc: Likewise.
	* scripttempl/elf32sh-symbian.sc: Likewise.
	* scripttempl/elf_chaos.sc: Likewise.
	* scripttempl/elfd10v.sc: Likewise.
	* scripttempl/elfd30v.sc: Likewise.
	* scripttempl/elfxtensa.sc: Likewise.
	* scripttempl/iq2000.sc: Likewise.
	* scripttempl/mmo.sc: Likewise.
	* scripttempl/xstormy16.sc: Likewise.

2006-08-29  Nathan Sidwell  <nathan@codesourcery.com>

	ld/
	This is fixed differently (and more intrusively) upstream.
	* ldexp.c (fold_name): Loadaddrs of sections with an lma_region
	are absolute.

	ld/testsuite/
	* ld-elf/loadaddr3.t: New.
	* ld-elf/loadaddr3a.d: New.
	* ld-elf/loadaddr3b.d: New.

2006-08-24  Mark Shinwell  <shinwell@codesourcery.com>

	bfd/
	* elf32-arm.c (elf32_arm_howto_table_1): Change offset for
	R_THM_CALL to 25 and remove FIXME comment.
	(using_thumb2): New function.
	(elf32_arm_final_link_relocate): Cope with Thumb-2 BL encoding.

	ld/testsuite/
	* arm-elf.exp: Add thumb1-bl, thumb2-bl, thumb2-bl-as-thumb1-bad
	and thumb2-bl-bad tests.
	* thumb1-bl.d: New.
	* thumb1-bl.s: New.
	* thumb2-bl-as-thumb1-bad.d: New.
	* thumb2-bl-as-thumb1-bad.s: New.
	* thumb2-bl-bad.d: New.
	* thumb2-bl-bad.s: New.
	* thumb2-bl.d: New.
	* thumb2-bl.s: New.

2006-08-24  Mark Shinwell  <shinwell@codesourcery.com>

	bfd/
	* elf32-arm.c (elf32_arm_final_link_relocate): Add cases
	for R_ARM_ABS32_NOI and R_ARM_REL32_NOI.
	(elf32_arm_gc_sweep_hook): Likewise.
	(elf32_arm_check_relocs): Likewise.
	(allocate_dynrelocs): Likewise.

2006-08-22  Joseph Myers  <joseph@codesourcery.com>

	Merge changes between binutils-csl-2_17-branchpoint and
	binutils-2_17, except for the addition of generated files to CVS.

2006-08-21  Mark Shinwell  <shinwell@codesourcery.com>

	bfd/
	* elf32-arm.c (elf32_arm_link_hash_table): Correct typo in
	comment for target1_is_rel.

2006-08-19  Joseph Myers  <joseph@codesourcery.com>

	gas/
	* config/tc-arm.c (s_arm_unwind_save_mmxwr): Correct condition for
	merging with previous long opcode.

	gas/testsuite/
	* gas/arm/unwind.s: Test not merging iWMMXt register save with
	previous long opcode.
	* gas/arm/unwind.d, gas/arm/unwind_vxworks.d: Update.

2006-08-18  Paul Brook  <paul@codesourcery.com>

	Backport from mainline.
	bfd/
	* elf32-arm.c (elf32_arm_link_hash_entry): Add export_glue.
	(elf32_arm_link_hash_newfunc): Initialize export_glue.
	(record_arm_to_thumb_glue): Return stub symbol.
	(elf32_arm_create_thumb_stub): New function.
	(elf32_arm_to_thumb_stub): Use it.
	(elf32_arm_to_thumb_export_stub): New function.
	(elf32_arm_begin_write_processing): New function.
	(allocate_dynrelocs): Allocate Arm stubs.
	(elf_backend_begin_write_processing): Define.
	(elf32_arm_symbian_begin_write_processing): Remove ATTRIBUTE_UNUSED.
	Call elf32_arm_begin_write_processing.

	ld/
	* emultempl/armelf.em (arm_elf_before_allocation): Call
	gld${EMULATION_NAME}_before_allocation after setting interworking bfd.

	ld/testsuite/
	* ld-arm/arm-elf.exp (armelftests): Add armthumb-lib.so.  Add
	-use-blx to mixed-lib.so
	* ld-arm/armthumb-lib.d: New file.
	* ld-arm/armthumb-lib.sym: New file.

2006-08-18  Julian Brown  <julian@codesourcery.com>

	libiberty/
	* floatformat.c (get_field): Fix segfault with little-endian word
	order on 64-bit hosts.
	(put_field): Likewise.
	(min): Move definition.

2006-08-18  Julian Brown  <julian@codesourcery.com>

	opcodes/
	* arm-dis.c (print_insn_neon): Disassemble 32-bit immediates as
	signed on 64-bit hosts.

2006-08-16  Julian Brown  <julian@codesourcery.com>

	gas/
	* config/tc-arm.c (md_assemble): Improve diagnostic when attempting
	to use ARM instructions on non-ARM-supporting cores.
	(autoselect_thumb_from_cpu_variant): New function. Switch on Thumb
	mode automatically based on cpu variant.
	(md_begin): Call above function.

	gas/testsuite/
	* gas/arm/noarm.s: Add test for disabled ARM insns.
	* gas/arm/noarm.d: Drive test for above.
	* gas/arm/noarm.l: Expected error output.

2006-08-16  Julian Brown  <julian@codesourcery.com>

	gas/
	* config/tc-arm.c (opcode_lookup): Allow Neon type suffixes to be
	recognized in non-unified syntax mode.

2006-08-15  Mark Shinwell  <shinwell@codesourcery.com>

	gas/
	* config/tc-arm.c (s_arm_unwind_save_vfp_armv6): New.  Parse
	a directive saving VFP registers for ARMv6 or later.
	(s_arm_unwind_save): Add parameter arch_v6 and call
	s_arm_unwind_save_vfp or s_arm_unwind_save_vfp_armv6 as
	appropriate.
	(md_pseudo_table): Add entry for new "vsave" directive.
	* doc/c-arm.texi: Correct error in example for "save"
	directive (fstmdf -> fstmdx).  Also document "vsave" directive.

2006-08-03  Joseph Myers  <joseph@codesourcery.com>

	Backport from mainline.

	gas/
	* config/tc-arm.c (parse_operands): Handle invalid register name
	for OP_RIWR_RIWC. 

	gas/testsuite/
	* gas/arm/iwmmxt-bad.s: Test invalid register names for wldrw and
	wstrw.
	* gas/arm/iwmmxt-bad.l: Update.

	gas/
	* config/tc-arm.c (enum operand_parse_code): Add OP_RIWC_RIWG.
	(parse_operands): Handle it.
	(insns): Use it for tmcr and tmrc.

	gas/testsuite/
	* gas/arm/iwmmxt.s: Test tmcr and tmrc with wcgr registers.
	* gas/arm/iwmmxt.d: Update.

2006-07-27  Carlos O'Donell  <carlos@codesourcery.com>

	bfd/
	* elfxx-mips.c (_bfd_mips_elf_print_private_bfd_data):
	Print EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_XGOT
	and EF_MIPS_UCODE.

2006-07-26  Vladimir Prus  <vladimir@codesourcery.com>
	
	bfd/
	* Makefile.am: (VERSUFFIX_s): New. Pass it to compiler
	via -D.
	* Makefile.in: Regenerated.
	* configure: Regenerated.
	* configure.in: Add --with-versuffix option.
	* version.h: Add BFD_VERSION_SUFFIX, use it 
	in BFD_VERSION_STRING.
	
	binutils/
	* Makefile.am: (REPORT_BUGS_TO_s): New. Pass it to compiler
	via -D.
	* Makefile.in: Regenerated.
	* configure: Regenerated.
	* configure.in: Add --with-bugurl option.

	gas/
	* Makefile.am: (REPORT_BUGS_TO_s): New. Pass it to compiler
	via -D.
	* Makefile.in: Regenerated.
	* configure: Regenerated.
	* configure.in: Add --with-bugurl option.

	gprof/
	* Makefile.am: (VERSUFFIX_s, REPORT_BUGS_TO_s): New. Pass 
	them to compiler via -D.
	* Makefile.in: Regenerated.
	* configure: Regenerated.
	* configure.in: Add --with-versuffix and --with-bugurl option.
	* gprof.c: Print version suffix.

	ld/
	* Makefile.am: (REPORT_BUGS_TO_s): New. Pass it to compiler
	via -D.
	* Makefile.in: Regenerated.
	* configure: Regenerated.
	* configure.in: Add --with-bugurl option.

2006-07-26  Richard Sandiford  <richard@codesourcery.com>

	opcodes/
	* m68k-opc.c (m68k_opcodes): Fix operand specifier in the Coldfire
	"fdaddl" entry.

	gas/testsuite/
	* gas/m68k/mcf-fpu.s: Add tests for all addressing modes.
	* gas/m68k/mcf-fpu.d: Update accordingly.

2006-07-20  Julian Brown  <julian@codesourcery.com>

	Backport from mainline.

	opcodes/
	* arm-dis.c (coprocessor): Alter fmsrr disassembly syntax.

	gas/testsuite/
	* gas/arm/vfp-neon-syntax.d: Tweak expected fmsrr syntax.
	* gas/arm/vfp-neon-syntax_t2.d: Likewise.
	* gas/arm/vfp2.d: Likewise.
	* gas/arm/vfp2_t2.d: Likewise.

2006-07-19  Paul Brook  <paul@codesourcery.com>

	Backport from mainline.
	gas/
	* config/tc-arm.c (insns): Fix rbit Arm opcode.
	gas/testsuite/
	* gas/arm/archv6t2.d: Adjust expected output for rbit.
	opcodes/
	* armd-dis.c (arm_opcodes): Fix rbit opcode.

2006-07-18  Paul Brook  <paul@codesourcery.com>

	Backport from mainline.
	bfd/
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* reloc.c: Add BFD_RELOC_ARM_T32_ADD_IMM.

	gas/
	* tc-arm.c (do_t_add_sub): Use addw/subw when source is PC.
	(md_convert_frag): Use correct reloc for add_pc.  Use
	BFD_RELOC_ARM_T32_ADD_IMM for normal add/sum.
	(md_apply_fix): Handle BFD_RELOC_ARM_T32_ADD_IMM.
	(arm_force_relocation): Handle BFD_RELOC_ARM_T32_ADD_IMM.

	gas/testsuite/
	* gas/arm/thumb2_add.d: New test.
	* gas/arm/thumb2_add.s: New test.

2006-07-14  Nathan Sidwell  <nathan@codesourcery.com>

	bfd/
	* config.bfd (sh-*-uclinux, sh[12]-*-uclinux): New stanza.

	gas/
	* configure.tgt (sh-*-uclinux, sh[12]-*-uclinux): Specify as elf.

	ld/
	* Makefile.am (ALL_EMULATIONS): Add eshelf_uclinux.o
	(eshelf_uclinux.c): New target.
	* Makefile.in: Rebuilt.
	* configure.tgt (sh-*-uclinux* | sh[12]-*-uclinux*): New stanza.
	* emulparams/shelf_uclinux.sh: New.

2006-07-12  Richard Sandiford  <richard@codesourcery.com>

	Backport from mainline:

	bfd/
	2006-07-12  Matthew R. Dempsky  <mrd@alkemio.org>

	* cpu-m68k.c (bfd_m68k_compatible): Handle CPU32.

	ld/testsuite/
	2006-07-12  Richard Sandiford  <richard@codesourcery.com>

	* ld-m68k/merge-ok-1c.d: New test.
	* ld-m68k/m68k.exp: Run it.

2006-06-22  Richard Sandiford  <richard@codesourcery.com>

	binutils/
	* objcopy.c (localize_hidden): New variable.
	(OPTION_LOCALIZE_HIDDEN): New command_line_switch value.
	(copy_options): Add --localize-hidden.
	(copy_usage): Mention --localize-hidden.
	(is_hidden_symbol): New function.
	(filter_symbols): Handle localize_hidden.
	(copy_object): Call filter_symbols if localize_hidden.
	(copy_main): Handle OPTION_LOCALIZE_HIDDEN.
	* doc/binutils.texi (--localize-hidden): Document new option.

	binutils/testsuite/
	* binutils-all/localize-hidden-1.s,
	* binutils-all/localize-hidden-1.d,
	* binutils-all/localize-hidden-2.s,
	* binutils-all/localize-hidden-2.d: New tests.
	* binutils-all/objcopy.exp: Run them.

2006-06-22  Richard Sandiford  <richard@codesourcery.com>

	Backport from mainline:

	binutils/testsuite/
	2006-04-26  H.J. Lu  <hongjiu.lu@intel.com>

	* lib/utils-lib.exp (run_dump_test): New.
	(slurp_options): Likewise.
	(regexp_diff): Likewise.
	(file_contents): Likewise.
	(verbose_eval): Likewise.

2006-06-21  Mark Shinwell  <shinwell@codesourcery.com>

	ld/
	* ldlang.c (lang_insert_orphan): Correctly handle the case where
	the section is to end up after the section currently at the end
	of the list in output_bfd.

2006-06-19  Vladimir Prus  <vladimir@codesourcery.com>

	bfd/
	* elf32-arm.c (elf32_arm_swap_symbol_out): Don't set low
	bit for undefined symbols.

	ld/testsuite
	* ld-arm/arm-elf.exp: New test.
	* ld-arm/use-thumb-lib.s: New file.
	* ld-arm/use-thumb-lib.sym: New file.

2006-06-15  Mark Shinwell  <shinwell@codesourcery.com>

	* include/elf/arm.h: Correct names of R_ARM_LDC_G{0,1,2}
	to R_ARM_LDC_SB_G{0,1,2} respectively.

	bfd/
	* bfd-in2.h: Regenerate.
	* elf32-arm.c (R_ARM_ALU_PC_G0_NC, R_ARM_ALU_PC_G0,
	R_ARM_ALU_PC_G1_NC, R_ARM_ALU_PC_G1, R_ARM_ALU_PC_G2,
	R_ARM_LDR_PC_G1, R_ARM_LDR_PC_G2, R_ARM_LDRS_PC_G0,
	R_ARM_LDRS_PC_G1, R_ARM_LDRS_PC_G2, R_ARM_LDC_PC_G0,
	R_ARM_LDC_PC_G1, R_ARM_LDC_PC_G2, R_ARM_ALU_SB_G0_NC,
	R_ARM_ALU_SB_G0, R_ARM_ALU_SB_G1_NC, R_ARM_ALU_SB_G1,
	R_ARM_ALU_SB_G2, R_ARM_LDR_SB_G0, R_ARM_LDR_SB_G1,
	R_ARM_LDR_SB_G2, R_ARM_LDRS_SB_G0, R_ARM_LDRS_SB_G1,
	R_ARM_LDRS_SB_G2, R_ARM_LDC_SB_G0, R_ARM_LDC_SB_G1,
	R_ARM_LDC_SB_G2): New relocation types.
	(R_ARM_PC13): Rename to AAELF name R_ARM_LDR_PC_G0 and
	adjust HOWTO entry to be consistent with R_ARM_LDR_PC_G1
	and friends.
	(elf32_arm_howto_table_3): Delete; contents merged into
	elf32_arm_howto_table_2.
	(elf32_arm_howto_from_type): Adjust correspondingly.
	(elf32_arm_reloc_map): Extend with the above relocations.
	(calculate_group_reloc_mask): New function.
	(identify_add_or_sub): New function.
	(elf32_arm_final_link_relocate): Support for the above
	relocations.
	* reloc.c: Add enumeration entries for BFD_RELOC_ARM_...
	codes to correspond to the above relocations.

	gas/
	* config/tc-arm.c (enum parse_operand_result): New.
	(struct group_reloc_table_entry): New.
	(enum group_reloc_type): New.
	(group_reloc_table): New array.
	(find_group_reloc_table_entry): New function.
	(parse_shifter_operand_group_reloc): New function.
	(parse_address_main): New function, incorporating code
	from the old parse_address function.  To be used via...
	(parse_address): wrapper for parse_address_main; and
	(parse_address_group_reloc): new function, likewise.
	(enum operand_parse_code): New codes OP_SHG, OP_ADDRGLDR,
	OP_ADDRGLDRS, OP_ADDRGLDC.
	(parse_operands): Support for these new operand codes.
	New macro po_misc_or_fail_no_backtrack.
	(encode_arm_cp_address): Preserve group relocations.
	(insns): Modify to use the above operand codes where group
	relocations are permitted.
	(md_apply_fix): Handle the group relocations
	ALU_PC_G0_NC through LDC_SB_G2.
	(tc_gen_reloc): Likewise.
	(arm_force_relocation): Leave group relocations for the linker.
	(arm_fix_adjustable): Likewise.

	gas/testsuite/
	* gas/arm/group-reloc-alu.d: New test.
	* gas/arm/group-reloc-alu-encoding-bad.d: New test.
	* gas/arm/group-reloc-alu-encoding-bad.l: New test.
	* gas/arm/group-reloc-alu-encoding-bad.s: New test.
	* gas/arm/group-reloc-alu-parsing-bad.d: New test.
	* gas/arm/group-reloc-alu-parsing-bad.l: New test.
	* gas/arm/group-reloc-alu-parsing-bad.s: New test.
	* gas/arm/group-reloc-alu.s: New test.
	* gas/arm/group-reloc-ldc.d: New test.
	* gas/arm/group-reloc-ldc-encoding-bad.d: New test.
	* gas/arm/group-reloc-ldc-encoding-bad.l: New test.
	* gas/arm/group-reloc-ldc-encoding-bad.s: New test.
	* gas/arm/group-reloc-ldc-parsing-bad.d: New test.
	* gas/arm/group-reloc-ldc-parsing-bad.l: New test.
	* gas/arm/group-reloc-ldc-parsing-bad.s: New test.
	* gas/arm/group-reloc-ldc.s: New test.
	* gas/arm/group-reloc-ldr.d: New test.
	* gas/arm/group-reloc-ldr-encoding-bad.d: New test.
	* gas/arm/group-reloc-ldr-encoding-bad.l: New test.
	* gas/arm/group-reloc-ldr-encoding-bad.s: New test.
	* gas/arm/group-reloc-ldr-parsing-bad.d: New test.
	* gas/arm/group-reloc-ldr-parsing-bad.l: New test.
	* gas/arm/group-reloc-ldr-parsing-bad.s: New test.
	* gas/arm/group-reloc-ldr.s: New test.
	* gas/arm/group-reloc-ldrs.d: New test.
	* gas/arm/group-reloc-ldrs-encoding-bad.d: New test.
	* gas/arm/group-reloc-ldrs-encoding-bad.l: New test.
	* gas/arm/group-reloc-ldrs-encoding-bad.s: New test.
	* gas/arm/group-reloc-ldrs-parsing-bad.d: New test.
	* gas/arm/group-reloc-ldrs-parsing-bad.l: New test.
	* gas/arm/group-reloc-ldrs-parsing-bad.s: New test.
	* gas/arm/group-reloc-ldrs.s: New test.

	ld/testsuite/
	* ld-arm/group-relocs-alu-bad.d: New test.
	* ld-arm/group-relocs-alu-bad.s: New test.
	* ld-arm/group-relocs.d: New test.
	* ld-arm/group-relocs-ldc-bad.d: New test.
	* ld-arm/group-relocs-ldc-bad.s: New test.
	* ld-arm/group-relocs-ldr-bad.d: New test.
	* ld-arm/group-relocs-ldr-bad.s: New test.
	* ld-arm/group-relocs-ldrs-bad.d: New test.
	* ld-arm/group-relocs-ldrs-bad.s: New test.
	* ld-arm/group-relocs.s: New test.
	* ld-arm/arm-elf.exp: Wire in new tests.

2006-06-15  Julian Brown  <julian@codesourcery.com>

	gas/
	* config/tc-arm.c (do_vfp_nsyn_ldr_str): Remove, fold into...
	(do_neon_ldr_str): Always defer to VFP encoding routines, which handle
	relocs properly.

2006-05-25  Alan Modra  <amodra@bigpond.net.au>

	* bfd/elf.c (sym_is_global): Return a bfd_boolean.
	(ignore_section_sym): New function.
	(elf_map_symbols): Use ignore_section_sym to discard some syms.
	(_bfd_elf_symbol_from_bfd_symbol): Ensure section belongs to
	bfd before using elf_section_syms.

2006-05-25  Nathan Sidwell  <nathan@codesourcery.com>

	* gas/config/tc-m68k.c (mcf52235_ctrl, mcf5225_ctrl): New.
	(m68k_cpus): Add 52230, 52233, 52234, 52235, 5224, 5225.

2006-05-24  Paul Brook  <paul@codesourcery.com>

	Backport from mainline.
	* bfd/elf-bfd.h (elf_backend_data): Add
	elf_backend_output_arch_local_syms
	* bfd/elf32-arm.c (output_arch_syminfo): Define.
	(elf32_arm_ouput_plt_map_sym, elf32_arm_output_plt_map,
	elf32_arm_output_arch_local_syms): New functions.
	(elf_backend_output_arch_local_syms): Define.
	* bfd/elflink.c (bfd_elf_final_link): Call
	elf_backend_output_arch_local_syms.
	* bfd/elfxx-target.h (elf_backend_output_arch_local_syms): Provide
	default definition.
	(elfNN_bed): Add elf_backend_output_arch_local_syms.
	* ld/testsuite/ld-arm/arm-app-abs32.d: Update expected output.
	* ld/testsuite/ld-arm/arm-app.d: Ditto.
	* ld/testsuite/ld-arm/arm-lib-plt32.d: Ditto.
	* ld/testsuite/ld-arm/arm-lib.d: Ditto.
	* ld/testsuite/ld-arm/mixed-app-v5.d: Ditto.
	* ld/testsuite/ld-arm/mixed-app.d: Ditto.
	* ld/testsuite/ld-arm/mixed-lib.d: Ditto.

2006-05-24  Paul Brook  <paul@codesourcery.com>

	Backport from mainline.
	* bfd/elf32-arm.c (put_arm_insn, put_thumb_insn): New functions.
	(elf32_thumb_to_arm_stub, elf32_arm_to_thumb_stub,
	elf32_arm_finish_dynamic_symbol): Use them.

2006-05-22  Richard Sandiford  <richard@codesourcery.com>

	opcodes/
	* m68k-dis.c (m68k_scan_mask): Add missing return.

2006-05-20  Nathan Sidwell  <nathan@codesourcery.com>

	* binutils/testsuite/binutils-all/objcopy.exp: Skip for uclinux
	targets.

2006-05-15  Paul Brook  <paul@codesourcery.com>

	Backport from mainline.
	* bfd/cpu-arm.c (bfd_is_arm_mapping_symbol_name): Rename ...
	(bfd_is_arm_special_symbol_name): ... to this.  Add type argument.
	Check symbol name is of specified type.
	* bfd/elf32-arm.c (elf32_arm_is_target_special_symbol,
	arm_elf_find_function, elf32_arm_output_symbol_hook): Use
	bfd_is_arm_special_symbol_name.
	* bfd/bfd-in.h (BFD_ARM_SPECIAL_SYM_TYPE_MAP,
	BFD_ARM_SPECIAL_SYM_TYPE_TAG, BFD_ARM_SPECIAL_SYM_TYPE_OTHER,
	BFD_ARM_SPECIAL_SYM_TYPE_ANY): Define.
	(bfd_is_arm_mapping_symbol_name): Remove prototype.
	(bfd_is_arm_special_symbol_name): Add prototype.
	* bfd/bfd-in2.h: Regenerate.
	* gas/config/tc-arm.c (arm_adjust_symtab): Use
	bfd_is_arm_special_symbol_name.
	* ld/testsuite/ld-arm/arm-be8.d: New test.
	* ld/testsuite/ld-arm/arm-be8.s: New test.
	* ld/testsuite/ld-arm/arm-elf.exp: Add arm-be8.

2006-05-12  Carlos O'Donell  <carlos@codesourcery.com>

	* binutils/doc/binutils.texi: Rename "Index" to "Binutils Index"

2006-05-11  Carlos O'Donell  <carlos@codesourcery.com>

	* bfd/doc/bfd.texinfo: Rename "Index" to "BFD Index"
	* ld/ld.texinfo: Rename "Index" to "LD Index"
	* gas/doc/as.texinfo: Rename "Index" to "AS Index"
	Rename "ABORT" to "ABORT (COFF)"

2006-05-06  Joseph S. Myers  <joseph@codesourcery.com>

	Backport:
	2006-03-30  Jakub Jelinek  <jakub@redhat.com>
	* ldmisc.c (vfinfo): Revert 2005-10-05 changes.  If
	bfd_find_nearest_line succeeded for %C or %D, but filename
	is NULL, print section+offset at the end.

2006-05-05  Julian Brown  <julian@codesourcery.com>

	* gas/config/tc-arm.c (stdarg.h): include.
	(arm_it): Add uncond_value field. Add isvec and issingle to operand
	array.
	(arm_reg_type): Add REG_TYPE_VFSD (single or double VFP reg) and
	REG_TYPE_NSDQ (single, double or quad vector reg).
	(reg_expected_msgs): Update.
	(BAD_FPU): Add macro for unsupported FPU instruction error.
	(parse_neon_type): Support 'd' as an alias for .f64.
	(parse_typed_reg_or_scalar): Support REG_TYPE_VFSD, REG_TYPE_NSDQ
	sets of registers.
	(parse_vfp_reg_list): Don't update first arg on error.
	(parse_neon_mov): Support extra syntax for VFP moves.
	(operand_parse_code): Add OP_RVSD, OP_RNSDQ, OP_VRSDLST, OP_RVSD_IO,
	OP_RNSDQ_RNSC, OP_RVC_PSR, OP_APSR_RR, OP_oRNSDQ.
	(parse_operands): Support isvec, issingle operands fields, new parse
	codes above.
	(do_vfp_nsyn_mrs, do_vfp_nsyn_msr): New functions. Support VFP mrs,
	msr variants.
	(do_mrs, do_msr, do_t_mrs, do_t_msr): Add support for above.
	(NEON_ENC_TAB): Add vnmul, vnmla, vnmls, vcmp, vcmpz, vcmpe, vcmpez.
	(NEON_ENC_SINGLE, NEON_ENC_DOUBLE): Define macros.
	(NEON_SHAPE_DEF): New macro. Define table of possible instruction
	shapes.
	(neon_shape): Redefine in terms of above.
	(neon_shape_class): New enumeration, table of shape classes.
	(neon_shape_el): New enumeration. One element of a shape.
	(neon_shape_el_size): Register widths of above, where appropriate.
	(neon_shape_info): New struct. Info for shape table.
	(neon_shape_tab): New array.
	(neon_type_mask): Add N_F64, N_VFP. Update N_MAX_NONSPECIAL.
	(neon_check_shape): Rewrite as...
	(neon_select_shape): New function to classify instruction shapes,
	driven by new table neon_shape_tab array.
	(neon_quad): New function. Return 1 if shape should set Q flag in
	instructions (or equivalent), 0 otherwise.
	(type_chk_of_el_type): Support F64.
	(el_type_of_type_chk): Likewise.
	(neon_check_type): Add support for VFP type checking (VFP data
	elements fill their containing registers).
	(do_vfp_cond_or_thumb): Fill in condition field in ARM mode, or 0xE
	in thumb mode for VFP instructions.
	(do_vfp_nsyn_opcode): New function. Look up the opcode in argument,
	and encode the current instruction as if it were that opcode.
	(try_vfp_nsyn): New. If this looks like a VFP instruction with ARGS
	arguments, call function in PFN.
	(do_vfp_nsyn_add_sub, do_vfp_nsyn_mla_mls, do_vfp_nsyn_mul)
	(do_vfp_nsyn_abs_neg, do_vfp_nsyn_ldm_stm, do_vfp_nsyn_ldr_str)
	(do_vfp_nsyn_sqrt, do_vfp_nsyn_div, do_vfp_nsyn_nmul)
	(do_vfp_nsyn_cmp, nsyn_insert_sp, do_vfp_nsyn_push)
	(do_vfp_nsyn_pop, do_vfp_nsyn_cvt, do_vfp_nsyn_cvtz): New functions.
	Redirect Neon-syntax VFP instructions to VFP instruction handlers.
	(do_neon_dyadic_i_su, do_neon_dyadic_i64_su, do_neon_shl_imm)
	(do_neon_qshl_imm, do_neon_logic, do_neon_bitfield)
	(neon_dyadic_misc, neon_compare, do_neon_tst, do_neon_qdmulh)
	(do_neon_fcmp_absolute, do_neon_step, do_neon_sli, do_neon_sri)
	(do_neon_qshlu_imm, neon_move_immediate, do_neon_mvn, do_neon_ext)
	(do_neon_rev, do_neon_dup, do_neon_rshift_round_imm, do_neon_trn)
	(do_neon_zip_uzp, do_neon_sat_abs_neg, do_neon_pair_long)
	(do_neon_recip_est, do_neon_cls, do_neon_clz, do_neon_cnt)
	(do_neon_swp): Use neon_select_shape not neon_check_shape. Use
	neon_quad.
	(vfp_or_neon_is_neon): New function. Call if a mnemonic shared
	between VFP and Neon turns out to belong to Neon. Perform
	architecture check and fill in condition field if appropriate.
	(do_neon_addsub_if_i, do_neon_mac_maybe_scalar, do_neon_abs_neg)
	(do_neon_cvt): Add support for VFP variants of instructions.
	(neon_cvt_flavour): Extend to cover VFP conversions.
	(do_neon_mov): Rewrite to use neon_select_shape. Add support for VFP
	vmov variants.
	(do_neon_ldr_str): Handle single-precision VFP load/store.
	(do_neon_ld_st_interleave, do_neon_ld_st_lane, do_neon_ld_dup): Use
	NS_NULL not NS_IGNORE.
	(opcode_tag): Add OT_csuffixF for operands which either take a
	conditional suffix, or have 0xF in the condition field.
	(md_assemble): Add support for OT_csuffixF.
	(NCE): Replace macro with...
	(NCE_tag, NCE, NCEF): New macros.
	(nCE): Replace macro with...
	(nCE_tag, nCE, nCEF): New macros.
	(insns): Add support for VFP insns or VFP versions of insns msr, mrs,
	vsqrt, vdiv, vnmul, vnmla, vnmls, vcmp, vcmpe, vpush, vpop, vcvtz,
	vmul, vmla, vmls, vadd, vsub, vabs, vneg, vldm, vldmia, vldbdb, vstm,
	vstmia, vstmdb, vldr, vstr, vcvt, vmov. Group shared VFP/Neon insns
	together.

	* gas/testsuite/gas/arm/itblock.s: New file. Helper macro for making
	all-true IT blocks.
	* gas/testsuite/gas/arm/neon-cond-bad-inc.s: New test. Make sure
	unconditional Neon instructions are rejected...
	* gas/testsuite/gas/arm/neon-cond-bad.s: In ARM mode, and...
	* gas/testsuite/gas/arm/neon-cond-bad_t2.s: Accepted in Thumb mode
	(with IT).
	* gas/testsuite/gas/arm/neon-cond-bad.l: Expected error output in ARM
	mode.
	* gas/testsuite/gas/arm/neon-cond-bad.d: Control ARM mode test.
	* gas/testsuite/gas/arm/neon-cond-bad_t2.d: Expected output in Thumb
	mode.
	* gas/testsuite/gas/arm/vfp-neon-syntax-inc.s: Test VFP Neon-style
	syntax.
	* gas/testsuite/gas/arm/vfp-neon-syntax.s: ...in ARM mode.
	* gas/testsuite/gas/arm/vfp-neon-syntax_t2.s: ...and Thumb mode.
	* gas/testsuite/gas/arm/vfp-neon-syntax.d: Expected output in ARM mode.
	* gas/testsuite/gas/arm/vfp-neon-syntax_t2.d: Expected output in Thumb
	mode.

2006-05-05  Mark Shinwell  <shinwell@codesourcery.com>

	* configure: Regenerate.
	* configure.in: Enable gprof for cross builds.

2006-05-03  Julian Brown  <julian@codesourcery.com>

	* gas/doc/c-arm.texi: Add documentation for .dn/.qn directives.

2006-05-03  Paul Brook  <paul@codesourcery.com>

	* bfd/elf32-arm.c (elf32_arm_reloc_map): Add MOVW and MOVT relocs.
	(elf32_arm_final_link_relocate): Handle MOVW and MOVT relocs.
	(elf32_arm_gc_sweep_hook, elf32_arm_check_relocs): Ditto.
	* bfd/reloc.c: Ditto.
	* bfd/bfd-in2.h: Regenerate.
	* bfd/libbfd.h: Regenerate.
	* bfd/libcoff.h: Regenerate.
	* gas/config/tc-arm.c (parse_half): New function.
	(operand_parse_code): Remove OP_Iffff.  Add OP_HALF.
	(parse_operands): Ditto.
	(do_mov16): Reject invalid relocations.
	(do_t_mov16): Ditto.  Use Thumb reloc numbers.
	(insns): Replace Iffff with HALF.
	(md_apply_fix): Add MOVW and MOVT relocs.
	(tc_gen_reloc): Ditto.
	* gas/doc/c-arm.texi: Document relocation operators
	* ld/testsuite/ld-arm/arm-elf.exp: Add arm-movwt.
	* ld/testsuite/ld-arm/arm-movwt.d: New test.
	* ld/testsuite/ld-arm/arm-movwt.s: New test.
	* ld/testsuite/ld-arm/arm.ld: Add .far.

2006-05-02  Joseph Myers  <joseph@codesourcery.com>

	* gas/config/tc-arm.c (do_iwmmxt_wldstbh): Don't multiply offset
	by 4 here.
	(md_apply_fix3): Multiply offset by 4 here for
	BFD_RELOC_ARM_CP_OFF_IMM_S2 and BFD_RELOC_ARM_T32_CP_OFF_IMM_S2.
	* gas/testsuite/gas/arm/iwmmxt.s: Increase offsets for wstrb and
	wstrh.
	* gas/testsuite/gas/arm/iwmmxt.d: Update expected results.
	* gas/testsuite/gas/arm/iwmmxt-bad2.s: Test wstrb, wstrh, wldrb
	and wldrh.
	* gas/testsuite/gas/arm/iwmmxt-bad2.l: Update expected error
	messages.

2006-05-01  Paul Brook  <paul@codesourcery.com>

	* bfd/elf32-arm.c (elf32_arm_final_link_relocate): Set thumb funciton
	bit for R_ARM_REL32.
	* gas/config/tc-arm.c (arm_optimize_expr): New function.
	* gas/config/tc-arm.h (md_optimize_expr): Define
	(arm_optimize_expr): Add prototype.
	(TC_FORCE_RELOCATION_SUB_SAME): Define.
	* ld/testsuite/ld-arm/arm-elf.exp: Add thumb-rel32.
	* ld/testsuite/ld-arm/thumb-rel32.d: New test.
	* ld/testsuite/ld-arm/thumb-rel32.s: New test.

2006-04-29  Paul Brook  <paul@codesourcery.com>

	* opcodes/arm-dis.c (coprocessor_opcodes): Add %c to unconditional
	arm instructions.
	(neon_opcodes): Add conditional execution specifiers.
	(thumb_opcodes): Ditto.
	(thumb32_opcodes): Ditto.
	(arm_conditional): Change 0xe to "al" and add "" to end.
	(ifthen_state, ifthen_next_state, ifthen_address): New.
	(IFTHEN_COND): Define.
	(print_insn_coprocessor, print_insn_neon): Print thumb conditions.
	(print_insn_arm): Change %c to use new values of arm_conditional.
	(print_insn_thumb16): Print thumb conditions.  Add %I.
	(print_insn_thumb32): Print thumb conditions.
	(find_ifthen_state): New function.
	(print_insn): Track IT block state.
	* gas/testsuite/gas/arm/thumb2_bcond.d: Update expected output.
	* gas/testsuite/gas/arm/thumb32.d: Ditto.
	* gas/testsuite/gas/arm/vfp1_t2.d: Ditto.
	* gas/testsuite/gas/arm/vfp1xD_t2.d: Ditto.
	* binutils/testsuite/binutils-all/arm/objdump.exp: New file.
	* binutils/testsuite/binutils-all/arm/thumb2-cond.s: New test.

2006-04-28  Mark Mitchell  <mark@codesourcery.com>

	* doc/as.texinfo: Mention that some .type syntaxes are not
	supported on all architectures.

2006-04-27  Richard Sandiford  <richard@codesourcery.com>

	include/opcodes/
	* m68k.h (mcf_mask): Define.

	opcodes/
	* m68k-opc.c (m68k_opcodes): Fix the masks of the Coldfire fmovemd
	and fmovem entries.  Put register list entries before immediate
	mask entries.  Use "l" rather than "L" in the fmovem entries.
	* m68k-dis.c (match_insn_m68k): Remove the PRIV argument and work it
	out from INFO.
	(m68k_scan_mask): New function, split out from...
	(print_insn_m68k): ...here.  If no architecture has been set,
	first try printing an m680x0 instruction, then try a Coldfire one.

2006-04-27  Richard Sandiford  <richard@codesourcery.com>

	bfd/
	* elf32-m68k.c (elf_m68k_pcrel_insn): New structure.
	(elf_m68k_plt_info): Likewise.
	(elf_m68k_plt_info): New table.
	(CFV4E_PLT_ENTRY_SIZE): Rename to...
	(ISAB_PLT_ENTRY_SIZE): ...this.
	(CFV4E_FLAG): Delete.
	(elf_cfv4e_plt0_entry): Rename to...
	(elf_isab_plt0_entry): ...this.  Adjust comments.  Use (-6,%pc,%d0)
	for the second instruction too.
	(elf_cfv4e_plt_entry): Rename to...
	(elf_isab_plt_entry): ...this.  Adjust comments and use (-6,%pc,%d0).
	(elf_isab_plt_info): New table.
	(CPU32_FLAG): Delete.
	(PLT_CPU32_ENTRY_SIZE): Rename to...
	(CPU32_PLT_ENTRY_SIZE): ...this.
	(elf_cpu32_plt0_entry): Update bounds accordingly.
	(elf_cpu32_plt_entry): Likewise.
	(elf_cpu32_plt_info): New table.
	(elf_m68k_link_hash_table): Add a plt_info field.
	(elf_m68k_link_hash_table_create): Initialize it.
	(elf_m68k_get_plt_info): New function.
	(elf_m68k_always_size_sections): Likewise.
	(elf_m68k_adjust_dynamic_symbol): Use the plt_info hash table field.
	(elf_m68k_install_pcrel_field): New function.
	(elf_m68k_finish_dynamic_symbol): Factor code using plt_info and
	elf_m68k_install_pcrel_field.
	(elf_m68k_finish_dynamic_sections): Likewise.
	(elf_m68k_plt_sym_val): Use elf_m68k_get_plt_info.
	(elf_backend_always_size_sections): Define.

2006-04-26  Julian Brown  <julian@codesourcery.com>

	* gas/config/tc-arm.c (parse_vfp_reg_list): Improve register bounds
	checking.
	(do_neon_mov): Enable several VMOV variants for VFP. Add suitable
	architecture version checks.
	(insns): Allow overlapping instructions to be used in VFP mode.

   	* gas/testsuite/gas/arm/vfp-neon-overlap.s: New test. Overlapping
	VFP/Neon instructions.
	* gas/testsuite/gas/arm/vfp-neon-overlap.d: Expected output of above.
	* gas/testsuite/gas/arm/vfp1xD.d: Test for fldmx/fstmx.
	* gas/testsuite/gas/arm/vfp1xD_t2.d: Likewise.
	* gas/testsuite/gas/arm/vfpv3-32drs.d: Likewise.

   	* opcodes/arm-dis.c (coprocessor_opcodes): Don't interpret fldmx/fstmx
	as vldm/vstm.

2006-04-26  Julian Brown  <julian@codesourcery.com>

	* gas/config/tc-arm.c (neon_is_quarter_float): Move, and rename to...
	(is_quarter_float): Rename from above. Simplify slightly.
	(parse_qfloat_immediate): Parse a "quarter precision" floating-point
	number.
	(parse_neon_mov): Parse floating-point constants.
	(neon_qfloat_bits): Fix encoding.
	(neon_cmode_for_move_imm): Tweak to use floating-point encoding in
	preference to integer encoding when using the F32 type.

   	* gas/testsuite/gas/arm/neon-const.s: New testcase. Neon floating-point
	constants.
	* gas/testsuite/gas/arm/neon-const.d: Expected output of above.
	* gas/testsuite/gas/arm/neon-cov.d: Expect floating-point disassembly
	for VMOV.F32.

   	* opcodes/arm-dis.c (print_insn_neon): Disassemble floating-point
	constant VMOV.

2006-04-24  Julian Brown  <julian@codesourcery.com>

	* libiberty/floatformat.c (floatformat_to_double): Fix (biased)
	exponent=0 case.

2006-04-12  Carlos O'Donell  <carlos@codesourcery.com>

	* Makefile.tpl: Add install-html to install target deps.
	* Makefile.in: Regenerate.

2006-04-07  Julian Brown  <julian@codesourcery.com>

	* gas/config/tc-arm.c (neon_el_type): Make NT_invtype be the zero (so
	zero-initialising structures containing it will lead to invalid
	types).
	(arm_it): Add vectype to each operand.
	(NTA_HASTYPE, NTA_HASINDEX): Constants used in neon_typed_alias
	defined field.
	(neon_typed_alias): New structure. Extra information for typed
	register aliases.
	(reg_entry): Add neon type info field.
	(arm_reg_parse): Remove RTYPE argument (revert to previous arguments).
	Break out alternative syntax for coprocessor registers, etc. into...
	(arm_reg_alt_syntax): New function. Alternate syntax handling broken
	out from arm_reg_parse.
	(parse_neon_type): Move. Return SUCCESS/FAIL.
	(first_error): New function. Call to ensure first error which occurs
	is reported.
	(parse_neon_operand_type): Parse exactly one type.
	(NEON_ALL_LANES, NEON_INTERLEAVE_LANES): Move.
	(parse_typed_reg_or_scalar): New function. Handle core of both
	arm_typed_reg_parse and parse_scalar.
	(arm_typed_reg_parse): Parse a register with an optional type.
	(NEON_SCALAR_REG, NEON_SCALAR_INDEX): Extract parts of parse_scalar
	result.
	(parse_scalar): Parse a Neon scalar with optional type.
	(parse_reg_list): Use first_error.
	(parse_vfp_reg_list): Use arm_typed_reg_parse instead of arm_reg_parse.
	(neon_alias_types_same): New function. Return true if two (alias) types
	are the same.
	(parse_neon_el_struct_list): Use parse_typed_reg_or_scalar. Return type
	of elements.
	(insert_reg_alias): Return new reg_entry not void.
	(insert_neon_reg_alias): New function. Insert type/index information as
	well as register for alias.
	(create_neon_reg_alias): New function. Parse .dn/.qn directives and
	make typed register aliases accordingly.
	(s_dn, s_qn): New functions. Handle incorrectly used .dn/.qn at start
	of line.
	(s_unreq): Delete type information if present.
	(s_arm_unwind_save_mmxwr): Remove arg 3 from arm_reg_parse calls.
	(s_arm_unwind_save_mmxwcg): Likewise.
	(s_arm_unwind_movsp): Likewise.
	(s_arm_unwind_setfp): Likewise.
	(parse_shift): Likewise.
	(parse_shifter_operand): Likewise.
	(parse_address): Likewise.
	(parse_tb): Likewise.
	(tc_arm_regname_to_dw2regnum): Likewise.
	(md_pseudo_table): Add dn, qn.
	(parse_neon_mov): Handle typed operands.
	(parse_operands): Likewise.
	(neon_type_mask): Add N_SIZ.
	(N_ALLMODS): New macro.
	(neon_check_shape): Fix typo in NS_DDD_QQQ case. Use first_error.
	(el_type_of_type_chk): Add some safeguards.
	(modify_types_allowed): Fix logic bug.
	(neon_check_type): Handle operands with types.
	(neon_three_same): Remove redundant optional arg handling.
	(do_neon_dyadic_i64_su, do_neon_shl_imm, do_neon_qshl_imm)
	(do_neon_logic, do_neon_qdmulh, do_neon_fcmp_absolute)
	(do_neon_step): Adjust accordingly.
	(neon_cmode_for_logic_imm): Use first_error.
	(do_neon_bitfield): Call neon_check_type.
	(neon_dyadic): Rename to...
	(neon_dyadic_misc): ...this. New name for neon_dyadic. Add bitfield to
	allow modification of type of the destination.
	(do_neon_dyadic_if_su, do_neon_dyadic_if_i, do_neon_dyadic_if_i_d)
	(do_neon_addsub_if_i, do_neon_mul): Adjust accordingly.
	(do_neon_compare): Make destination be an untyped bitfield.
	(neon_scalar_for_mul): Use NEON_SCALAR_REG, NEON_SCALAR_INDEX.
	(neon_mul_mac): Return early in case of errors.
	(neon_move_immediate): Use first_error.
	(neon_mac_reg_scalar_long): Fix type to include scalar.
	(do_neon_dup): Likewise.
	(do_neon_mov): Likewise (in several places).
	(do_neon_tbl_tbx): Fix type.
	(do_neon_ld_st_interleave, neon_alignment_bit, do_neon_ld_st_lane)
	(do_neon_ld_dup): Exit early in case of errors and/or use first_error.
	(opcode_lookup): Update for parse_neon_type returning SUCCESS/FAIL.
	Handle .dn/.qn directives.
	(REGDEF): Add zero for reg_entry neon field.

	* gas/testsuite/gas/arm/neon-psyn.s: Basic test of programmers syntax.
	* gas/testsuite/gas/arm/neon-psyn.d: Expected output of above.

2006-04-03  Carlos O'Donell  <carlos@codesourcery.com>

	* Makefile.tpl: Add install-html target.
	* Makefile.def: Add install-html target.
	* Makefile.in: Regenerate.
	* configure.in: Add --with-datarootdir, --with-docdir,
	and --with-htmldir options.
	* configure: Regenerate.
	* opcodes/Makefile.am: Add install-html target.
	* opcodes/Makefile.in: Regenerate.
	* libiberty/Makefile.in: Add install-html, install-html-am, and
	install-html-recursive targets. Define mkdir_p and 
	NORMAL_INSTALL. 
	* libiberty/configure.ac: AC_SUBST datarootdir, docdir, htmldir.
	* libiberty/configure: Regenerate.
	* libiberty/testsuite/Makefile.in: Add install-html and html targets.
	* ld/Makefile.am: Add install-html, install-html-am, and
	install-html-recursive targets.
	* ld/Makefile.in: Regenerate.
	* ld/configure.in: AC_SUBST datarootdir, docdir, htmldir.
	* ld/configure: Regenerate.
	* ld/po/Make-in: Add install-html target.
	* intl/Makefile.in: Add html info and dvi and install-html to .PHONY
	Add install-html target.
	* gprof/po/Make-in: Add install-html target.
	* gprof/Makefile.am: Add install-html, install-html-am and 
	install-html-recursive targets. 
	* gprof/Makefile.in: Regenerate.
	* gprof/configure.in: AC_SUBST datarootdir, docdir, htmldir.
	* gprof/configure: Regenerate.
	* gas/po/Make-in: Add install-html target.
	* gas/Makefile.am: Add install-html and install-html-recursive targets.
	* gas/Makefile.in: Regenerate.
	* gas/configure.in: AC_SUBST datarootdir, docdir, htmldir.
	* gas/configure: Regenerate.
	* gas/doc/Makefile.am: Add install-html and install-html-am targets.
	* gas/doc/Makefile.in: Regenerate.
	* binutils/po/Make-in: Add install-html target.
	* binutils/Makefile.am: Add install-html and install-html-recursive targets.
	* binutils/Makefile.in: Regenerate.
	* binutils/configure.in: AC_SUBST datarootdir, docdir and htmldir.
	* binutils/configure: Regenerate.
	* binutils/doc/Makefile.am: Add install-html and install-html-am targets.
	* binutils/doc/Makefile.in: Regenerate.
	* bfd/po/Make-in: Add install-html target.
	* bfd/Makefile.am: Rename docdir to bfddocdir. Add datarootdir, docdir
	htmldir. Add install-html and install-html-recursive targets.
	* bfd/Makefile.in: Regenerate.
	* bfd/configure.in: AC_SUBST for datarootdir, docdir and htmldir.
	* bfd/configure: Regenerate.
	* bfd/doc/Makefile.am: Add install-html and install-html-am targets. 
	Define datarootdir, docdir and htmldir.
	* bfd/doc/Makefile.in: Regenerate.
	* etc/Makefile.in: Add install-html target. Add htmldir,
	docdir and datarootdir.
	* etc/configure.texi: Document install-html target.
	* etc/configure.in: AC_SUBST datarootdir, docdir, htmldir.
	* etc/configure: Regenerate.

2005-04-03  Julian Brown  <julian@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* binutils/readelf.c (arm_attr_tag_VFP_arch): Add VFPv3.
    
	* gas/config/tc-arm.c (limits.h): Include.
	(fpu_arch_vfp_v3, fpu_vfp_ext_v3, fpu_neon_ext_v1)
	(fpu_vfp_v3_or_neon_ext): Declare constants.
	(neon_el_type): New enumeration of types for Neon vector elements.
	(neon_type_el): New struct. Define type and size of a vector element.
   	(NEON_MAX_TYPE_ELS): Define constant. The maximum number of types per
	instruction.
	(neon_type): Define struct. The type of an instruction.
	(arm_it): Add 'vectype' for the current instruction.
	(isscalar, immisalign, regisimm, isquad): New predicates for operands.
	(vfp_sp_reg_pos): Rename to...
	(vfp_reg_pos): ...this, and add VFP_REG_Dd, VFP_REG_Dm, VFP_REG_Dn
	tags.
	(arm_reg_type): Add REG_TYPE_NQ (Neon Q register) and REG_TYPE_NDQ
	(Neon D or Q register).
	(reg_expected_msgs): Sync with above. Allow VFD to mean VFP or Neon
	D register.
	(GE_OPT_PREFIX_BIG): Define constant, for use in...
	(my_get_expression): Allow above constant as argument to accept
	64-bit constants with optional prefix.
	(arm_reg_parse): Add extra argument to return the specific type of
	register in when either a D or Q register (REG_TYPE_NDQ) is requested.
	Can be NULL.
	(parse_scalar): New function. Parse Neon scalar (vector reg and index).
	(parse_reg_list): Update for new arm_reg_parse args.
	(parse_vfp_reg_list): Allow parsing of Neon D/Q register lists.
	(parse_neon_el_struct_list): New function. Parse element/structure
	register lists for VLD<n>/VST<n> instructions.
	(s_arm_unwind_save_vfp): Update for new parse_vfp_reg_list args.
	(s_arm_unwind_save_mmxwr): Likewise.
	(s_arm_unwind_save_mmxwcg): Likewise.
	(s_arm_unwind_movsp): Likewise.
	(s_arm_unwind_setfp): Likewise.
	(parse_big_immediate): New function. Parse an immediate, which may
	be 64 bits wide. Put results in inst.operands[i].
	(parse_shift): Update for new arm_reg_parse args.
	(parse_address): Likewise. Add parsing of alignment specifiers.
	(parse_neon_mov): Parse the operands of a VMOV instruction.
	(operand_parse_code): Add OP_RND, OP_RNQ, OP_RNDQ, OP_RNSC,
	OP_NRDLST, OP_NSTRLST, OP_NILO, OP_RNDQ_I0, OP_RR_RNSC,
	OP_RNDQ_RNSC, OP_RND_RNSC, OP_VMOV, OP_RNDQ_IMVNb, OP_RNDQ_I63b,
	OP_I0, OP_I16z, OP_I32z, OP_I64, OP_I64z, OP_oI32b, OP_oRND,
	OP_oRNQ, OP_oRNDQ.
	(parse_operands): Handle new codes above.
	(encode_arm_vfp_sp_reg): Rename to...
	(encode_arm_vfp_reg): ...this. Handle D regs (0-31) too. Complain if
	selected VFP version only supports D0-D15.
	(do_vfp_sp_monadic, do_vfp_sp_dyadic, do_vfp_sp_compare_z)
	(do_vfp_dp_sp_cvt, do_vfp_reg_from_sp, do_vfp_reg2_from_sp2)
	(do_vfp_sp_from_reg, do_vfp_sp2_from_reg2, do_vfp_sp_ldst)
	(do_vfp_dp_ldst, vfp_sp_ldstm, vfp_dp_ldstm): Update for new
	encode_arm_vfp_reg name, and allow 32 D regs.
	(do_vfp_dp_rd_rm, do_vfp_dp_rn_rd, do_vfp_dp_rd_rn)
	(do_vfp_dp_rd_rn_rm, do_vfp_rm_rd_rn): New functions to encode VFP
	insns allowing 32 D regs.
	(do_vfp_sp_const, do_vfp_dp_const, vfp_conv, do_vfp_sp_conv_16)
	(do_vfp_dp_conv_16, do_vfp_sp_conv_32, do_vfp_dp_conv_32): Handle
	constant-load and conversion insns introduced with VFPv3.
	(neon_tab_entry): New struct.
	(NEON_ENC_TAB): Bit patterns for overloaded Neon instructions, and
	those which are the targets of pseudo-instructions.
	(neon_opc): Enumerate opcodes, use as indices into...
	(neon_enc_tab): ...this. Hold data from NEON_ENC_TAB.
	(NEON_ENC_INTEGER, NEON_ENC_ARMREG, NEON_ENC_POLY, NEON_ENC_FLOAT)
	(NEON_ENC_SCALAR, NEON_ENC_IMMED, NEON_ENC_INTERLV, NEON_ENC_LANE)
	(NEON_ENC_DUP): Define meaningful helper macros to look up values in
	neon_enc_tab.
	(neon_shape): Enumerate shapes (permitted register widths, etc.) for
	Neon instructions.
	(neon_type_mask): New. Compact type representation for type
	checking.
	(N_SU_ALL, N_SU_32, N_SU_16_64, N_SUF_32, N_I_ALL, N_IF_32): Common
	permitted type combinations.
	(N_IGNORE_TYPE): New macro.
	(neon_check_shape): New function. Check an instruction shape for
	multiple alternatives. Return the specific shape for the current
	instruction.
	(neon_modify_type_size): New function. Modify a vector type and
	size, depending on the bit mask in argument 1.
	(neon_type_promote): New function. Convert a given "key" type (of an
	operand) into the correct type for a different operand, based on a bit
	mask.
	(type_chk_of_el_type): New function. Convert a type and size into the
	compact representation used for type checking.
	(el_type_of_type_ckh): New function. Reverse of above (only when a
	single bit is set in the bit mask).
	(modify_types_allowed): New function. Alter a mask of allowed types
	based on a bit mask of modifications.
	(neon_check_type): New function. Check the type of the current
	instruction against the variable argument list. The "key" type of the
	instruction is returned.
	(neon_dp_fixup): New function. Fill in and modify instruction bits for
	a Neon data-processing instruction depending on whether we're in ARM
	mode or Thumb-2 mode.
	(neon_logbits): New function.
	(neon_three_same, neon_two_same, do_neon_dyadic_i_su)
	(do_neon_dyadic_i64_su, neon_imm_shift, do_neon_shl_imm)
	(do_neon_qshl_imm, neon_cmode_for_logic_imm)
	(neon_bits_same_in_bytes, neon_squash_bits, neon_is_quarter_float)
	(neon_qfloat_bits, neon_cmode_for_move_imm, neon_write_immbits)
	(neon_invert_size, do_neon_logic, do_neon_bitfield, neon_dyadic)
	(do_neon_dyadic_if_su, do_neon_dyadic_if_su_d, do_neon_dyadic_if_i)
	(do_neon_dyadic_if_i_d, do_neon_addsub_if_i, neon_exchange_operands)
	(neon_compare, do_neon_cmp, do_neon_cmp_inv, do_neon_ceq)
	(neon_scalar_for_mul, neon_mul_mac, do_neon_mac_maybe_scalar)
	(do_neon_tst, do_neon_mul, do_neon_qdmulh, do_neon_fcmp_absolute)
	(do_neon_fcmp_absolute_inv, do_neon_step, do_neon_abs_neg)
	(do_neon_sli, do_neon_sri, do_neon_qshlu_imm, do_neon_qmovn)
	(do_neon_qmovun, do_neon_rshift_sat_narrow)
	(do_neon_rshift_sat_narrow_u, do_neon_movn, do_neon_rshift_narrow)
	(do_neon_shll, neon_cvt_flavour, do_neon_cvt, neon_move_immediate)
	(do_neon_mvn, neon_mixed_length, do_neon_dyadic_long, do_neon_abal)
	(neon_mac_reg_scalar_long, do_neon_mac_maybe_scalar_long)
	(do_neon_dyadic_wide, do_neon_vmull, do_neon_ext, do_neon_rev)
	(do_neon_dup, do_neon_mov, do_neon_rshift_round_imm, do_neon_movl)
	(do_neon_trn, do_neon_zip_uzp, do_neon_sat_abs_neg)
	(do_neon_pair_long, do_neon_recip_est, do_neon_cls, do_neon_clz)
	(do_neon_cnt, do_neon_swp, do_neon_tbl_tbx, do_neon_ldm_stm)
	(do_neon_ldr_str, do_neon_ld_st_interleave, neon_alignment_bit)
	(do_neon_ld_st_lane, do_neon_ld_dup, do_neon_ldx_stx): New
	functions. Neon bit encoding and encoding helpers.
	(parse_neon_type): New function. Parse Neon type specifier.
	(opcode_lookup): Allow parsing of Neon type specifiers.
	(REGNUM2, REGSETH, REGSET2): New macros.
	(reg_names): Add new VFPv3 and Neon registers.
	(NUF, nUF, NCE, nCE): New macros for opcode table.
	(insns): More VFP registers allowed in fcpyd, fmdhr, fmdlr, fmrdh,
	fmrdl, fabsd, fnegd, fsqrtd, faddd, fsubd, fmuld, fdivd, fmacd,
	fmscd, fnmuld, fnmacd, fnmscd, fcmpd, fcmpzd, fcmped, fcmpezd,
	fmdrr, fmrrd. Add Neon instructions vaba, vhadd, vrhadd, vhsub,
	vqadd, vqsub, vrshl, vqrshl, vshl, vqshl{u}, vand, vbic, vorr, vorn,
	veor, vbsl, vbit, vbif, vabd, vmax, vmin, vcge, vcgt, vclt, vcle,
	vceq, vpmax, vpmin, vmla, vmls, vpadd, vadd, vsub, vtst, vmul,
	vqdmulh, vqrdmulh, vacge, vacgt, vaclt, vacle, vrecps, vrsqrts,
	vabs, vneg, v{r}shr,  v{r}sra, vsli, vsri, vqshrn, vq{r}shr{u}n,
	v{r}shrn, vshll, vcvt, vmov, vmvn, vabal, vabdl, vaddl, vsubl,
	vmlal, vmlsl, vaddw, vsubw, v{r}addhn, v{r}subhn, vqdmlal, vqdmlsl,
	vqdmull, vmull, vext, vrev64, vrev32, vrev16, vdup, vmovl, v{q}movn,
	vzip, vuzp, vqabs, vqneg, vpadal, vpaddl, vrecpe, vrsqrte, vcls,
	vclz, vcnt, vswp, vtrn, vtbl, vtbx, vldm, vstm, vldr, vstr,
	vld[1234], vst[1234], fconst[sd], f[us][lh]to[sd], fto[us][lh][sd].
	(tc_arm_regname_to_dw2regnum): Update for arm_reg_parse args.
	(arm_cpu_option_table): Add Neon and VFPv3 to Cortex-A8.
	(arm_option_cpu_value): Add vfp3 and neon.
	(aeabi_set_public_attributes): Support VFPv3 and NEON attributes.
	Fix VFPv1 attribute.

	* gas/testsuite/gas/arm/copro.s: Avoid ldcl which encodes as a bad Neon
	instruction.
	* gas/testsuite/gas/arm/copro.d: Update accordingly.
	* gas/testsuite/gas/arm/neon-cond.s: New test. Conditional Neon opcodes
	in ARM mode.
	* gas/testsuite/gas/arm/neon-cond.d: Expected results of above.
	* gas/testsuite/gas/arm/neon-cov.s: New test. Coverage of Neon
	instructions.
	* gas/testsuite/gas/arm/neon-cov.d: Expected results of above.
	* gas/testsuite/gas/arm/neon-ldst-es.s: New test. Element and structure
	loads and stores.
	* gas/testsuite/gas/arm/neon-ldst-es.d: Expected results of above.
	* gas/testsuite/gas/arm/neon-ldst-rm.s: New test. Single and multiple
	register loads and stores.
	* gas/testsuite/gas/arm/neon-ldst-rm.d: Expected results of above.
	* gas/testsuite/gas/arm/neon-omit.s: New test. Omission of optional
	operands.
	* gas/testsuite/gas/arm/neon-omit.d: Expected results of above.
	* gas/testsuite/gas/arm/vfp1.d: Expect Neon syntax for some VFP
	instructions.
	* gas/testsuite/gas/arm/vfp1_t2.d: Likewise.
	* gas/testsuite/gas/arm/vfp1xD.d: Likewise.
	* gas/testsuite/gas/arm/vfp1xD_t2.d: Likewise.
	* gas/testsuite/gas/arm/vfp2.d: Likewise.
	* gas/testsuite/gas/arm/vfp2_t2.d: Likewise.
	* gas/testsuite/gas/arm/vfp3-32drs.s: New test. Extended D register
	range for VFP instructions.
	* gas/testsuite/gas/arm/vfp3-32drs.d: Expected results of above.
	* gas/testsuite/gas/arm/vfp3-const-conv.s: New test. VFPv3
	constant-load and conversion instructions.
	* gas/testsuite/gas/arm/vfp3-const-conv.d: Expected results of above.

	* include/opcode/arm.h (FPU_VFP_EXT_V3): Define constant.
	(FPU_NEON_EXT_V1): Likewise.
	(FPU_VFP_HARD): Update.
	(FPU_VFP_V3): Define macro.
	(FPU_ARCH_VFP_V3, FPU_ARCH_VFP_V3_PLUS_NEON_V1): Define macros.

	* opcodes/arm-dis.c (coprocessor_opcodes): Add %A, %B, %k,
	convert %<code>[zy] into %[zy]<code>.  Expand meaning of
	%<bitfield>['`?].
	Add unified load/store instruction names.
	(neon_opcode_table): New.
	(arm_opcodes): Expand meaning of %<bitfield>['`?].
	(arm_decode_bitfield): New.
	(print_insn_coprocessor): Add pc argument. Add %A & %B specifiers.
	Use arm_decode_bitfield and adjust numeric specifiers.
	Adjust %z & %y.
	(print_insn_neon): New.
	(print_insn_arm): Adjust print_insn_coprocessor call. Call
	print_insn_neon. Use arm_decode_bitfield and adjust numeric specifiers.
	(print_insn_thumb32): Likewise.

2005-04-01  Paul Brook  <paul@codesourcery.com>

	* config/tc-arm.c (arm_fix_adjustable): Return 0 for function symbols.

2006-03-30  Mark Mitchell <mark@codesourcery.com>

	* libiberty/configure.ac: Add cygpath for mingw hosts.
	* libiberty.configure: Rebuilt.
	* libiberty/Makefile.in: Add cygpath.
	* libiberty/cygpath.c: New.

2006-03-30  Jim Blandy	<jimb@codesourcery.com>

	* include/libiberty.h (pex_write_input): New declaration.

	* libiberty/pex-common.c (pex_write_input): New function.
	* libiberty/pexecute.txh (pex_write_input): Document it.
	* libiberty/pex-common.h (struct pex_funcs): New function ptr fdopenw.
	* libiberty/pex-unix.c (pex_unix_fdopenw): New function.
	(funcs): List it as our fdopenw function.
	* libiberty/pex-win32.c (pex_win32_fdopenw): New function.
	(funcs): List it as our fdopenw function.
	* libiberty/pex-djgpp.c (funcs): Leave fdopenw null.
	* libiberty/pex-msdos (funcs): Same.
	* libiberty/functions.texi: Regenerated.

	* libiberty/pex-common.h (struct pex_obj): Doc fixes.

	* libiberty/functions.texi: Regenerate.

2006-03-27  Mark Mitchell  <mark@codesourcery.com>

	* libiberty/pex-win32.c (pex_win32_exec_child): Close stdout/stderr
	in parent.

2006-03-26  Nathan Sidwell  <nathan@codesourcery.com>

	* gas/config/tc-m68k.c (m68k_init_arch): Move checking of
	cfloat/m68881 to correct architecture before using it.

2006-03-21  Paul Brook  <paul@codesourcery.com>

	* gas/config/tc-arm.c (md_apply_fix): Fix typo in offset mask.

2006-03-21  Nathan Sidwell  <nathan@codesourcery.com>

	* gas/config/tc-m68k.c (find_cf_chip): Merge into ...
	(m68k_ip): ... here.  Use for all chips.  Protect against buffer
	overrun and avoid excessive copying.

	* gcc/config/tc-m68k.c (m68000_control_regs, m68010_control_regs,
	m68020_control_regs, m68040_control_regs, m68060_control_regs,
	mcf_control_regs, mcf5208_control_regs, mcf5213_control_regs,
	mcf5329_control_regs, mcf5249_control_regs, mcf528x_control_regs,
	mcfv4e_control_regs, m68010_control_regs): Rename and reorder to ...
	(m68000_ctrl, m68010_ctrl, m68020_ctrl, m68040_ctrl, m68060_ctrl,
	mcf_ctrl, mcf5208_ctrl, mcf5213_ctrl, mcf5235_ctrl, mcf5249_ctrl, 
	mcf5216_ctrl, mcf5250_ctrl, mcf5271_ctrl, mcf5272_ctrl,
	mcf5282_ctrl, mcfv4e_ctrl): ... these.
	(mcf5275_ctrl, mcf5329_ctrl, mcf5373_ctrl): New.
	(struct m68k_cpu): Change chip field to control_regs.
	(current_chip): Remove.
	(control_regs): New.
	(m68k_archs, m68k_extensions): Adjust.
	(m68k_cpus): Reorder to be in cpu number order.  Adjust.
	(CPU_ALLOW_MC, CPU_ALLOW_NEGATION): Remove.
	(find_cf_chip): Reimplement for new organization of cpu table.
	(select_control_regs): Remove.
	(mri_chip): Adjust.
	(struct save_opts): Save control regs, not chip.
	(s_save, s_restore): Adjust.
	(m68k_lookup_cpu): Give deprecated warning when necessary.
	(m68k_init_arch): Adjust.
	(md_show_usage): Adjust for new cpu table organization.
	* include/opcode/m68k.h (cpu_m68k, cpu_cf, cpu_m68000, cpu_m68008,
	cpu_m68010, cpu_m68020, cpu_m68ec030, cpu_m68040, cpu_m68060,
	cpu_m68851, cpu_m68881, cpu_m68882, cpu_cpu32, cpu_cf5200, cpu_cf5206e,
	cpu_cf5208, cpu_cf521x, cpu_cf5213, cpu_cf5249, cpu_cf528x,
	cpu_cf5307, cpu_cf5329, cpu_cf5407, cpu_cf547x, cpu_cf548x): Remove.

2006-03-20  Mark Mitchell  <mark@codesourcery.com>

	* libiberty/pex-win32.c (<errno.h>): Include.
	(fix_argv): Remove.
	(argv_to_cmdline): New function.
	(std_suffixes): New variable.
	(no_suffixes): Likewise.
	(find_executable): New function.
	(win32_spawn): Likewise.
	(spawn_script): Use win32_spawn instead of _spawnv[p].
	(pex_win32_exec_child): Replace MSVCRT calls with Win32 API calls.
	(pex_win32_wait): Likewise.

2006-03-21  Richard Sandiford  <richard@codesourcery.com>

	* bfd/cpu-m68k.c (bfd_m68k_compatible): Treat ISA A+ and ISA B code as
	incompatible.  Likewise MAC and EMAC code.
	* bfd/elf32-m68k.c (elf32_m68k_merge_private_bfd_data): Use
	bfd_get_compatible to set the new bfd architecture.  Rely on it
	to detect incompatibilities.
	* gas/config/tc-m68k.c (m68k_cpus): Change cpu_cf5208 entries to use
	mcfemac instead of mcfmac.
	* ld/testsuite/ld-m68k/merge-error-1a.s,
	* ld/testsuite/ld-m68k/merge-error-1b.s,
	* ld/testsuite/ld-m68k/merge-error-1a.d,
	* ld/testsuite/ld-m68k/merge-error-1b.d,
	* ld/testsuite/ld-m68k/merge-error-1c.d,
	* ld/testsuite/ld-m68k/merge-error-1d.d,
	* ld/testsuite/ld-m68k/merge-error-1e.d,
	* ld/testsuite/ld-m68k/merge-ok-1a.d,
	* ld/testsuite/ld-m68k/merge-ok-1b.d: New tests.
	* ld/testsuite/ld-m68k/m68k.exp: Run them.

2006-03-20  Paul Brook  <paul@codesourcery.com>

	* gas/config/tc-arm.c (insns): Correct opcodes for ldrbt and strbt.
	* gas/testsuite/gas/arm/thumb32.d: Correct expected output.

2006-03-20  Paul Brook  <paul@codesourcery.com>

	* gas/config/tc-arm.c (parse_operands): Set default error message.

2006-03-20  Paul Brook  <paul@codesourcery.com>

	* gas/config/tc-arm.c (parse_tb): Set inst.error before returning FAIL.

2006-03-20  Paul Brook  <paul@codesourcery.com>

	* gas/config/tc-arm.c (md_apply_fix): Set H bit on blx instruction.

	* gas/testsuite/gas/arm/blx-local.d: New test.
	* gas/testsuite/gas/arm/blx-local.d: New test.

2006-03-20  Paul Brook  <paul@codesourcery.com>

	* gas/config/tc-arm.c (THUMB2_LOAD_BIT): Define.
	(move_or_literal_pool): Handle Thumb-2 instructions.
	(do_t_ldst): Call move_or_literal_pool for =N addressing modes.

	* gas/testsuite/gas/arm/thumb2_pool.d: New test.
	* gas/testsuite/gas/arm/thumb2_pool.s: New test.
