2005-12-30  Sterling Augustine  <sterling@tensilica.com>
	    Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (op_placement_info_struct): Delete single,
	single_size, widest, and widest_size fields.  Add narrowest_slot.
	(xg_emit_insn_to_buf): Remove fmt parameter and compute it here.
	Use xg_get_single_slot to find the slot.
	(finish_vinsn): Use emit_single_op instead of bundle_single_op.
	(bundle_single_op): Rename this to....
	(bundle_tinsn): ...this function, which builds a vliw_insn but does
	not call finish_vinsn.
	(emit_single_op): Use bundle_tinsn instead of bundle_single_op.
	(relax_frag_immed): Get num_slots from cur_vinsn.
	(convert_frag_narrow): Update call to xg_emit_insn_to_buf.
	(convert_frag_immed): Likewise.  Also, get num_slots from cur_vinsn.
	(init_op_placement_info_table): Set narrowest_slot field.  Remove
	code for deleted fields.
	(xg_get_single_size): Return narrowest_size field, not single_size.
	(xg_get_single_format): Return narrowest field, not single.
	(xg_get_single_slot): New.
	(tinsn_to_insnbuf): Rewrite to use tinsn_to_slotbuf.
	* config/xtensa-relax.c (widen_spec_list): Add wide branch relaxations.
	(transition_applies): Check wide branch option availability.

2005-12-29  Sterling Augustine  <sterling@tensilica.com>

	* config/tc-xtensa.h (MAX_MEM_FOR_RS_ALIGN_CODE): Define.

2005-12-29  Sterling Augustine  <sterling@tensilica.com>

	* config/tc-xtensa.c (tinsn_to_slotbuf): Do not zero slotbuf.

2005-12-27  Nathan Sidwell  <nathan@codesourcery.com>

	* config/tc-mt.c (mt_arch): Default to ms1_16_002.
	(md_parse_options): Only allow lowercase.
	(md_show_usage): Update.

2005-12-27  Leif Ekblad  <leif@rdos.net>

	* configure.tgt: Add support for RDOS targets.

2005-12-27  James Troup  <james@nocrew.org>

	PR 1300
	* config/tc-arm.c (md_apply_fix): Fix casts to match type in
	printf format.

2005-12-27  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* po/POTFILES.in: Regenerate.

2005-12-22  Jan Beulich  <jbeulich@novell.com>

	* symbols.h (snapshot_symbol): First parameter is now pointer
	to pointer to symbolS.
	* symbols.c (snapshot_symbol): Likewise. Store resulting symbol
	there. Use symbol_equated_p.
	* expr.c (resolve_expression): Change first argument to
	snapshot_symbol. Track possibly changed add_symbol consistently
	across function. Resolve more special cases with known result.
	Also update final_val when replacing add_symbol.

2005-12-13  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/tc-vax.c: Convert to ISO C90 format.  Fix formatting and
	white space usage as well.

2005-12-20  Sterling Augustine  <sterling@tensilica.com>

	* config/tc-xtensa.c (xtensa_mark_narrow_branches): Set
	is_aligning_branch flag.
	(find_address_of_next_align_frag): Limit by xtensa_fetch_width.
	(future_alignment_required): Except for frags with is_aligning_branch
	flag set, call frag_wane for frags that do not need to be reexamined
	for aligning.
	(relax_frag_immed): Replace orig_vinsn with cur_vinsn to fix a leak.
	(convert_frag_immed): Likewise.
	(convert_frag_narrow): Check is_aligning_branch flag.
	* config/tc-xtensa.h (xtensa_frag_type): Add is_aligning_branch flag.

2005-12-20  Sterling Augustine  <sterling@tensilica.com>

	* config/tc-xtensa.c (xg_find_narrowest_format): Optimize 1 slot case.
	(xg_init_vinsn): Remove redundant initialization.
	(xg_clear_vinsn): Zero all the slots with a single memset.
	* config/xtensa-istack.h (vliw_insn): Move insnbuf field after slots.

2005-12-20  Nathan Sidwell  <nathan@codesourcery.com>

	* doc/t-mt.texi: Update MS1 to MT.

2005-12-16  Nathan Sidwell  <nathan@codesourcery.com>

	Second part of ms1 to mt renaming.
	* configure: Rebuilt.
	* configure.in (mt): Remove special case.
	* config/tc-mt.c (opcodes/mt-desc.h, opcodes/mt-opc.h): Change
	#includes.
	(mt_insn, mt_mach, mt_mach_bitmask, mt_flags, mt_architectures):
	Rename, adjust.
	(md_parse_option, md_show_usage, md_begin, md_assemble,
	md_cgen_lookup_reloc, md_atof): Adjust.
	(mt_force_relocation, mt_apply_fix, mt_fix_adjustable): Rename, adjust.
	* config/tc-mt.h (TC_MT): Rename.
	(LISTING_HEADER, TARGET_ARCH, TARGET_FORMAT): Adjust.
	(md_apply_fix): Adjust.
	(mt_apply_fix, mt_fix_adjustable, mt_force_relocation): Rename.
	(TC_FORCE_RELOCATION, tc_fix_adjustable): Adjust.

2005-12-14  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (add_prefix): More fine-grained handling of
	REX prefixes. Or new prefix value into i.prefix instead of
	assigning.

2005-12-13  DJ Delorie  <dj@redhat.com>

	* config/tc-m32c.c (m32c_md_end): Only pad code sections.

2005-12-12  Paul Brook  <paul@codesourcery.com>

	* config/tc-arm.c (do_branch): Generate EABI branch relocations.
	(do_bl): New function.
	(do_blx): Generate BFD_RELOC_ARM_PCREL_CALL relocation.
	(do_t_blx): Generate BFD_RELOC_THUMB_PCREL_BRANCH23.
	(insns): Use do_bl.
	(md_pcrel_from_section): Add BFD_RELOC_ARM_PCREL_CALL and
	BFD_RELOC_ARM_PCREL_JUMP.
	(md_apply_fix): Merge BFD_RELOC_ARM_PCREL_BRANCH and
	BFD_RELOC_ARM_PCREL_BLX cases.  Handle BFD_RELOC_ARM_PCREL_CALL and
	BFD_RELOC_ARM_PCREL_JUMP.
	(tc_gen_reloc): Handle BFD_RELOC_ARM_PCREL_CALL and
	BFD_RELOC_ARM_PCREL_JUMP.

2005-12-12  Nathan Sidwell  <nathan@codesourcery.com>

	* configure.in: Replace ms1 arch with mt arch.
	* configure: Rebuilt.
	* configure.tgt: Replace ms1 arch with mt arch.
	* config/tc-mt.c: Renamed from tc-ms1.c: Update include files.
	* doc/Makefile.am (CPU_DOCS): Replace ms1 files with mt files.
	* doc/Makefile.in: Rebuilt.

2005-12-07  Hans-Peter Nilsson  <hp@axis.com>

	Change 32-bit-branch expansion for --pic.
	* config/tc-cris.c (STATE_COND_BRANCH_PIC): New relaxation state.
	(md_cris_relax_table): Add entry for STATE_COND_BRANCH_PIC.
	(cris_any_v0_v10_long_jump_size_pic): New macro.
	(md_estimate_size_before_relax): Handle STATE_COND_BRANCH_PIC.
	(md_convert_frag): Similar.
	(md_create_long_jump): Change 32-bit-branch expansion for --pic.
	(md_assemble, gen_cond_branch_32): Adjust similarly.
	(md_parse_option) <case OPTION_PIC>: Adjust md_long_jump_size.
	<case OPTION_ARCH>: Similar, if --pic.

2005-12-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR gas/1874
	* config/tc-i386.c (match_template): Handle monitor.
	(process_suffix): Likewise.

2005-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	Bug gas/1948
	* symbols.c (colon): Also check if now_seg is bss_section when a symbol
	is being redefined.

2005-12-02  Arnold Metselaar  <arnoldm@sourceware.org>

	* config/tc-z80.c (emit_ldreg): fix bug in ld rr,<xx>

2005-11-26  Arnold Metselaar  <arnoldm@sourceware.org>

	* config/tc-z80.c (z80_start_line_hook): issue an error when
	redefining a symbol with equ
	* doc/as.texinfo(equ<z80>): mention difference with .equiv
	* doc/as.texinfo(err): fix typo
	* doc/c-z80.texi(equ): redefining a symbol with equ is no longer
	allowed

2005-11-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	Bug gas/1896
	* config/tc-hppa.c (hppa_fix_adjustable): Don't reject for reduction
	R_HPPA relocations that are 32-bits wide.

2005-11-23  Daniel Jacobowitz  <dan@codesourcery.com>
	    Thiemo Seufer <ths@networkno.de>

	* config/tc-mips.c (append_insn): Handle BFD_RELOC_16_PCREL_S2.
	(macro_build): Complain for invalid branch displacements.
	(mips_validate_fix): Delete.
	(md_apply_fix): Re-add pcrel support for branches.  Use consistent
	text for misaligned branch targets.
	(tc_gen_reloc: Re-add pcrel support for branches.  Handle strange
	BFD pcrel processing.  Remove error for unresolved branches.
	* config/tc-mips.h (TC_VALIDATE_FIX, mips_validate_fix): Delete.

2005-11-22  James E Wilson  <wilson@specifix.com>

	* config/tc-ia64.c (emit_one_bundle): Perform last_slot < 0 check
	even when manual_bundling isn't set.

	* config/tc-ia64.c (slot_index): Emit an error instead of a warning
	when the frag chain is broken by section switching.

2005-11-18  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin-defs.h (IS_BREG, IS_LREG): New macros.
	* config/bfin-parse.y (asm_1): Check register type for load immediate
	instruction.

2005-11-17  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-ppc.c (ppc_frob_file_before_adjust): Do not reference
	dotname.
	* write.c (write_object_file): Do not remove used weakrefd.

2005-11-17  Jan Beulich  <jbeulich@novell.com>

	* dw2gencfi.c (dot_cfi): Put argument parsing for cases
	DW_CFA_restore and DW_CFA_undefined in a loop.

2005-11-17  Jan Beulich  <jbeulich@novell.com>


	* symbols.h (S_CLEAR_VOLATILE): Declare.
	* symbols.c (colon): Also accept redefinable symbols for
	redefinition. Clone them before modifying.
	(S_CLEAR_VOLATILE): Define.
	* cond.c (s_ifdef): Also test for equated symbols.
	* read.c (s_comm_internal): Also exclude non-redefinable
	equated symbols. Clone redefinable ones before modifying.
	(s_weakref): Clone redefinable symbols before modifying.
	* doc/internals.texi: Document sy_volatile, sy_forward_ref,
	S_IS_VOLATILE, S_SET_VOLATILE, S_CLEAR_VOLATILE,
	S_IS_FORWARD_REF, and S_SET_FORWARD_REF.

2005-11-16  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-hppa.c (pa_comm): Set bfd_com_section segment.

2005-11-16  Alan Modra  <amodra@bigpond.net.au>

	* configure.tgt (i386-*-gnu*): Set em=gnu.
	* config/te-gnu.h: New file.
	* config/tc-i386.c: Don't use '/' as comment char for TE_GNU.

2005-11-16  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-ppc.c (ppc_pe_comm): Set bfd_com_section segment.
	* config/tc-alpha.c (s_alpha_comm): Likewise.  Also, remove
	redundant check.
	* read.c (s_lsym): Remove non-BFD assembler sym handling.

2005-11-16  Alan Modra  <amodra@bigpond.net.au>

	* read.c (s_comm_internal): Set bfd_com_section segment.
	(s_mri_common): Likewise.
	* write.c (write_object_file): Remove non-BFD assembler common
	sym handling.

2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/tc-arm.c (s_arm_unwind_save_core): Don't emit an extra
	opcode if r4-r15 are not saved.

2005-11-15  Alan Modra  <amodra@bigpond.net.au>

	* symbols.c (S_GET_VALUE): Remove non-BFD assembler recursion guard.

2005-11-14  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (AR_FCR, AR_EFLAG, AR_CSD, AR_SSD, AR_CFLG,
	AR_FSR, AR_FIR, AR_FDR, AR_CCV, AR_EC): Define.
	(ar): Use AR_* instead of literals.
	(CR_DCR, CR_ITM, CR_IVA, CR_PTA, CR_GPTA, CR_LID, CR_ITV,
	CR_PMV, CR_CMCV): Define.
	(cr): Use CR_* instead of literals.

2005-11-14  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (md): Rename regsym to indregsym and move
	it to the end of the structure.
	(ar): Field regnum is unsigned.
	(cr): Likewise:
	(indirect_reg): Likewise.
	(declare_register_set): Parameter regnum is unsigned.
	(declare_register): Parameter numregs and base_regnum are
	unsigned. So is the local loop variable.
	(md_begin): Restrict scope of local variable regnum, which
	also is unsigned. Replace loops with function calls where
	possible. Re-order things so that register groups are kept
	together. Remove all uses of regsym except for indirect
	registers. Replace use of regsym by indregsym for indirect
	registers.
	(ia64_optimize_expr): Replace use of regsym by indregsym for
	indirect registers, with appropriate bias.

2005-11-14  David Ung  <davidu@mips.com>

	* config/tc-mips.c (mips16_ip): Add handling of 'm' and 'M' codes
	for the MIPS16e save/restore instructions.

2005-11-11  Jan Beulich  <jbeulich@novell.com>

	* doc/Makefile.am: Make asconfig.texi writeable before trying
	to write to it.
	* doc/Makefile.in: Refresh.

2005-11-10  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (intel_e11): Don't special-case segment
	registers in brackets.

2005-11-10  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.c (BAD_ADDR_MODE): Define.
	(arm_reg_parse_multi): Return NULL rather than FAIL.
	(arm_reg_parse): Fix comment, the function returns FAIL rather
	than NULL if it is unable to parse the register name.
	(do_ldrex): Use BAD_ADDR_MODE.
	Change error message for PC-relative addressing.
	(do_strex): Likewise.
	(do_t_ldrex): Use BAD_ADDR_MODE.
	(do_t_strex): Likewise.

2005-11-08   Jean-Jacques Metayer  <jean-jacques.metayer@thomson.net>

	* config/tc-sparc.c (isoctal): Fix thinko.

2005-11-08  Arnold Metselaar  <arnold.metselaar@planet.nl>

	* expr.c (operand <case '$'>): Use DOLLAR_AMBIGU rather than
	flag_mri_m68k as condition for parsing the '$' as a prefix.
	* as.h (DOLLAR_AMBIGU): Define if needed.

2005-11-08  Nathan Sidwell  <nathan@codesourcery.com>

	Add ms2 support.
	* config/tc-ms1.c (ms1_mach_bitmask): Initialize to MS1.
	(ms1_architectures): Add ms2.
	(md_parse_option): Add ms2.
	(md_show_usage): Add ms2.
	(md_assemble): Add JAL_HAZARD detection logic.
	(md_cgen_lookup_reloc): Add MS1_OPERAND_LOOPSIZE case.
	* doc/c-ms1.texi: New.
	* doc/all.texi: Add MS1.
	* doc/Makefile.am (CPU_DOCS): Add c-ms1.texi.
	* doc/Makefile.in: Rebuilt.
	* doc/Makefile: Rebuilt.

2005-11-07  Steve Ellcey  <sje@cup.hp.com>

	* configure: Regenerate after modifying bfd/warning.m4.

2005-11-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR gas/1804
	* config/tc-hppa.c (md_apply_fix): Use number_to_chars_bigendian to
	output constant data.

2005-11-07  Mark Mitchell  <mark@codesourcery.com>

	* doc/Makefile.am (asconfig.texi): Set top_srcdir.
	* doc/Makefile.in: Regenerated.
	* doc/as.texinfo: Document "@FILE".

2005-11-07  Nick Clifton  <nickc@redhat.com>

	PR binutils/1568
	* config/obj-coff.c (obj_coff_section): Set readonly flag with the
	'x' attribute.  Remember the actions of the 'w' and 'n' attributes
	and do not allow the 'x','s' or 'd' attributes to change them.

2005-11-07  John Levon  <levon@movementarian.org>

	* config/tc-i386.h (tc_comment_chars): Define.
	* config/tc-i386.c (line_comment_chars): Use '/' unconditionally.
	(i386_comment_chars): Add.
	(md_parse_options): Process OPTION_DIVIDE.
	(md_show_usage): Describe --divide option.
	* doc/c-i386.texi: Document --divide option.

2005-11-07  Arnold Metselaar  <arnold.metselaar@planet.nl>

	* expr.c (op_encoding): Map '=' to O_SINGLE_EQ, if defined.
	* config/tc-z80.h: Define O_SINGLE_EQ as O_eq.

2005-11-07  Alan Modra  <amodra@bigpond.net.au>

	* macro.c (buffer_and_nest): Skip labels regardless of
	NO_PSEUDO_DOT and flag_m68k_mri.

2005-11-07  Arnold Metselaar  <arnold.metselaar@planet.nl>

	* expr.c (integer_constant): Match only 'B' as binary suffix if
	NUMBERS_WITH_SUFFIX and LOCAL_LABELS_FB.  Allow both 'b' and 'B'
	otherwise.

2005-11-04  Alexandre Oliva  <aoliva@redhat.com>

	* read.c (s_weakref): Do not permit redefinitions.
	* symbols.c (colon): Do not permit redefinitions of equated
	symbols.

2005-11-01  Thiemo Seufer  <ths@networkno.de>

	PR gas/1299
	* Makefile.am: Disable -Werror for the itbl-lex.o rule.
	* Makefile.in: Regenerate.

2005-11-01  Thiemo Seufer  <ths@networkno.de>

	* config/tc-mips.c (md_parse_option): Fix typo in comment.

2005-10-30  Mark Mitchell  <mark@codesourcery.com>

	* as.c (show_usage): Document "@FILE".

2005-10-30  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am (OBJ_FORMATS): Remove vms.
	Run "make dep-am".
	* Makefile.in: Regenerated.

	* dep-in.sed: Replace " ./" with " ".

2005-10-28  Dave Brolley  <brolley@redhat.com>

	Contribute the following change:
	2005-09-19  Dave Brolley  <brolley@redhat.com>

	* config/tc-m32c.c (default_isa): New static variable.
	(m32c_isa): Now of type CGEN_BITSET.
	(md_begin): Pass &m32c_isa to m32c_cgen_cpu_open.

2005-10-28  Paul Brook  <paul@codesourcery.com>

	* config/tc-arm.c (aeabi_set_public_attributes): Use selected_cpu
	instead of mcpu_cpu_opt.

2005-10-27  Sterling Augustine  <sterling@tensilica.com>

	* config/tc-xtensa.c (find_vinsn_conflicts): Change error messages to
	refer to "ports" instead of "queues".
	(check_t1_t2_reads_and_writes): Pass correct interface values to
	xtensa_interface_inout.

2005-10-27  Jan Beulich  <jbeulich@novell.com>

	* read.c (assign_symbol): Also consider equates already defined.
	* symbols.c (symbol_clone): Also clone the underlying BFD symbol.
	* config/obj-coff.h (obj_symbol_clone_hook): New.
	(coff_obj_symbol_clone_hook): Declare.
	* config/obj-coff.c (coff_obj_symbol_clone_hook): New.

2005-10-26  DJ Delorie  <dj@redhat.com>

	* config/tc-m32c.c (md_relax_table, subtype_mappings,
	md_convert_frag): Add jsr.w support.

	* config/tc-m32c.c (md_assemble): Don't use errmsg as the format
	itself.
	(md_cgen_lookup_reloc): Add m32c bitbase operands.  Add 8-s24
	and imm-8-HI operands.

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

	* config/tc-arm.c (insns): Correct "sel" entry.

2005-10-26  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (i386_operand): Don't check register prefix here.
	(parse_real_register): Rename from parse_register.
	(parse_register): New.
	(i386_parse_name): New.
	(md_operand): New.
	(intel_e11): Don't tolerate registers in offset expressions anymore.
	(intel_get_token): Don't check register prefix here. Copy the actual
	register token, not the canonical register name.
	* config/tc-i386.h (md_operand): Delete.
	(i386_parse_name): Declare.
	(md_parse_name): Define.

2005-10-25  Arnold Metselaar  <arnold.metselaar@planet.nl>

	* Makefile.am: Add Z80 cpu.
	* Makefile.in: Regenerated.
	* app.c (do_scrub_chars)<TC_Z80>: Correctly scrub "ex af,af'"
	and disallow newlines in quoted strings.
	* configure.tgt: Add z80-*-coff.
	* config/obj-coff.h: Add format "coff-z80".
	* doc/Makefile.am: Add c-z80.texi.
	* doc/Makefile.in: Regenerated.
	* doc/all.texi: Add Z80.
	* doc/c-z80.texi: New file
	* doc/as.texinfo: Add z80 options and some z80-related remarks.
	* config/tc-z80.c: New file
	* config/tc-z80.h: New file
	* NEWS: Mention new support.

2005-10-25  H.J. Lu  <hongjiu.lu@intel.com>

	* write.c (adjust_reloc_syms): Undo the change made on
	2005-04-26 to allow local symbol set to undefined symbol.

2005-10-24  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am (bfin-parse.tab.h): Removed.
	(bfin-parse.h): Added.
	* Makefile.in: Regenerated.

2005-10-25  Alan Modra  <amodra@bigpond.net.au>

	* po/POTFILES.in: Regenerate.
	* po/gas.pot: Regenerate.

2005-10-24  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/tc-bfin.c (Expr_Node_Gen_Reloc): If have symbol + constant,
	make a single reloc with an offset rather than a stack.
	* config/tc-bfin.h (MD_APPLY_SYM_VALUE): Define to 0.

2005-10-24  Alexandre Oliva  <aoliva@redhat.com>

	* read.c (potable): Add weakref.
	(s_weakref): New.
	* read.h (s_weakref): Declare.
	* struc-symbol.h (struct symbol): Add sy_weakrefr and sy_weakrefd.
	* symbols.c (colon): Clear weakrefr.
	(symbol_find_exact): Rename to, and reimplement in terms of...
	(symbol_find_exact_noref): ... new function.
	(symbol_find): Likewise...
	(symbol_find_noref): ... ditto.
	(resolve_symbol_value): Resolve weakrefr without setting their
	values.
	(S_SET_WEAK): Call hook.
	(S_GET_VALUE): Follow weakref link.
	(S_SET_VALUE): Clear weakrefr.
	(S_IS_WEAK): Follow weakref link.
	(S_IS_WEAKREFR, S_SET_WEAKREFR, S_CLEAR_WEAKREFR): New.
	(S_IS_WEAKREFD, S_SET_WEAKREFD, S_CLEAR_WEAKREFD): New.
	(symbol_set_value_expression, symbol_set_frag): Clear weakrefr.
	(symbol_mark_used): Follow weakref link.
	(print_symbol_value_1): Print weak, weakrefr and weakrefd.
	* symbols.h (symbol_find_noref, symbol_find_exact_noref): Declare.
	(S_IS_WEAKREFR, S_SET_WEAKREFR, S_CLEAR_WEAKREFR): Declare.
	(S_IS_WEAKREFD, S_SET_WEAKREFD, S_CLEAR_WEAKREFD): Declare.
	* write.c (adust_reloc_syms): Follow weakref link.  Do not
	complain if target is undefined.
	(write_object_file): Likewise.  Remove weakrefr symbols.  Drop
	unreferenced weakrefd symbols.
	* config/obj-coff.c (obj_frob_symbol): Do not force WEAKREFD
	symbols EXTERNAL.
	(pecoff_obj_set_weak_hook, pecoff_obj_clear_weak_hook): New.
	* config/obj-coff.h (obj_set_weak_hook, obj_clear_weak_hook): Define.
	* doc/as.texinfo: Document weakref.
	* doc/internals.texi: Document new struct members, internal
	functions and hooks.

2005-10-24  Jie Zhang  <jie.zhang@analog.com>

	* Makefile.am (bfin-parse.h): Renamed from bfin-parse.tab.h.
	(EXTRA_DIST): Add bfin-parse.h and bfin-lex.c.
	* Makefile.in: Regenerate.
	* config/bfin-lex.l: Include bfin-parse.h instead of bfin-parse.tab.h.
	* config/tc-bfin.c (md_chars_to_number): Change the type of first
	argument from unsigned char * to char * to remove signedness warnings.

2005-10-24  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (enum reg_symbol): Delete IND_MEM.
	(dot_rot): Change type of num_* variables. Check for positive count.
	(ia64_optimize_expr): Re-structure.
	(md_operand): Check for general register.

2005-10-24  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (declare_register): Call symbol_create.
	(md_begin): Remove local variables total, ar_base, and cr_base.
	Start loops for registers at their respective first one. Don't
	update md.regsym for alias names. Generate alias name tp for r13.

2005-10-21  DJ Delorie  <dj@redhat.com>

	* config/tc-m32c.c (md_cgen_lookup_reloc): Add more relocs.  Print
	names unstead of numbers.

2005-10-19  David Ung  <davidu@mips.com>

	* config/tc-mips.c (append_insn): Convert MIPS16 jr/jalr jumps
	into jrc/jalrc versions if ISA_MIPS32+ and not doing the swap,
	hence avoiding to emit a nop.

2005-10-19  Jie Zhang  <jie.zhang@analog.com>

	* config/tc-bfin.c (md_begin): Let the lex_type of '(' be
	LEX_BEGIN_NAME.
	(bfin_start_line_hook): Remove the workaround for LSETUP(.
	(bfin_name_is_register): Remove the workarounds for LSETUP(
	and SAA(.
	(bfin_start_label): Ditto.

2005-10-18  Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (xtensa_end_directive): Restore
	default_lit_sections regardless of use_literal_section.

2005-10-18  Jie Zhang  <jie.zhang@analog.com>

	* Makefile.am (bfin-lex.c): Update ylwrap invocation.
	* Makefile.in: Regenerated.

2005-10-18  Arnold Metselaar  <arnold.metselaar@planet.nl>

	* doc/as.texinfo (.loc) Fix placement of '@end table'.

2005-10-17  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa-istack.h (TInsn): Replace dwarf2_line_info with an
	unsigned line number.  Do not include "dwarf2dbg.h".
	* config/tc-xtensa.c (md_pseudo_table): Remove entry for "loc".
	(xtensa_dwarf2_directive_loc, xtensa_dwarf2_emit_insn): Delete.
	(xg_build_to_insn, xg_build_token_insn): Update TInsn uses.
	(md_assemble): Use as_where instead of dwarf2_where.
	(xg_assemble_vliw_tokens): Use unsigned line numbers instead of
	dwarf2_line_infos.  Change to call new_logical_line followed by
	dwarf2_emit_insn.

2005-10-14  Mike Frysinger <vapier@gentoo.org>

	* doc/as.texinfo (Section): Add missing ']' to .section example.

2005-10-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR binutils/941
	* config/tc-hppa.c (pa_ip): Use as_bad instead of as_fatal when an
	unknown opcode is found.

2005-10-12  Mark Mitchell  <mark@codesourcery.com>

	* NEWS: Mention @file.

2005-10-12  Nick Clifton  <nickc@redhat.com>

	* config/tc-avr.c: Convert to ISO C90 format.  Fix formatting and
	generally tidy up the code.
	* config/tc-avr.h: Likewise.

2005-10-12  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (dot_reg_val): Use expression_and_evaluate.
	(dot_pred_rel): Likewise.
	(parse_operand): Likewise.
	(ia64_unrecognized_line): Likewise.
	(md_operand): Likewise.

2005-10-11  Jan Beulich  <jbeulich@novell.com>

	* expr.h (enum expr_mode): New.
	(expression): Pass third argument to expr.
	(expression_and_evaluate): New.
	(deferred_expression): New.
	(expr): Add third parameter.
	(resolve_expression): New.
	* struc-symbol.h (struct symbol): New members sy_volatile and
	sy_forward_ref.
	* symbols.c, symbols.h (symbol_clone): New.
	(symbol_clone_if_forward_ref): New.
	(snapshot_symbol): New.
	(S_IS_VOLATILE): New.
	(S_IS_FORWARD_REF): New.
	(S_SET_VOLATILE): New.
	(S_SET_FORWARD_REF): New.
	* as.c (macro_expr): Use expression_and_evaluate.
	* cond.c (s_if): Likewise.
	(s_elseif): Likewise.
	* dw2gencfi.c (cfi_parse_reg): Likewise.
	* expr.c (operand): Add second parameter. Optionally call
	deferred_expression. Pass mode argument to itself and md_parse_name.
	Check mode before trying to evaluate symbol. Call
	symbol_clone_if_forward_ref for both operands.
	(expr): Add third parameter. Pass mode to operand and itself.
	Optionally call resolve_expression.
	(resolve_expression): New.
	(get_single_number): Pass second argument to operand.
	* read.c (potable): New entry for .eqv.
	(read_a_source_file): Handle new == operator.
	(get_absolute_expr): Use expression_and_evaluate.
	(s_lsym): Likewise.
	(assign_symbol): Rename second parameter. Call symbol_clone on
	legal and illegal redefinition. Call S_SET_VOLATILE and
	S_SET_FORWARD_REF depending on mode.
	(s_set): Update description.
	(s_space): Call resolve_expression.
	(pseudo_set): Optionally call deferred_expression. Check
	S_IS_FORWARD_REF before trying to simplify/resolve an expression.
	(equals): Handle ==.
	* config/tc-ia64.h (md_parse_name): Add mode parameter.
	* config/tc-arc.c (arc_parse_cons_expression): Likewise.
	* config/tc-m32r.h (md_parse_name): Likewise.
	(m32r_parse_name): Likewise.
	* config/tc-mmix.h (md_parse_name): Likewise.
	* config/tc-mn10300.h (md_parse_name): Likewise.
	(mn10300_parse_name): Likewise.
	* config/tc-ppc.h (md_parse_name): Likewise.
	* config/tc-sh.h (md_parse_name): Likewise.
	(sh_parse_name): Likewise.
	* config/tc-sh64.h (md_parse_name): Likewise.
	(sh64_consume_datalabel): Likewise.
	* config/tc-tic54x.h (md_parse_name): Likewise.
	* config/tc-m32r.c (m32r_parse_name): Add mode parameter. Check it
	before trying to evaluate symbol.
	* config/tc-mn10300.c (mn10300_parse_name): Likewise.
	* config/tc-sh.c (sh_parse_name): Likewise.
	* config/tc-sh64.c (sh64_consume_datalabel): Add mode parameter. Pass
	second argument to operandf. Pass mode parameter to sh_parse_name.
	* doc/as.texinfo: Document .eqv and the == assignment operator.

2005-10-10  Ian Lance Taylor  <ian@airs.com>

	* Makefile.am (EXTRA_DIST): Remove bfin-lex.l and bfin-defs.h.
	* Makefile.in: Regenerate.

2005-10-10  Arnold Metselaar  <arnold.metselaar@planet.nl>

	* expr.c (operator): Allow "!=" as a synonym for "<>".
	* doc/as.texinfo (Infix Op): Mention "!=".

2005-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/tc-hppa.c (strict): Don't initialize.  Update comment.
	(pa_ip): Promote from PA 1.0 to 1.1 immediately when 1.1 match is
	found.  Simplify handling of "ma" and "mb" completers.

2005-10-08  Paul Brook  <paul@codesourcery.com>

	* config/tc-arm.c: Don't provide fallback default for CPU_DEFAULT.
	(arm_arch_used, thumb_arch_used, selected_cpu, selected_cpu_name):
	New variables.
	(arm_cpu_option_table): Add canonical_name.
	(arm_cpus): Populate canonical_name field.
	(s_arm_eabi_attribute, s_arm_arch, s_arm_cpu, s_arm_fpu,
	aeabi_set_public_attributes, arm_md_end): New functions.
	(md_pseudo_table): Add "cpu", "arch", "fpu" and "eabi_attribute".
	(md_assemble): Set thumb_arch_used and arm_arch_used.
	(md_begin): Set defaut cpu if CPU_DEFAULT not defined.
	* config/tc-arm.h (md_end): Define.
	* doc/c-arm.texi: Document .cpu, .arch, .fpu and .eabi_attribute.

2005-10-06  Khem Raj  <kraj@mvista.com>
	    NIIBE Yutaka  <gniibe@m17n.org>

	* config/tc-sh.c (allow_dollar_register_prefix): New variable.
	(parse_reg_without_prefix): New function.
	(parse_reg): Check for '$' register prefix if --allow-reg-prefix is
	set.
	(option md_longopts): Add allow-reg-prefix option.
	* doc/c-sh.texi: Document --allow-reg-prefix option.
	* NEWS: Mention the new switch.

2005-10-03  Arnold Metselaar  <arnold.metselaar@planet.nl>

	* doc/as.texinfo (Infix Ops):  '<' and '>' are not shift
	operators.

2005-09-30  Sterling Augustine  <sterling@tensilica.com>
	    Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (xtensa_frob_label): Disallow labels in bundles.

2005-09-30  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerated.
	* aclocal.m4: Likewise.

2005-09-30  Mark Mitchell  <mark@codesourcery.com>

	* as.c (main): Use expandargv.

2005-09-30  Jan Beulich  <jbeulich@novell.com>

	* config/tc-tic4x.c (tic4x_set): Advance input_line_pointer past
	(removed) comma.

2005-09-30  Catherine Moore  <clm@cm00re.com>

	* Makefile.am: Bfin support.
	* Makefile.in: Regenerated.
	* aclocal.m4: Regenerated.
	* configure: Regenerated.
	* configure.in: Bfin support.
	* configure.tgt: Bfin support.
	* config/bfin-aux.h: New file.
	* config/bfin-defs.h: New file.
	* config/bfin-lex.l: New file.
	* config/bfin-parse.y: New file.
	* config/tc-bfin.c: New file.
	* config/tc-bfin.h: New file.
	* doc/Makefile.am: Recognize c-bfin.texi.
	* doc/Makefile.in: Regenerated.
	* doc/all.texi: Bfin support.
	* doc/as.texinfo: Likewise.
	* doc/c-bfin.texi: Document bfin-specific syntax and
	directives.

2005-09-30  Paul Brook  <paul@codesourcery.com>

	* config/tc-arm.c (opcode_tag): Add OT_cinfix3_legacy.
	(opcode_lookup): Handle OT_cinfix3_legacy.  Revert earlier change for
	normal infix conditions.
	(C3E): Include Thumb-2 definition.
	(CL, cCL): Define.
	(insns): Use them for legacy mnemonics.

2005-09-30  Matthias Kurz  <mk@baerlap.north.de>

	* asintl.h: Prevent the inclusion of <libintl.h> from the Solaris
	version of <locale.h> when ENABLE_NLS is not defined.

2005-09-29  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (parse_operands): Always parse first operand of
	alloc.

2005-09-29  Arnold Metselaar <arnold.metselaar@planet.nl>
	    Alan Modra  <amodra@bigpond.net.au>

	* app.c (do_scrub_chars): Match open and close quote of strings.
	Remove redundant EOF test in case 7.

2005-09-28  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (reloc): Disable signedness check for 4-byte
	relocations in 16- and 32-bit modes.
	(i386_displacement): Make pc-relative branch handling dependent
	upon operand (rather than address) size.

2005-09-28  Jan Beulich  <jbeulich@novell.com>

	* dw2gencfi.c (dot_cfi): Call ignore_rest_of_line when not fully
	parsing the input.
	(dot_cfi_startproc): Likewise.
	(dot_cfi_endproc): Likewise. Also check no extra input was given.
	(dot_cfi_escape): Likewise.

2005-09-28  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.h (x86_cons_fix_new): Declare unconditionally.
	(TC_CONS_FIX_NEW): Define unconditionally.
	(x86_pe_cons_fix_new): Remove.
	* config/tc-i386.c (signed_cons): New.
	(md_pseudo_table): Add slong.
	(x86_cons_fix_new): Declare unconditionally.
	(x86_pe_cons_fix_new): Merge into x86_cons_fix_new.
	(tc_gen_reloc): Also consider BFD_RELOC_X86_64_32S for gotpc
	conversion.

2005-09-28  Arnold Metselaar  <arnold.metselaar@planet.nl>

	* app.c (do_scrub_chars <LEX_IS_SYMBOL_COMPONENT>): Check for full
	buffer after copying string.

2005-09-27  Paul Brook  <paul@codesourcery.com>

	* config/arm.c (arm_cpus): Add more cpu names.
	* doc/c-arm.texi: Document them.

2005-09-21  Alan Modra  <amodra@bigpond.net.au>

	* read.c (pseudo_set): Don't set undefined symbols to expr_section.

2005-09-20  Richard Henderson  <rth@redhat.com>

	* dwarf2dbg.c (process_entries): Fix uninitialized variable warning.

2005-09-20  Richard Henderson  <rth@redhat.com>

	* dwarf2dbg.c (struct line_entry): Replace frag and frag_ofs
	with label.
	(dwarf2_loc_mark_labels): New.
	(dwarf2_gen_line_info_1): Split out of ...
	(dwarf2_gen_line_info): ... here.  Create the temp symbol here.
	(dwarf2_emit_label): New.
	(dwarf2_directive_loc_mark_labels): New.
	(out_set_addr): Take a symbol instead of frag+ofs.
	(relax_inc_line_addr): Likewise.
	(emit_inc_line_addr): Assert delta non-negative.
	(process_entries): Remove dead code.  Update to work with temp
	symbols instead of frag+ofs.
	* dwarf2dbg.h (dwarf2_directive_loc_mark_labels): Declare.
	(dwarf2_emit_label, dwarf2_loc_mark_labels): Declare.
	* config/obj-elf.c (elf_pseudo_tab): Add loc_mark_labels.
	* config/obj-elf.h (obj_frob_label): New.
	* config/tc-alpha.c (alpha_define_label): Call dwarf2_emit_label.
	* config/tc-arm.c, config/tc-hppa.c, config/tc-m68k.c,
	config/tc-mips.c, config/tc-ppc.c, config/tc-sh.c, config/tc-xtensa.c:
	Similarly in the respective tc_frob_label implementation functions.
	* config/tc-i386.c (md_pseudo_table): Move file and loc to
	non-elf section; add loc_mark_labels.
	* config/tc-ia64.c (struct label_fix): Add dw2_mark_labels.
	(ia64_flush_insns): Check for marked labels; emit line entry if so.
	(emit_one_bundle): Similarly.
	(ia64_frob_label): Record marked labels.
	* config/tc-m68hc11.h (tc_frob_label): Remove.
	* config/tc-ms1.c (md_pseudo_table): Remove file and loc.
	* config/tc-sh.h (tc_frob_label): Pass sym to sh_frob_label.
	* config/tc-sh64.h (tc_frob_label): Likewise.
	* doc/as.texinfo (LNS directives): Docuement .loc_mark_blocks.

2005-09-20  Alan Modra  <amodra@bigpond.net.au>

	* read.c (pseudo_set): Set segment of expression syms to expr_section.

2005-09-14  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (tc_x86_regname_to_dw2regnum): Add selector
	registers, floating point control and status words, and mxcsr as
	well as (for 64-bit code) segment base registers and rflags.

2005-09-09  Dmitry Diky  <diwil@spec.ru>

	* config/tc-msp430.c (msp430_operands): Undo last changes. Instead...
	(msp430_relax_frag): add a guard check to ensure that final fr_subtype
	has been reached.

2005-09-08  Chao-ying Fu  <fu@mips.com>

	* doc/as.texinfo: Document -mdsp and -mno-dsp options.
	* doc/c-mips.texi: Likewise, and document ".set dsp" and ".set nodsp"
	directives.

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

	* config/tc-arm.c (do_smi, do_t_smi): Rename ...
	(do_smc, do_t_smc): ... to this.
	(insns): Remane smi to smc.
	(md_apply_fix, tc_gen_reloc): Rename BFD_RELOC_ARM_SMI to
	BFD_RELOC_ARM_SMC.

2005-09-07  Richard Henderson  <rth@redhat.com>

	* dwarf2dbg.c (dwarf2_where): Set line->isa.
	(dwarf2_set_isa): New.
	(dwarf2_directive_loc): Rearrange to allow all options on one line.
	* dwarf2dbg.h (dwarf2_set_isa): Declare.
	* doc/as.texinfo: Update .loc documentation.

2005-09-07  Richard Henderson  <rth@redhat.com>

	* dwarf2dbg.c: Include safe-ctype.h.
	(DWARF2_LINE_OPCODE_BASE): Bump to 13.
	(current): Initialize.
	(dwarf2_emit_insn): Clear DWARF2_FLAG_BASIC_BLOCK,
	DWARF2_FLAG_PROLOGUE_END, DWARF2_FLAG_EPILOGUE_BEGIN.
	(dwarf2_directive_file): Cope with invalid filename.
	(dwarf2_directive_loc): Add handling for basic_block, prologue_end,
	epilogue_begin, is_stmt, isa.
	(emit_inc_line_addr): Move line_delta == 0, addr_delta == 0 special
	case down lower.
	(process_entries): Handle isa, DWARF2_FLAG_PROLOGUE_END,
	and DWARF2_FLAG_EPILOGUE_BEGIN.
	(out_debug_line): Emit sizes for DW_LNS_set_prologue_end,
	DW_LNS_set_epilogue_begin, DW_LNS_set_isa.
	* dwarf2dbg.h (DWARF2_FLAG_IS_STMT): Rename from DWARF2_FLAG_BEGIN_STMT.
	(DWARF2_FLAG_BASIC_BLOCK): Rename from DWARF2_FLAG_BEGIN_BLOCK.
	(DWARF2_FLAG_PROLOGUE_END, DWARF2_FLAG_EPILOGUE_BEGIN): New.
	(struct dwarf2_line_info): Add isa member.
	* doc/as.texinfo (LNS directives): New node.

2005-09-07  David Ung  <davidu@mips.com>

	* config/tc-mips.c (append_insn): Undo last change.  Instead add
	guard to suppress calling frag_grow if the current instruction is
	one that allows a delay slot.

2005-09-06  Chao-ying Fu  <fu@mips.com>

	* config/tc-mips.c (mips_set_options): Add ase_mt for MT instructions.
	(mips_opts): Add -1 to initialize ase_mt.
	(file_ase_mt): New variable for -mmt.
	(CPU_HAS_MT): New define.
	(validate_mips_insn): Add supports for +t, +T, !, $, *, &, g operand
	formats.
	(mips_ip): Check ase_mt to enable MT instructions.
	Handle !, $, *, &, +T, +t, g operand formats.
	For "mftc1", "mfthc1", "cftc1", "mttc1", "mtthc1", "cttc1", we allow
	odd float registers.
	(OPTION_MT, OPTION_NO_MT): New define.
	(OPTION_COMPAT_ARCH_BASE): Change because of inserting MT define.
	(md_parse_option): Parse OPTION_MT and OPTION_NO_MT.
	(mips_after_parse_args): Set ase_mt based on CPU.
	(s_mipsset): Handle ".set mt" and ".set nomt".
	(mips_elf_final_processing): Remind of adding new flag for MT ASE.
	(md_show_usage): Show usage of -mmt and -mno-mt.
	* doc/as.texinfo: Document -mmt and -mno-mt options.
	* doc/c-mips.texi: Likewise, and document ".set mt" and ".set nomt"
	directives.

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

	* config/tc-arm.c (arm_it): Add relax field.
	(T16_32_TAB): Add addi, addis, add_pc, add_sp, dec_sp, inc_sp,
	b, bcond, ldr_pc, ldr_pc2, ldr_sp, str_sp, subi, subis.
	(do_t_add_sub, do_t_addr, do_t_branch, do_t_ldst,
	do_t_mov_cmp): Allow relaxation.
	(output_relax_insn): New function.
	(put_thumb32_insn): New function.
	(output_inst): Use new functions.
	(md_assemble): Don't throw error on relaxable instructions.
	(insns): Change "b" entry from TCE(...) to tCE(...).
	(md_estimate_size_before_relax): Return 2.
	(md_convert_frag, relax_immediate, relax_adr, relax_addsub,
	relax_branch, arm_relax_frag): New functions.
	(arm_force_relocation): Return 0 for Thumb-2 immediate operand
	relocations.
	* config/tc-arm.h (md_convert_frag): Remove definition.
	(md_relax_frag): Define.
	(arm_relax_frag): Add prototype.

2005-09-02  Paul Brook  <paul@codesourcery.com>

	* config/tc-arm.c (do_rn_rd): Enforce SWP operand constraints.

2005-09-02  Paul Brook  <paul@codesourcery.com>

	* config/tc-arm.c (encode_arm_cp_address): Use
	BFD_RELOC_ARM_T32_CP_OFF_IMM in thumb mode.
	(do_iwmmxt_wldstbh): Use BFD_RELOC_ARM_T32_CP_OFF_IMM_S2 in thumb
	mode.
	(md_assemble): Only allow coprocessor instructions when Thumb-2 is
	available.
	(cCE, cC3): Define.
	(insns): Use them for coprocessor instructions.
	(md_pcrel_from_section): Handle BFD_RELOC_ARM_T32_CP_OFF_IMM.
	(get_thumb32_insn): New function.
	(put_thumb32_insn): New function.
	(md_apply_fix): Handle BFD_RELOC_ARM_T32_CP_OFF_IMM and
	BFD_RELOC_ARM_T32_CP_OFF_IMM_S2.

2005-09-02  Paul Brook  <paul@codesourcery.com>

	* config/tc-arm.c (opcode_lookup): Look for infix opcode when
	incorrect suffix matches.

2005-09-01  David Ung  <davidu@mips.com>

	* config/tc-mips.c (append_insn): Correctly handle mips16 case
	when the frags are different for the 2 instructions we want to
	swap.  If the lengths of the 2 instructions are not the same, we
	won't do the swap but emit an nop.

2005-09-01  Dmitry Diky  <diwil@spec.ru>

	* config/tc-msp430.c (msp430_operands): Emit dwarf2_emit_insn()
	as appropriate. Change frag_variant() to frag_var() for relaxes.

2005-08-29  Nick Clifton  <nickc@redhat.com>

	* write.c (generic_force_reloc): Do not call S_FORCE_RELOC if
	there is no symbol.

2005-08-26  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (intel_e09): Set JumpAbsolute when seeing a PTR-
	qualified operand of a branch.
	(intel_bracket_expr): Set JumpAbsolute here...
	(intel_e11): ... rather than here.

2005-08-26  Christian Groessler  <chris@groessler.org>

	* configure.tgt: Set bfd_gas also for z8k cpu.
	* config/tc-z8k.c (s_segm): Use bfd_set_arch_mach to set machine
	type.
	(newfix): Adapt to bfd reloc types.
	(build_bytes): Adapt to bfd reloc types.  Ensure that enough space
	is available in the current frag.
	(md_convert_frag): Adapt function parameters.
	(tc_gen_reloc): New function.
	(md_section_align): Use bfd_get_section_alignment.
	(md_apply_fix): Adapt to bfd reloc types.  Fix handling of
	BFD_RELOC_Z8K_IMM4L, BFD_RELOC_8, BFD_RELOC_16, and BFD_RELOC_32
	relocations.
	* config/tc-z8k.h (TARGET_ARCH): Define.
	(tc_fix_adjustable): Define.

2005-08-25  Chao-ying Fu  <fu@mips.com>

	* config/tc-mips.c (mips_set_options): Add ase_dsp for DSP instructions.
	(mips_opts): Add -1 to initialize ase_dsp.
	(file_ase_dsp): New variable for -mdsp.
	(CPU_HAS_DSP): New define.
	(validate_mips_insn): Add supports for 3, 4, 5, 6, 7, 8, 9, 0, ', :, @
	operand formats.
	(mips_ip): Add min_range and max_range for checking singed numbers.
	Check ase_dsp to enable DSP instructions.
	Handle 3, 4, 5, 6, 7, 8, 9, 0, ', :, @ operand formats.
	(OPTION_DSP, OPTION_NO_DSP): New define.
	(OPTION_COMPAT_ARCH_BASE): Change because of inserting DSP define.
	(md_parse_option): Parse OPTION_DSP and OPTION_NO_DSP.
	(mips_after_parse_args): Set ase_dsp based on CPU.
	(s_mipsset): Handle ".set dsp" and ".set nodsp".
	(mips_elf_final_processing): Remind of adding new flag for DSP ASE.
	(md_show_usage): Show usage of -mdsp and -mno-dsp.

2005-08-23  David Ung  <davidu@mips.com>

	* config/tc-mips.c (mips_cpu_info_table): Add 5kf to the table of
	cpu names.

2005-08-23  Alan Modra  <amodra@bigpond.net.au>

	PR 1036
	* config/tc-ppc.c (ppc_symbol_chars): Add '%' and '['.

2005-08-23  Phil Edwards  <phil@codesourcery.com>

	* configure.tgt (*-*-vxworks):  Match vxworks* instead.

2005-08-22  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (object_64bit): New.
	(i386_target_format): Initialize it.
	(output_disp): Use object_64bit for relocation type determination.
	(output_imm): Likewise.
	(i386_validate_fix): Likewise.
	(tc_gen_reloc): Likewise.
	(lex_got): Likewise. Remove static mode_name. Change array size
	of gotrel's rel field, and adjust its initializer. Adjust diagnostic.
	(x86_cons): Use object_64bit for deciding whether quad fields can
	have relocations.

2005-08-18  Christian Groessler  <chris@groessler.org>

	* config/tc-h8300.h: Remove TC_RELOC_MANGLE/tc_reloc_mangle.
	* config/tc-mcore.h: Likewise.
	* config/tc-z8k.h: Likewise.
	* config/tc-z8k.c: Likewise.
	* config/tc-sh.h: Remove TC_RELOC_MANGLE and
	sh_coff_reloc_mangle declaration.
	* config/tc-sh.c: (md_apply_fix): Fix comment for case
	BFD_RELOC_SH_USES.

2005-08-18  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* config/tc-sh64.c (sh64_target_format): Check preset_target_arch
	to confirm that no ISA is specified.

2005-08-18  Nick Clifton  <nickc@redhat.com>

	* write.c (relax_segment): Count the number of frags being
	processed and use this to compute a maximum limit on the number of
	iterations that will be allowed when attempting to relax the
	segment.

2005-08-17  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/obj-coff.c (obj_coff_weak): Set auxiliary record
	of NT weak externals to IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY.

2005-08-16  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-ppc.c (ppc_set_cpu): Don't select 64-bit based on
	default cpu.

2005-08-15  Paul Brook  <paul@codesourcery.com>

	* config/tc-arm.c (do_t_mov_cmp): Fix encoding of i16-bit conditional
	instructions.
	(do_t_mvn_tst, do_t_neg, do_t_shift): Ditto.

2005-08-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/tc-ppc.c (parse_cpu): Add -me300 support.
	(md_show_usage): Likewise.
	* doc/c-ppc.texi (PowerPC-Opts): Document it.

2005-08-12 Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* config/tc-s390.c (md_parse_option):  Add cpu type z9-109.
	(md_gather_operands): Add support for optional operands.

2005-08-12  Dmitry Diky <diwil@spec.ru>
	* config/tc-msp430.c (msp430_enable_relax): New flag.
	(msp430_enable_polys): Likewise.
	(OPTION_RELAX): New option.
	(OPTION_POLYMORPHS): Likewise.
	(md_longopts): New long options.
	(md_show_usage): Updated.
	(md_parse_option): Add new options handler.
	(msp430_operands): Add check if polymorph insns are enabled.
	(msp430_force_relocation_local): New function.
	(md_apply_fix): Now delete relocs according to new flags combination.
	(msp430_relax_frag): Convert long branches to short branches only if
	flag msp430_enable_relax is set.
	* config/tc-msp430.h (TC_FORCE_RELOCATION_LOCAL): Defined.
	(msp430_force_relocation_local): Likewise.
	* doc/c-msp430.texi: Describe new options.

2005-08-11  Ian Lance Taylor  <ian@airs.com>

	* Makefile.am ($(srcdir)/make-gas.com): Remove target.
	(stamp-mk.com): Likewise.
	(EXTRA_DIST): Remove make-gas.com from list.
	(MOSTLYCLEANFILES): Remove stamp-mk.com from list.
	* Makefile.in: Regenerate.

2005-08-11  Hans-Peter Nilsson  <hp@axis.com>

	* subsegs.c (subseg_change): Move declaration of seginfo to before
	first statement.

2005-08-11  Alan Modra  <amodra@bigpond.net.au>

	* README-vms: Delete.
	* config-gas.com: Delete.
	* makefile.vms: Delete.
	* vmsconf.sh: Delete.
	* config/atof-tahoe.c: Delete.
	* config/m88k-opcode.h: Delete.
	* config/obj-bout.c: Delete.
	* config/obj-bout.h: Delete.
	* config/obj-hp300.c: Delete.
	* config/obj-hp300.h: Delete.
	* config/tc-a29k.c: Delete.
	* config/tc-a29k.h: Delete.
	* config/tc-h8500.c: Delete.
	* config/tc-h8500.h: Delete.
	* config/tc-m88k.c: Delete.
	* config/tc-m88k.h: Delete.
	* config/tc-tahoe.c: Delete.
	* config/tc-tahoe.h: Delete.
	* config/tc-tic80.c: Delete.
	* config/tc-tic80.h: Delete.
	* config/tc-w65.c: Delete.
	* config/tc-w65.h: Delete.
	* config/te-aux.h: Delete.
	* config/te-delt88.h: Delete.
	* config/te-delta.h: Delete.
	* config/te-dpx2.h: Delete.
	* config/te-hp300.h: Delete.
	* config/te-ic960.h: Delete.
	* config/vms-a-conf.h: Delete.
	* doc/c-a29k.texi: Delete.
	* doc/c-h8500.texi: Delete.
	* doc/c-m88k.texi: Delete.
	* README: Remove obsolete examples, and list of supported targets.
	* Makefile.am: Remove a29k, h8500, m88k, tahoe, tic80, w65,
	bout and hp300 support.
	(DEP_FLAGS): Don't define BFD_ASSEMBLER.
	* configure.in: Remove --enable-bfd-assembler, need_bfd,
	primary_bfd_gas.
	* configure.tgt: Remove a29k, h8300-coff, h8500-*, i960 non-elf,
	m68k non bfd, m88k, or32-coff, tic80-*, vax non-bfd, w65k-*, *-nindy.
	* as.c: Remove all non-BFD_ASSEMBLER code, support for above targets.
	* as.h: Likewise.
	* dw2gencfi.c: Likewise.
	* dwarf2dbg.c: Likewise.
	* ehopt.c: Likewise.
	* input-file.c: Likewise.
	* listing.c: Likewise.
	* literal.c: Likewise.
	* messages.c: Likewise.
	* obj.h: Likewise.
	* output-file.c: Likewise.
	* read.c: Likewise.
	* stabs.c: Likewise.
	* struc-symbol.h: Likewise.
	* subsegs.c: Likewise.
	* subsegs.h: Likewise.
	* symbols.c: Likewise.
	* symbols.h: Likewise.
	* tc.h: Likewise.
	* write.c: Likewise.
	* write.h: Likewise.
	* config/aout_gnu.h: Likewise.
	* config/obj-aout.c: Likewise.
	* config/obj-aout.h: Likewise.
	* config/obj-coff.c: Likewise.
	* config/obj-coff.h: Likewise.
	* config/obj-evax.h: Likewise.
	* config/obj-ieee.h: Likewise.
	* config/tc-arm.c: Likewise.
	* config/tc-arm.h: Likewise.
	* config/tc-avr.c: Likewise.
	* config/tc-avr.h: Likewise.
	* config/tc-crx.h: Likewise.
	* config/tc-d10v.h: Likewise.
	* config/tc-d30v.h: Likewise.
	* config/tc-dlx.h: Likewise.
	* config/tc-fr30.h: Likewise.
	* config/tc-frv.h: Likewise.
	* config/tc-h8300.c: Likewise.
	* config/tc-h8300.h: Likewise.
	* config/tc-hppa.h: Likewise.
	* config/tc-i370.h: Likewise.
	* config/tc-i386.c: Likewise.
	* config/tc-i386.h: Likewise.
	* config/tc-i860.h: Likewise.
	* config/tc-i960.c: Likewise.
	* config/tc-i960.h: Likewise.
	* config/tc-ip2k.h: Likewise.
	* config/tc-iq2000.h: Likewise.
	* config/tc-m32c.h: Likewise.
	* config/tc-m32r.h: Likewise.
	* config/tc-m68hc11.h: Likewise.
	* config/tc-m68k.c: Likewise.
	* config/tc-m68k.h: Likewise.
	* config/tc-maxq.c: Likewise.
	* config/tc-maxq.h: Likewise.
	* config/tc-mcore.c: Likewise.
	* config/tc-mcore.h: Likewise.
	* config/tc-mn10200.h: Likewise.
	* config/tc-mn10300.c: Likewise.
	* config/tc-mn10300.h: Likewise.
	* config/tc-ms1.h: Likewise.
	* config/tc-msp430.c: Likewise.
	* config/tc-msp430.h: Likewise.
	* config/tc-ns32k.c: Likewise.
	* config/tc-ns32k.h: Likewise.
	* config/tc-openrisc.h: Likewise.
	* config/tc-or32.c: Likewise.
	* config/tc-or32.h: Likewise.
	* config/tc-ppc.c: Likewise.
	* config/tc-ppc.h: Likewise.
	* config/tc-s390.h: Likewise.
	* config/tc-sh.c: Likewise.
	* config/tc-sh.h: Likewise.
	* config/tc-sparc.c: Likewise.
	* config/tc-tic30.c: Likewise.
	* config/tc-tic30.h: Likewise.
	* config/tc-tic4x.c: Likewise.
	* config/tc-tic4x.h: Likewise.
	* config/tc-tic54x.c: Likewise.
	* config/tc-tic54x.h: Likewise.
	* config/tc-v850.h: Likewise.
	* config/tc-vax.c: Likewise.
	* config/tc-vax.h: Likewise.
	* config/tc-xstormy16.h: Likewise.
	* config/tc-xtensa.h: Likewise.
	* config/tc-z8k.c: Likewise.
	* config/tc-z8k.h: Likewise.
	* config/vms-a-conf.h
	* doc/Makefile.am: Likewise.
	* doc/all.texi: Likewise.
	* doc/as.texinfo: Likewise.
	* doc/internals.texi: Likewise.
	* doc/Makefile.in: Regenerate.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* config.in: Regenerate.
	* po/POTFILES.in: Regenerate.

2005-08-09  Nick Clifton  <nickc@redhat.com>

	PR 1070
	* macro.c (getstring): Do not treat round parentheses exactly the
	same as angle brackets - the parentheses need to be preserved and
	passed on to the macro processing code.

2005-08-08  Nick Clifton  <nickc@redhat.com>

	* config/tc-msp430.c (MSP430_ISA_21): Define.
	(mcu_types): Add entries for msp430x21xx variants.

2005-08-08  Nick Clifton  <nickc@redhat.com>

	PR 1070
	* macro.c (getstring): Treat round parentheses in the same way as
	angle brackets.
	(get_any_string): Likewise.

2005-08-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR gas/1118
	* as.c (parse_args): Handle -al=<FILE>.

2005-08-07  Nick Clifton  <nickc@redhat.com>

	* read.c (s_app_line): Accept a line number of 0 for compatibility
	with gcc's output for assembler-with-cpp files.

2005-08-05  Paul Brook  <paul@codesourcery.com>

	* config/tc-arm.c (current_it_mask, current_cc): New variables.
	(do_t_add_sub): Use correct encodings inside IT block.
	(do_t_arit3c): Ditto.
	(do_t_it): Simplify logic.  Set current_it_mask and current_cc.
	(md_assemble): Verify conditional suffixes agains IT blocks.

2005-08-05  Paul Brook  <paul@codesourcery.com>

	* config/tc-arm.c (encode_thumb32_immediate): Only accept shifted
	constants.
	(encode_thumb32_shifted_operand): Prohibit register shifts.
	(encode_thumb32_addr_mode): Fix typo.
	(insns): Correct thumb2 ldm and stm opcodes.

2005-08-02  Khem Raj  <kraj@mvista.com>

	* config/tc-arm.c (do_iwmmxt_wldstd): Correct the offset range for
	WLDRD/WSTRD instruction.

2005-08-02  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-ppc.c (md_apply_fix <ELF>): Don't warn on overflow
	if emitting a reloc.

2005-07-29  Thiemo Seufer  <ths@networkno.de>

	* config/tc-mips.c (s_mips_globl): Allow multiple symbols per .globl.

2005-07-29  Paul Brook  <paul@codesourcery.com>

	* config/tc-arm.c (T16_32_TAB): Add "addr". Fix encoding of push and
	pop.
	(do_t_addr): Implement 32-bit variant.
	(do_t_push_pop): Make some errors warnings.  Handle single register
	32-bit case.
	(insns): Use tCE for adr.
	(md_pcrel_from_section): Handle BFD_RELOC_ARM_T32_ADD_PC12.
	(md_apply_fix): Ditto.

2005-07-29  Paul Brook  <paul@codesourcery.com>

	* config/tc-arm.c (parse_tb): New function.
	(enum operand_parse_code): Add OP_TB.
	(parse_operands): Handle OP_TB.
	(do_t_add_sub_w, do_t_tb): New functions.
	(insns): Add entries for addw, subw, tbb and tbh.
	(md_apply_fix): Handle BFD_RELOC_ARM_T32_IMM12.

2005-07-29  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>

	* config/tc-m32r.c (m32r_check_fixup): Fixed X_op check.

2005-07-27  H.J. Lu <hongjiu.lu@intel.com>

	* config/tc-i386.c (handle_large_common): Declare only for ELF.

2005-07-27  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.h (unw_r_record): Change type of fr_mem to unsigned
	int.
	(unw_p_record): Remove unused/redundant fields imask and rmask.
	Combine spoff and pspoff into a union. Combine gr and br into a
	union. Change type of grmask and brmask to unsigned char. Change type
	of frmask to unsigned int.
	(unw_x_record): Combine spoff, pspoff, and treg into a union.
	* config/tc-ia64.c (unwind): New field 'pending_saves'.
	(check_pending_save): New.
	(alloc_record): Clear out entire record.
	(output_psp_gr): Use renamed structure fields.
	(output_psp_sprel): Likewise.
	(output_rp_gr): Likewise.
	(output_rp_br): Likewise.
	(output_rp_psprel): Likewise.
	(output_rp_sprel): Likewise.
	(output_pfs_gr): Likewise.
	(output_pfs_psprel): Likewise.
	(output_pfs_sprel): Likewise.
	(output_preds_gr): Likewise.
	(output_preds_psprel): Likewise.
	(output_preds_sprel): Likewise.
	(output_spill_base): Likewise.
	(output_unat_gr): Likewise.
	(output_unat_psprel): Likewise.
	(output_unat_sprel): Likewise.
	(output_lc_gr): Likewise.
	(output_lc_psprel): Likewise.
	(output_lc_sprel): Likewise.
	(output_fpsr_gr): Likewise.
	(output_fpsr_psprel): Likewise.
	(output_fpsr_sprel): Likewise.
	(output_priunat_gr): Likewise.
	(output_priunat_psprel): Likewise.
	(output_priunat_sprel): Likewise.
	(output_bsp_gr): Likewise.
	(output_bsp_psprel): Likewise.
	(output_bsp_sprel): Likewise.
	(output_bspstore_gr): Likewise.
	(output_bspstore_psprel): Likewise.
	(output_bspstore_sprel): Likewise.
	(output_rnat_gr): Likewise.
	(output_rnat_psprel): Likewise.
	(output_rnat_sprel): Likewise.
	(output_spill_psprel): Likewise.
	(output_spill_sprel): Likewise.
	(output_spill_reg): Likewise.
	(output_fr_mem): Likewise. Allocate one unwind record per set mask
	bit.
	(output_frgr_mem): Likewise.
	(output_gr_mem): Likewise.
	(output_br_mem): Likewise.
	(output_gr_gr): Likewise.
	(output_br_gr): Likewise.
	(fixup_unw_records): Likewise.
	(process_one_record): Use renamed structure fields. For gr_gr and
	br_gr, collect mask from chain of records before output.
	(in_prologue): Simplify and eliminate early returns. Call
	check_pending_save.
	(in_body): Simplify and eliminate early returns.
	(dot_body): Call check_pending_save.
	(md_assemble): Update comment. Deal with pending saves.

2005-07-26  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (optimize_imm): Calculate candidate immediates
	mask from guessed suffix, but mask out other immediate types only
	if at least on candidate is valid for the insn.

2005-07-25  DJ Delorie  <dj@redhat.com>

	* config/tc-m32c.c (md_cgen_lookup_reloc): Add 8 bit operands.
	Support %mod() modifiers from opcodes.
	* doc/c-m32c.texi (M32C-Modifiers): New section.

2005-07-25  Jan Hubicka  <jh@suse.cz>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* config/obj-elf.c: Include "elf/x86-64.h" if TC_I386 is
	defined.
	(elf_com_section_ptr): New.
	(elf_begin): Set elf_com_section_ptr to bfd_com_section_ptr.
	(elf_common_parse): Make it global. Use elf_com_section_ptr
	instead of bfd_com_section_ptr.
	(obj_elf_change_section): Handle x86-64 large bss sections.

	* config/obj-elf.h (elf_com_section_ptr): New.
	(elf_common_parse): New.

	* config/tc-i386.c (handle_large_common): New.
	(md_pseudo_table): Add "largecomm".
	(x86_64_section_letter): New.
	(x86_64_section_word): New.

	* config/tc-i386.h (x86_64_section_word): New.
	(x86_64_section_letter): New.
	(md_elf_section_letter): New. Defined.
	(md_elf_section_word): Likewise.

2005-07-21  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* configure.tgt: Remove i386-*-rtemself*.
	Remove sparc-*-rtemself*.

2005-07-21  Ben Elliston  <bje@gnu.org>

	* config/tc-m68k.h: Remove TE_LYNX conditional code.

2005-07-21  Paul Brook  <paul@codesourcery.com>

	* config/tc-arm.c (encode_thumb32_addr_mode): Don't set
	inst.reloc.pc_rel.

2005-07-20  Tavis Ormandy <taviso@gentoo.org>

	* messages.c: Use vsnprintf instead of vsprintf.

2005-07-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* config/tc-m32r.c (tc_gen_reloc): Check BFD_RELOC_32_PCREL and
	BFD_RELOC_16_PCREL to Support R_M32R_REL32.

2005-07-18  Nick Clifton  <nickc@redhat.com>

	* configure.tgt: Restore alpha ordering to list of arches.

2005-07-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* tc-hppa.c (pa_ip): Reject match for '#' immediate if not pa20.

2005-07-18  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (md_begin): Use IS_ELF.
	(tc_i386_fix_adjustable): Likewise.
	(md_estimate_size_before_relax): Likewise.
	(md_apply_fix): Likewise.
	(i386_target_format): Likewise.
	(lex_got): Define to NULL when not ELF or when LEX_AT. Check IS_ELF.
	(i386_immediate): Remove #ifdef LEX_AT.
	(i386_displacement): Likewise.
	* config/tc-i386.h (x86_cons): Prototype only when ELF and when not
	LEX_AT.

2005-07-18  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (reloc): Convert to ISO C90. Change first
	parameter to unsigned. Parameter sign now is tristate - zero/
	positive mean unsigned/signed, negative means signedness doesn't
	matter. Check field size,
	signedness, and pcrel-ness are in agreement between relocated field
	and relocation type. Adjust diagnostics.
	(optimize_imm): And type mask of operand instead of overwriting it.
	(lex_got): Convert to ISO C90. Add third parameter. Add new field to
	local structure and initialize gotrel accordingly. Pass caller as
	mask of types that the operator can match.
	(x86_cons_fix_new): Let reloc know that signedness of relocation
	doesn't matter.
	(x86_pe_cons_fix_new): Likewise.
	(x86_cons): Pass additional argument to lex_got.
	(i386_immediate): New local variable 'types'. Pass its address as
	additional argument to lex_got. Mask out operand types not supported
	befoe returning.
	(i386_displacement): Likewise. Set bigdisp to all types supported in
	64-bit mode, combining the previously split initialization.

2005-07-18  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (parse_insn): Reject prefix if unavailable in
	current mode.

2005-07-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/tc-hppa.c (pa_ip): Search entire mnemonic before considering
	promoted match.

2005-07-16  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.

2005-07-15  H.J. Lu <hongjiu.lu@intel.com>

	* gas/config/tc-i386.h (CpuVMX): New.
	(CpuUnknownFlags): Add CpuVMX.

2005-07-14  Jim Blandy  <jimb@redhat.com>

	Add support for the Renesas M32C.
	* Makefile.am (CPU_TYPES): List m32c.
	(TARGET_CPU_CFILES): List config/tc-m32c.c.
	(TARGET_CPU_HFILES): List config/tc-m32c.h.
	* configure.in: Add case for m32c.
	* configure.tgt: Add cases for m32c and m32c-*-elf.
	* configure: Regenerated.
	* config/tc-m32c.c, config/tc-m32c.h: New files.
	* doc/Makefile.am (CPU_DOCS): Add c-m32c.texi.
	* doc/Makefile.in: Regenerated.
	* doc/all.texi: Set M32C.
	* doc/as.texinfo: Add text for the M32C-specific options and line
	comment characters, and refer to c-m32c.texi.
	* doc/c-m32c.texi: New file.

2005-07-14  Nick Clifton  <nickc@redhat.com>

	PR 1069
	* config/tc-crx.c (reset_vars): Use strncpy to prevent overflowing
	the ins_parse buffer.

2005-07-10  Ralf Corsepius <ralf.corsepius@rtems.org>

	* configure.tgt: Remove a29k-*-rtems*, hppa*-*-rtems*,i386-go32-rtems*,
	i386-*-rtemscoff*, sparc-*-rtemsaout*.

2005-07-10  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (optimize_disp): Optimize signed 32bit
	displacements.

2005-07-08  Ben Elliston  <bje@au.ibm.com>

	* frags.h: Remove ANSI_PROTOTYPES conditional code.
	* config/obj-elf.h: Likewise.
	* config/tc-h8300.h: Likewise.
	* config/tc-h8500.h: Likewise.
	* config/tc-i370.h: Likewise.
	* config/tc-i386.h: Likewise.
	* config/tc-m68hc11.h: Likewise.
	* config/tc-m68k.h: Likewise.
	* config/tc-ppc.h: Likewise.
	* config/tc-s390.h: Likewise.
	* config/tc-sh.h: Likewise.
	* config/tc-sparc.h: Likewise.
	* config/tc-tic30.c: Likewise.
	* config/tc-w65.h: Likewise.
	* config/tc-xtensa.h: Likewise.

2005-07-08  Hans-Peter Nilsson  <hp@axis.com>

	PR gas/1049
	* config/tc-cris.h (MD_APPLY_SYM_VALUE): Define.

2005-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/tc-tic30.c (debug): Add format attribute.  Fix format
	bugs.

2005-07-06  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (cpu_arch): Add sse3.

	* config/tc-i386.h (CpuSSE3): Renamed from ...
	(CpuPNI): This. Defined as CpuSSE3.

	* doc/c-i386.texi: Document .sse3.

2005-07-06  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (nop): Use zero for L-unit pseudo-nop.

2005-07-05  Nick Clifton  <nickc@redhat.com>

	* config/tc-pdp11.c (md_apply_fix): Cast first argument to
	md_chars_to_numbers to an unsigned pointer in order to avoid a
	compile time warning.

2005-07-05  Paul Brook  <paul@codesourcery.com>

	* config/tc-ppc.c (ppc_target_format): Add VxWorks.

2005-07-05  Aldy Hernandez  <aldyh@redhat.com>

	* config/tc-ms1.c: New.
	* config/tc-ms1.h: New.

2005-07-05  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.h (CpuSVME): New.
	(CpuUnknownFlags): Include CpuSVME.
	* config/tc-i386.c (cpu_arch): Add .pacifica and .svme. Add opteron
	as alias of sledgehammer.
	(md_assemble): Include invlpga in the check for insns with two source
	operands.
	(process_operands): Include SVME insns in the check for ignored
	segment overrides. Adjust diagnostic.
	(i386_index_check): Special-case SVME insns with memory operands.

2005-07-04  Khem Raj  <kraj@mvista.com>
	    Nick Clifton  <nickc@redhat.com>

	* tc-arm.c (struct arm_it): Make operands.imm signed to match its
	use an immediate value.
	(parse_vfp_reg_list): Make the 2nd parameter an unsigned pointer
	since the register field of the operands structure is unsigned.
	(s_arm_unwind_save_vfp): Make "reg" unsigned.
	(parse_operands): Make the 2ns parameter an unsigned pointer to
	match its use.
	(do_ldrd): When using the imm field of the operands structure as a
	second register field, treat it as unsigned.

2005-07-04  Alan Modra  <amodra@bigpond.net.au>

	PR 1004
	* config/obj-elf.c (obj_elf_change_section): Use backend
	get_sec_type_attr.

2005-07-01  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (line_separator_chars): Add '{' and '}'.
	(output_spill_psprel, output_spill_psprel_p): Combine.
	(output_spill_sprel, output_spill_sprel_p): Combine.
	(output_spill_reg, output_spill_regp_p): Combine.
	(process_one_record): Handle psp_psprel.
	(parse_predicate_and_operand): New.
	(convert_expr_to_ab_reg): Two new parameters. Return void. Always
	initialize output values. Emit diagnostic case here.
	(convert_expr_to_xy_reg): Likewise. Don't allow r0, f0, and f1.
	(add_unwind_entry): New second parameter. Allow first parameter to
	be NULL. Parse optional tag, emit warning about further support for
	it otherwise being missing. Check end-of-line when requested.
	(dot_fframe): Clear operand when wrong. Allow tag.
	(dot_vframe): Likewise.
	(dot_vframesp): Likewise. Rename parameter, issue warning when psp
	relative.
	(dot_vframepsp): Remove.
	(dot_altrp): Clear operand when wrong. Allow tag.
	(dot_save): Likewise. Let default case also go through
	add_unwind_entry.
	(dot_savemem): Likewise.
	(dot_restore): Don't return when wrong operand. Allow tag.
	(dot_spillreg, dot_spillreg_p): Combine. Simplify by using
	parse_predicate_and_operand and the new arguments to
	convert_expr_to_ab_reg and convert_expr_to_xy_reg. Don't return
	when wrong operand. Allow tag.
	(dot_restorereg, dot_restorereg_p): Likewise.
	(dot_spillmem, dot_spillmem_p): Likewise.
	(dot_saveg): Clear operand when wrong. Perform tighter operand
	checks. Allow tag.
	(dot_savef): Likewise.
	(dot_saveb): Likewise.
	(dot_savegf): Likewise.
	(dot_spill): Remove end-of-line check. 	Combine. Simplify by using
	parse_predicate_and_operand and the new arguments to
	convert_expr_to_ab_reg and convert_expr_to_xy_reg. Don't return
	when wrong operand. Allow tag.
	(popcount): New.
	(dot_label_state): Don't return when wrong operand.
	(dot_copy_state): Likewise.
	(dot_unwabi): Likewise. Check if in prologue.
	(dot_body): Don't call demand_empty_rest_of_line.
	(dot_prologue): Type of mask and grsave is unsigned. Perform tighter
	operand checks.
	(md_pseudo_table): Also use dot_restorereg for .restorereg.p. Also
	use dot_spillreg for .spillreg.p. Also use dot_spillmem for
	.spillpsp.p and .spillsp.p. Also use dot_vframesp for .vframepsp.
	(parse_operand): New second parameter. Don't deal with '}' here
	anymore. Don't advance past end-of-line.
	(parse_operands): Pass second argument to parse_operand.
	(ia64_start_line): Prevent out-of-bounds access through
	input_line_pointer. Deal with '}' here.
	(ia64_unrecognized_line): Don't deal with '}' here.
	(dot_alias): Use ignore_rest_of_line not its deprecated alias
	discard_rest_of_line.

2005-06-30  Zack Weinberg  <zack@codesourcery.com>

	* config/tc-arm.c (T_OPCODE_BRANCH, encode_arm_addr_mode_2)
	(encode_arm_addr_mode_3, encode_arm_cp_address, do_blx, do_t_blx)
	(do_t_branch, insns [b, bl]): Don't encode pipeline offset.
	(do_branch): Always set inst.reloc.pc_rel.
	(s_arm_elf_cons): Disallow use of (plt) suffix.
	(do_adrl): Adjust X_add_number unconditionally.
	(md_pcrel_from): Rename md_pcrel_from_section, add second segT
	argument.  Handle all adjustment for pipeline offset here.
	(md_apply_fix): No need to undo work of md_pcrel_from.  No
	need to extract pre-encoded pipeline adjustments from various
	branch instructions.  Generally, assume instructions are already
	all-bits-zero in the field being fixed up.  Remove all OBJ_ELF
	special cases.  Handle BFD_RELOC_ARM_PLT32 like
	BFD_RELOC_ARM_PCREL_BRANCH.
	(tc_gen_reloc): Remove OBJ_ELF special case.
	* config/tc-arm.c: Define MD_PCREL_FROM_SECTION.

2005-06-30  Ben Elliston  <bje@gnu.org>

	* Makefile.am (check-DEJAGNU): Don't search for expect.
	* Makefile.in: Regenerate.

2005-06-30  Ben Elliston  <bje@gnu.org>

	* Makefile.am (EXPECT): Set to expect.
	(RUNTEST): Likewise, set to runtest.
	* Makefile.in: Regenerate.

2005-06-23  Ben Elliston  <bje@gnu.org>

	* config/m68k-parse.h: Use ISO C90.
	* config/m68k-parse.y: Likewise.
	* config/tc-m68k.h: Likewise.

2005-06-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR 1013
	* config/tc-i386.c (md_assemble): Don't call optimize_disp on
	movabs.
	(optimize_disp): Optimize only if possible. Don't use 64bit
	displacement on non-constants and do same on constants if
	possible.

2005-06-17  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (reloc): Also handle BFD_RELOC_64_PCREL.
	(tc_i386_fix_adjustable): Include BFD_RELOC_X86_64_GOTOFF64,
	BFD_RELOC_X86_64_DTPOFF64, and BFD_RELOC_X86_64_TPOFF64.
	(output_disp): Do GOTPC conversion also for BFD_RELOC_X86_64_32S
	and BFD_RELOC_32_PCREL. Use BFD_RELOC_X86_64_GOTPC32 instead of
	aborting.
	(output_imm): Do GOTPC conversion also for BFD_RELOC_X86_64_32S.
	Use BFD_RELOC_X86_64_GOTPC32 instead of aborting.
	(tc_gen_reloc): Do GOTPC conversion also for BFD_RELOC_32_PCREL.
	Use BFD_RELOC_X86_64_GOTPC32 instead of aborting. Also handle
	BFD_RELOC_X86_64_GOTOFF64, BFD_RELOC_X86_64_GOTPC32,
	BFD_RELOC_X86_64_DTPOFF64, and BFD_RELOC_X86_64_TPOFF64. Also
	convert 8-byte pc-relative relocations.
	(lex_got): Use BFD_RELOC_X86_64_GOTOFF64 for 64-bit @gotoff.
	(i386_validate_fix): Likewise.
	(x86_cons): Also handle quad values in 64-bit mode.
	(i386_displacement): Also handle BFD_RELOC_X86_64_GOTOFF64.
	(md_apply_fix): Include BFD_RELOC_X86_64_DTPOFF64 and
	BFD_RELOC_X86_64_TPOFF64 in the TLS check. Also convert BFD_RELOC_64
	to pc-relative variant. Also check for BFD_RELOC_64_PCREL.

2005-06-13  Zack Weinberg  <zack@codesourcery.com>

	* config/tc-arm.c (find_real_start): Check S_IS_LOCAL on
	symbolP as well as for names with a leading dot.  Use ACONCAT.
	(md_apply_fix): For branch relocations, only replace value
	with fixP->fx_offset (under #ifdef OBJ_ELF) when !fixP->fx_done.
	(arm_force_relocation): Remove #ifdef OBJ_ELF case.
	* config/tc-arm.h (LOCAL_LABEL): Remove unnecessary parentheses.
	(LOCAL_LABEL_PREFIX): Don't define.

2005-06-10  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-hppa.c (pa_block): Allocate just one byte for the
	fill pattern.

2005-06-08  James E Wilson  <wilson@specifixinc.com>

	PR 994
	* config/tc-ia64.c (slot_index): Revert last change.  If first_frag
	is NULL, then emit a warning, and return the current index.

2005-06-08  Tomas Hurka  <tom@hukatronic.cz>

	PR 991
	* config/tc-m68k.c (m68k_ip): Test for insn compatiblity using a
	temporary copy of the operands array so that changes can be safely
	backed out if the insn does not match.
	(m68k_compare_opcode): Shortcut the test when the parameters are
	the same.  Return 1 if the names match but the second opcode is
	further on in the array than the first.

2005-06-08  Nick Clifton  <nickc@redhat.com>

	PR 994
	* config/tc-ia64.c (slot_index): Check for a NULL first_frag.

2005-06-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>

	* config/tc-m32r.c (use_parallel): Change default value from 1 to 0.

2005-06-07  Aldy Hernandez  <aldyh@redhat.com>
	    Michael Snyder  <msnyder@redhat.com>
	    Stan Cox  <scox@redhat.com>

	* configure.in: Add ms1 case.

	* configure: Regenerate.

	* configure.tgt: Add ms1 case.

2005-06-07  Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.h (resource_table): Change units to unsigned chars.
	* config/tc-xtensa.c (new_resource_table): Likewise.
	(resize_resource_table): Likewise.
	(release_resources): Fix assertion for unsigned values.

2005-06-07  Zack Weinberg  <zack@codesourcery.com>

	* cgen.c, cgen.h, tc.h, write.c, config/obj-coff.c
	* config/tc-a29k.c, config/tc-alpha.c, config/tc-alpha.h
	* config/tc-arc.c, config/tc-arc.h, config/tc-arm.c
	* config/tc-arm.h, config/tc-avr.c, config/tc-avr.h
	* config/tc-cris.c, config/tc-crx.c, config/tc-d10v.c
	* config/tc-d10v.h, config/tc-d30v.c, config/tc-d30v.h
	* config/tc-dlx.c, config/tc-dlx.h, config/tc-fr30.h
	* config/tc-frv.c, config/tc-frv.h, config/tc-h8300.c
	* config/tc-h8500.c, config/tc-hppa.c, config/tc-hppa.h
	* config/tc-i370.c, config/tc-i370.h, config/tc-i386.c
	* config/tc-i386.h, config/tc-i860.c, config/tc-i860.h
	* config/tc-i960.c, config/tc-i960.h, config/tc-ia64.c
	* config/tc-ip2k.c, config/tc-ip2k.h, config/tc-iq2000.c
	* config/tc-iq2000.h, config/tc-m32r.c, config/tc-m32r.h
	* config/tc-m68hc11.c, config/tc-m68hc11.h, config/tc-m68k.c
	* config/tc-m68k.h, config/tc-m88k.c, config/tc-maxq.c
	* config/tc-mcore.c, config/tc-mcore.h, config/tc-mips.c
	* config/tc-mips.h, config/tc-mmix.c, config/tc-mn10200.c
	* config/tc-mn10300.c, config/tc-msp430.c, config/tc-ns32k.c
	* config/tc-openrisc.h, config/tc-or32.c, config/tc-or32.h
	* config/tc-pdp11.c, config/tc-pj.c, config/tc-pj.h
	* config/tc-ppc.c, config/tc-ppc.h, config/tc-s390.c
	* config/tc-s390.h, config/tc-sh64.c, config/tc-sh.c
	* config/tc-sh.h, config/tc-sparc.c, config/tc-sparc.h
	* config/tc-tahoe.c, config/tc-tic30.c, config/tc-tic4x.c
	* config/tc-tic54x.c, config/tc-tic80.c, config/tc-v850.c
	* config/tc-v850.h, config/tc-vax.c, config/tc-vax.h
	* config/tc-w65.c, config/tc-xstormy16.c, config/tc-xstormy16.h
	* config/tc-xtensa.c, config/tc-z8k.c:
	Replace all instances of the string "_apply_fix3" with
	"_apply_fix".
	* po/POTFILES.in, po/gas.pot: Regenerate.

2005-06-08  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am: Run "make dep-am".
	(POTFILES): Remove GAS_CFILES.
	* Makefile.in: Regenerate.

2005-06-07  David Ung  <davidu@mips.com>

	* config/tc-mips.c (mips_cpu_info_table): Add cpu names m4k, 24k,
	24kc, 24kf and 24kfx under MIPS32 release 2.

2005-06-04  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.c (CE, C3, CM, UE, UF): Redefine without reference
	to their Thumb-enabled equivalents.

2005-06-01  Maciej W. Rozycki  <macro@linux-mips.org>

	* config/tc-mips.c (load_register): Add leading "0x" to the
	output of sprintf_vma().
	(macro): Likewise.

2005-06-01  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.c (TxCE, TxC3, TxCM, TUE, TUF): Remove redundant
	test for the presence of thumb version of the parsing functions
	since they must always exist and the test generates a compile time
	warning message.

2005-05-31  Richard Henderson  <rth@redhat.com>

	* config/tc-alpha.c (O_lituse_jsrdirect): New.
	(alpha_reloc_op): Add it.
	(debug_exp): Handle it.
	(DUMMY_RELOC_LITUSE_JSRDIRECT): New.
	(emit_insn): Handle it.
	* doc/c-alpha.texi (Alpha-Relocs): Document lituse_jsrdirect.

2005-05-31  Christian Groessler  <chris@groessler.org>

	* write.c (dump_section_relocs): Convert to ISO-C.
	(write_relocs): Avoid signed/unsigned and fprintf argument
	warnings in debug code.

2005-05-26  Zack Weinberg  <zack@codesourcery.com>

	* config/tc-arm.h (TC_FIX_TYPE): Change to int.
	(TC_INIT_FIX_DATA): Initialize to 0, not NULL.
	* config/tc-arm.c (fix_new_arm): Remove now-unnecessary cast.
	(md_apply_fix3): Delete fix_is_thumb variable; refer to
	fixP->tc_fix_data directly in the sole place it was used.
	Explicitly truncate value, *valP, fixP->fx_addnumber, and
	fixP->fx_offset to 32 bits, for consistent behavior between 32-
	and 64-bit hosts.

2005-05-27  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (struct proc_pending): New.
	(unwind): Replace proc_start with proc_pending.
	(unwind_diagnostic): Check unwind.proc_pending.sym.
	(dot_proc): Replace unwind.proc_start with unwind.proc_pending.sym.
	Check if previous proc not closed. Record all entry points.
	(dot_endp): Replace unwind.proc_start with unwind.proc_pending.sym.
	Set symbol sizes for entry points recorded in dot_proc. Check
	arguments for consistency with respective .proc's.
	(md_assemble): Replace unwind.proc_start with
	unwind.proc_pending.sym.

2005-05-27  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (emit_one_bundle): Restrict scope of ptr, end_ptr,
	and last_ptr. Check all in-use slots for first one with non-NULL
	unwind_record. Don't reload end_ptr before second update round.

2005-05-26  James E Wilson  <wilson@specifixinc.com>

	* config/tc-ia64.c (extra_goodness): Update comment.
	(md_begin): Add debugging code to print best_template table.

2005-05-25  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (md_begin): Don't try to match slot 2 of an MLX
	template.

2005-05-25  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (ia64_gen_real_reloc_type): Also handle
	BFD_RELOC_UNUSED when determining the width of the reloc.

2005-05-25  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (dot_endp): Clear out all three pointers in unwind
	section entry.

2005-05-25  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (dot_radix): Rewrite.

2005-05-25  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (struct unw_rec_list): Remove next_slot_number
	and next_slot_frag.
	(alloc_record): Remove references to next_slot_number and
	next_slot_frag.
	(emit_one_bundle): Likewise.

2005-05-22  Nick Clifton  <nickc@redhat.com>

	* config/tc-v850.c (md_apply_fix3): Pass the address of the
	message buffer when invoking the insert function.

2005-05-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/tc-hppa.c (pa_ip): Promote architecture from PA 1.0 to 1.1
	only if an instruction match is found.

2005-05-20  Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (xg_assemble_vliw_tokens): Change subtraction
	to addition in argument to xtensa_dwarf2_emit_insn.

2005-05-19  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.am: Have 'all' depend on 'info'.
	* Makefile.in: Regenerate.

2005-05-19  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-ppc.c (ppc_force_relocation): Add BFD_RELOC_24_PLT_PCREL.

2005-05-19  Anton Blanchard  <anton@samba.org>

	* config/tc-ppc.c (parse_cpu): Handle "-mpower5".
	(md_show_usage): Document it.
	(ppc_setup_opcodes): Insert POWER5 mnemonics.
	* doc/c-ppc.texi (PowerPC-Opts): Document "-mpower5".

2005-05-19  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (dot_endp): Don't use global symbol for unwind
	relocations in unwind section.

2005-05-18  Nick Clifton  <nickc@redhat.com>

	* config/tc-v850.c (md_apply_fix3): Only use the insertion routine
	if one exists.  Ignore any error messages it may produce, just
	allow it to perform the insertion.

2005-05-17  Zack Weinberg  <zack@codesourcery.com>

	* hash.c (hash_lookup): Add len parameter.  All callers changed.
	(hash_find_n): New interface.
	* hash.h: Prototype hash_find_n.
	* sb.c: Include as.h.
	(scrub_from_sb, sb_to_scrub, scrub_position): New statics.
	(sb_scrub_and_add_sb): New interface.
	* sb.h: Prototype sb_scrub_and_add_sb.
	* input-scrub.c (input_scrub_include_sb): Use sb_scrub_and_add_sb.

	* config/tc-arm.h (TC_FORCE_RELOCATION_LOCAL): Remove
	reference to BFD_RELOC_ARM_GOT12 which is never generated.
	* config/tc-arm.c: Rewrite, adding Thumb-2 support.

2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* doc/Makefile.am (gasver.texi): Don't use $<.
	* doc/Makefile.in: Regenerated.

2005-05-17  Nick Clifton  <nickc@redhat.com>

	PR 876
	* symbols.c (resolve_symbol_value): Do not move symbols whose
	value expression has not been resolved or finalized into the
	absolute section as this will confuse other parts of the assembler
	into thinking that their value is zero.

2005-05-17  Jan Beulich  <jbeulich@novell.com>

	* read.c (_find_end_of_line): New.
	(find_end_of_line): New.
	(HANDLE_CONDITIONAL_ASSEMBLY): Use it.
	(read_a_source_file): Use it.
	(s_globl): Use it.
	(s_macro): Use it.
	(get_line_sb): Use it.
	(s_errwarn): Replace discard_rest_of_line by ignore_rest_of_line.
	(s_comm_internal): Likewise.
	(s_lsym): Likewise.
	(s_macro): Likewise.
	(s_ignore): Use ignore_rest_of_line.
	* read.h (find_end_of_line): Prototype.
	(discard_rest_of_line): Remove prototype. #define to
	ignore_rest_of_line.

2005-05-17  Nick Clifton  <nickc@redhat.com>

	* config/tc-v850,h (TC_FIX_TYPE): Define.
	(TC_INIT_FIX_TYPE): Define.
	* config/tc-v850.c (md_assemble): When creating a fix record the
	operand in the tc_fix_data field.
	(md_apply_fix3): When applying a resolved fix use the operand's
	insertion procedure to store the value, if the operand has been
	recorded.

2005-05-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.am (m68k-parse.c, itbl-parse.c): Update ylwrap
	invocation.
	* Makefile.in: Regenerated.

2005-05-13  Sterling Augustine  <sterling@tensilica.com>
	    Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (xtensa_insnbuf_set_operand): Clarify error
	message.
	(xtensa_mark_zcl_first_insns): Fix incorrect nesting of conditional
	for handling RELAX_CHECK_ALIGN_NEXT_OPCODE.

2005-05-11  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-ppc.c (md_apply_fix3): Allow pcrel forms of BFD_RELOC_16,
	BFD_RELOC_LO16, BFD_RELOC_HI16 and BFD_RELOC_HI16_S.

2005-05-10  Michael Matz  <matz@suse.de>

	* frags.c (frag_grow): Don't be too greedy in allocating memory.

	* config/tc-hppa.c (pa_block): Check arguments to .block[z].

2005-05-10  Hans-Peter Nilsson  <hp@bitrange.com>

	PR binutils/886
	* config/tc-mmix.c (mmix_handle_mmixal): Rearrange slightly.
	Handle label-without-colon before ordinary dot-pseudo as an
	ordinary label.  Don't leak memory for label-without-colon alone
	on a line.  Don't mmixal-munge operands for dot-pseudos.

2005-05-10  Jan Beulich  <jbeulich@novell.com>

	* macro.c (get_any_string): Remove the two last parameters. Replace
	references to the former expand parameter by using macro_alternate.
	Simplify loop condition for checking for end-of-string.
	(get_string): Remove redunant call to sb_skip_white.
	(do_formals): Remove two last arguments to get_any_string.
	(macro_expand): Likewise.
	(expand_irp): Likewise.

2005-05-10  Jan Beulich  <jbeulich@novell.com>

	* read.c (s_macro): Move local variable 'local' to smaller scope.
	Call sb_kill on it when done.

2005-05-09  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (optimize_disp): Discard displacement entirely
	when zero and not required by encoding constraints.

2005-05-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR 936
	* config/tc-sh64.c (sh64_fake_label): New.

	* config/tc-sh64.h (TC_FAKE_LABEL): New.

	* doc/internals.texi (TC_FAKE_LABEL): Document.

	* write.c (TC_FAKE_LABEL): New.
	(adjust_reloc_syms): Use it.
	(write_object_file): Likewise.

2005-05-09  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (parse_insn): Disallow use of prefix separator
	and comma in Intel mode.

2005-05-09  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (tc_x86_regname_to_dw2regnum): Correct 64-bit mode
	names to match ABI. Add more registers for 32-bit and 64-bit modes.
	Make name array static and const. Adjust lookup to account for NULL
	entries (standing for unused register numbers).

2005-05-09  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (parse_insn): Consider all matching instructions
	when checking for string instruction after string-only prefix.

2005-05-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR 940
	* config/tc-ia64.c (start_unwind_section): Properly check
	comdat group with SHF_GROUP.

2005-05-06  Bob Wilson  <bob.wilson@acm.org>

	* doc/c-xtensa.texi (Literal Directive): Spelling correction.

2005-05-06  Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c: Remove excess whitespace.
	* config/tc-xtensa.h: Likewise.
	* config/xtensa-istack.h: Likewise.
	* config/xtensa-relax.c: Likewise.
	* config/xtensa-relax.h: Likewise.

2005-05-06  Nick Clifton  <nickc@redhat.com>

	* sb.h: Fix formatting of comments.
	* sb.c: Fix formatting of comments.

2005-05-06  Jan Beulich  <jbeulich@novell.com>

	* sb.h (sb_add_buffer): Reintroduce.
	* sb.c (sb_add_buffer): Likewise.

2005-05-06  Jan Beulich  <jbeulich@novell.com>

	* macro.c (new_formal, del_formal): New.
	(do_formals): Use new_formal. Check for and parse qualifier. Warn if
	required argument has default value. Stop looking for more formal
	when there was a vararg one.
	(macro_expand_body): Use new_formal and del_formal.
	(macro_expand): Likewise. Initialize local variable err. Don't
	return immediately when encountering an error. Warn when keyword
	argument already had a value assigned. Eliminate duplicate clearing
	of argument value. When current positional argument matches parameter
	of vararg type, assign to it all the remaining arguments. Issue error
	when required parameter does not have value.
	(free_macro): Use del_formal.
	(expand_irp): Initialize formal type. Free buffers associated with
	formal prior to returning.
	* macro.h (struct formal_struct): Add new field 'type' with new
	enumeration type 'formal_type'.
	* doc/as.texinfo: Document macro parameter qualifiers.
	* NEWS: Mention new functionality.

2005-05-06  Jan Beulich  <jbeulich@novell.com>

	* cond.c (s_ifb): New.
	* read.c (potable): Add s_ifb as handler for .ifb and .ifnb.
	* read.h (s_ifb): Prototype.
	* doc/as.texinfo: Document .ifb and .ifnb.

2005-05-05  Steve Ellcey  <sje@cup.hp.com>

	* config/tc-ia64.c (MIN): Undef.

2005-05-05  Paul Brook  <paul@codesourcery.com>

	* config/tc-i386.h (ELF_TARGET_FORMAT): Define for TE_VXWORKS.

2005-05-05  Matt Thomas <matt@3am-software.com>

	* config/tc-vax.c (md_assemble): Don't assume a valueT is 4
	bytes.

2005-05-05  Nick Clifton  <nickc@redhat.com>

	* Update the address and phone number of the FSF organization in
	the GPL notices in the following files:
	COPYING, app.c, as.c, as.h, asintl.h, atof-generic.c, bignum.h,
	bit_fix.h, cgen.c, cgen.h, cond.c, debug.c, depend.c, dw2gencfi.c,
	dw2gencfi.h, dwarf2dbg.c, dwarf2dbg.h, ecoff.c, ecoff.h, ehopt.c,
	emul-target.h, emul.h, expr.c, expr.h, flonum-copy.c,
	flonum-konst.c, flonum.h, frags.c, frags.h, hash.c, hash.h,
	input-file.c, input-file.h, input-scrub.c, itbl-lex.h, itbl-lex.l,
	itbl-ops.c, itbl-ops.h, itbl-parse.y, listing.c, listing.h,
	literal.c, macro.c, macro.h, messages.c, obj.h, output-file.c,
	output-file.h, read.c, read.h, sb.c, sb.h, stabs.c,
	struc-symbol.h, subsegs.c, subsegs.h, symbols.c, symbols.h, tc.h,
	write.c, write.h, config/aout_gnu.h, config/atof-ieee.c,
	config/atof-vax.c, config/itbl-mips.h, config/m68k-parse.h,
	config/m68k-parse.y, config/m88k-opcode.h, config/obj-aout.c,
	config/obj-aout.h, config/obj-bout.c, config/obj-bout.h,
	config/obj-coff.c, config/obj-coff.h, config/obj-ecoff.c,
	config/obj-ecoff.h, config/obj-elf.c, config/obj-elf.h,
	config/obj-evax.c, config/obj-evax.h, config/obj-hp300.c,
	config/obj-hp300.h, config/obj-ieee.c, config/obj-ieee.h,
	config/obj-multi.h, config/obj-som.c, config/obj-som.h,
	config/tc-a29k.c, config/tc-a29k.h, config/tc-alpha.c,
	config/tc-alpha.h, config/tc-arc.c, config/tc-arc.h,
	config/tc-arm.h, config/tc-avr.c, config/tc-avr.h,
	config/tc-cris.c, config/tc-cris.h, config/tc-crx.c,
	config/tc-crx.h, config/tc-d10v.c, config/tc-d10v.h,
	config/tc-d30v.c, config/tc-d30v.h, config/tc-dlx.c,
	config/tc-dlx.h, config/tc-fr30.c, config/tc-fr30.h,
	config/tc-frv.c, config/tc-frv.h, config/tc-generic.c,
	config/tc-generic.h, config/tc-h8300.c, config/tc-h8300.h,
	config/tc-h8500.c, config/tc-h8500.h, config/tc-hppa.c,
	config/tc-hppa.h, config/tc-i370.c, config/tc-i370.h,
	config/tc-i386.c, config/tc-i386.h, config/tc-i860.c,
	config/tc-i860.h, config/tc-i960.c, config/tc-i960.h,
	config/tc-ia64.c, config/tc-ia64.h, config/tc-ip2k.c,
	config/tc-ip2k.h, config/tc-iq2000.c, config/tc-iq2000.h,
	config/tc-m32r.c, config/tc-m32r.h, config/tc-m68851.h,
	config/tc-m68hc11.c, config/tc-m68hc11.h, config/tc-m68k.c,
	config/tc-m68k.h, config/tc-m88k.c, config/tc-m88k.h,
	config/tc-maxq.c, config/tc-maxq.h, config/tc-mcore.c,
	config/tc-mcore.h, config/tc-mips.c, config/tc-mips.h,
	config/tc-mmix.c, config/tc-mmix.h, config/tc-mn10200.c,
	config/tc-mn10200.h, config/tc-mn10300.c, config/tc-mn10300.h,
	config/tc-msp430.c, config/tc-msp430.h, config/tc-ns32k.c,
	config/tc-ns32k.h, config/tc-openrisc.c, config/tc-openrisc.h,
	config/tc-or32.c, config/tc-or32.h, config/tc-pdp11.c,
	config/tc-pdp11.h, config/tc-pj.c, config/tc-pj.h,
	config/tc-ppc.c, config/tc-ppc.h, config/tc-s390.c,
	config/tc-s390.h, config/tc-sh.c, config/tc-sh.h,
	config/tc-sh64.c, config/tc-sh64.h, config/tc-sparc.c,
	config/tc-sparc.h, config/tc-tahoe.c, config/tc-tahoe.h,
	config/tc-tic30.c, config/tc-tic30.h, config/tc-tic4x.c,
	config/tc-tic4x.h, config/tc-tic54x.c, config/tc-tic54x.h,
	config/tc-tic80.c, config/tc-tic80.h, config/tc-v850.c,
	config/tc-v850.h, config/tc-vax.c, config/tc-vax.h,
	config/tc-w65.c, config/tc-w65.h, config/tc-xstormy16.c,
	config/tc-xstormy16.h, config/tc-xtensa.c, config/tc-xtensa.h,
	config/tc-z8k.c, config/tc-z8k.h, config/te-386bsd.h,
	config/te-freebsd.h, config/te-hp300.h, config/te-hppa.h,
	config/te-ic960.h, config/te-irix.h, config/te-nbsd.h,
	config/te-netware.h, config/te-sparcaout.h, config/te-sun3.h,
	config/te-tmips.h, config/te-vxworks.h, config/vax-inst.h,
	config/xtensa-istack.h, config/xtensa-relax.c,
	config/xtensa-relax.h, doc/fdl.texi

2005-05-05  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.c (arm_opts): Make -mlittle-endian switch set
	the target_big_endian variable to false.

2005-05-04  Alan Modra  <amodra@bigpond.net.au>

	* config/obj-ecoff.c (ecoff_frob_file_before_fix): Correct section
	list traversal.  Use bfd_section_list_prepend.
	* config/tc-mmix.c (mmix_frob_file): Don't needlessly iterate
	over the section list.
	* config/tc-xtensa.c (xtensa_remove_section): Delete.
	(xtensa_insert_section): Delete.
	(xtensa_move_seg_list_to_beginning): Use bfd_section_list_remove
	and bfd_section_list_prepend.
	(xtensa_reorder_seg_list): Use bfd_section_list_remove and
	bfd_section_list_insert_after.

2005-05-03  Nick Clifton  <nickc@redhat.com>

	* config/obj-ecoff.c (ecoff_frob_file_before_fix): Fix invocations
	of bfd_section_list... macros.
	* config/tc-mmix.c (mmix_frob_file): Likewise.
	* config/tc-xtensa.c (xtensa_remove_section): Likewise.
	(xtensa_insert_section): Likewise.

	* macro.c (macro_hash): Remove static.
	* macro.h (macro_hash): Provide an external declaration.

2005-05-02  H.J. Lu  <hongjiu.lu@intel.com>

	* write.c (write_object_file): Use bfd_section_double_list_remove
	to remove sections.

2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* doc/Makefile.am (gasver.texi): Correct quoting.
	* doc/Makefile.in: Regenerated.

2005-04-29  Ralf Corsepius <ralf.corsepius@rtems.org>

	* configure.tgt: Add h8300*-*-rtemscoff.
	Switch h8300*-*-rtems* to elf.

2005-04-29  H.J. Lu  <hongjiu.lu@intel.com>

	* hash.c: Undo the last change.
	* hash.h: Likewise.

2005-04-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* doc/Makefile.am (gasver.texi): Depend on bfd/configure instead
	of Makefile.
	(DISTCLEANFILES): Remove.
	(MAINTAINERCLEANFILES): Add asconfig.texi.
	* aclocal.m4, Makefile.in, doc/Makefile.in: Regenerated.

2005-04-29  Ben Elliston  <bje@au.ibm.com>

	* Makefile.am (GAS_CFILES): Remove bignum-copy.c.
	(GENERIC_OBJS): Likewise, remove bignum-copy.o.
	(bignum-copy.o): Remove.
	* Makefile.in: Regenerate.
	* makefile.vms (OBJS): Remove bignum-copy.obj.
	* symbols.h (local_symbol_make): Remove declaration.
	(verify_symbol_chain_2): Likewise.
	* symbols.c (local_symbol_make): Make static.
	(max_indent_level): Likewise.
	(verify_symbol_chain_2): Remove.
	* macro.c (macro_hash): Make static.
	* messages.c (fprint_value): Remove.
	* read.h (get_absolute_expr): Remove.
	(emit_leb128_expr): Likewise.
	(do_s_func): Likewise.
	* read.c (do_s_func): Make static.
	(emit_leb128_expr): Likewise.
	(get_absolute_expr): Likewise.
	* as.h (as_howmuch): Remove declaration.
	(fprint_value): Likewise.
	* as.c (myname): Make static.
	* input-scrub.c (as_howmuch): Remove.
	(as_1_char): Likewise.
	* input-file.h (input_file_is_open): Remove.
	* input-file.c (input_file_is_open): Likewise.
	* expr.h (expr_build_unary): Remove declaration.
	(expr_build_binary): Likewise.
	* expr.c (expr_build_unary): Remove.
	(expr_build_binary): Likewise.
	* hash.h (hash_replace): Remove declaration.
	(hash_delete): Likewise.
	* hash.c (hash_replace): Remove.
	(hash_delete): Likewise.
	* bignum-copy.c (bignum_copy): Move from here ..
	* config/tc-vax.c (bignum_copy): .. to here.
	* bignum.h (LOG_TO_BASE_2_OF_10): Remove.
	(bignum_copy): Remove extern declaration.
	* sb.h (string_count): Remove extern declaration.
	(sb_build, sb_add_buffer, sb_print, sb_print_at): Likewise.
	(sb_name): Likewise.
	* sb.c (dsize): Replace preprocessor macro with static int.
	(string_count): Make static.
	(sb_build, sb_add_buffer, sb_print, sb_print_at): Likewise.
	(sb_name): Likewise.
	* config/obj-coff.c (dim_index): Make static.
	* config/tc-i386.c (GOT_symbol): Likewise.
	(output_invalid_buf): Likewise.
	* doc/internals.texi (Warning and error messages): Remove the
	prototype for fprint_value.

2005-04-27  Ben Elliston  <bje@au.ibm.com>

	* link.cmd: Remove.

2005-04-26  H.J. Lu  <hongjiu.lu@intel.com>

	* config/obj-multi.h (FAKE_LABEL_NAME): Defined.

	* read.c (pseudo_set): Disallow symbol set to common symbol.

	PR 857
	* write.c (write_object_file): Report common symbol name when
	disallowing local symbol set to common symbol.
	(adjust_reloc_syms): Disallow local symbol set to undefined
	symbol.

2005-04-25  Jan Beulich  <jbeulich@novell.com>

	* macro.c (macro_expand_body): Replace locals indicator parameters
	with actual macro_entry. New local variables macro_line and err.
	Don't return when encountering an error, just record the fact.
	Detect local symbol name colliding with parameter. Track line number
	inside of macro expansion.
	(do_formals): Move local variable name to wider scope. Check
	parameter of the same name doesn't already exist. In MRI mode, also
	check it doesn't collide with the argument count pseudo-parameter).
	(define_macro): Add file and line number parameters. Remove local
	variable namestr. New local variable error. Initialize macro_entry
	members file, line, and name. Don't return when encountering an
	error, just record the fact. Use %s in some diagnostics for read.c
	to insert the macro name. Free macro_entry on error.
	(macro_expand): Pass macro_entry to macro_epand_body. Don't return
	when encountering an error, just record the fact.
	(expand_irp): Don't return when encountering an error, just record
	the fact.
	* macro.h (macro_struct): New members name, file, and line.
	(define_macro): Add file and line number parameters.
	* read.c (s_macro): Pass file and line to define_macro. Tag warning
	regarding pseudo-op redefinition with the file/line that macro
	definition started at.

2005-04-22  Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (LOOKAHEAD_ALIGNER): Delete macro.
	(future_alignment_required): Remove ifdefs that use it.

2005-04-22  Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (xg_get_build_instr_size): Remove.
	(xg_is_narrow_insn, xg_expand_narrow): Remove.  Merge into...
	(xg_is_single_relaxable_insn): ...here.  Add "targ" and "narrow_only"
	parameters.
	(xg_assembly_relax, xg_find_narrowest_format, relaxation_requirements,
	convert_frag_narrow): Use new version of xg_is_single_relaxable_insn.

2005-04-21  Christian Groessler  <chris@groessler.org>

	* config/tc-z8k.c (md_assemble): Fix buffer overrun in operand[]
	array.

2005-04-20  H.J. Lu  <hongjiu.lu@intel.com>

	* config/obj-aout.h (S_IS_EXTERN): Removed.
	* config/obj-bout.h (S_IS_EXTERN): Likewise.
	* config/obj-coff.h (S_IS_EXTERN): Likewise.
	* symbols.c (S_IS_EXTERN): Likewise.
	* symbols.h (S_IS_EXTERN): Likewise.

	* config/tc-alpha.c (tc_gen_reloc): Replace S_IS_EXTERN with
	S_IS_EXTERNAL.
	* config/tc-d10v.c (md_apply_fix3): Likewise.
	* config/tc-ia64.c (ia64_fix_adjustable): Likewise.
	* config/tc-iq2000.c (iq2000_fix_adjustable): Likewise.
	* config/tc-m32r.c (m32r_fix_adjustable): Likewise.
	* config/tc-mmix.c (mmix_adjust_symtab): Likewise.
	* config/tc-sh64.c (shmedia_frob_file_before_adjust): Likewise.
	(shmedia_md_convert_frag): Likewise.
	* symbols.c (print_symbol_value_1): Likewise.
	* write.c (write_object_file): Likewise.

2005-04-20  Nick Clifton  <nickc@redhat.com>

	* config/tc-xtensa.c (get_aligned_diff): Change type of
	branch_align to offsetT so that its signedness matches that of
	target_size.

	* config/tc-mips.c (macro): Use sprintf_vma to convert a > 32 bit
	number into a readable string.
	(load_register): Likewise.

2005-04-20  Andreas Schwab  <schwab@suse.de>

	* config/tc-ia64.c (specify_resource): Initialize all of tmpl.

2005-04-19  David S. Miller  <davem@davemloft.net>

	* config/tc-sparc.c (md_assemble): If sparc_ip gives us a
	NULL insn, exit early.  Remove now spurious NULL checks.
	(sparc_ip): Use as_bad for unknown opcode errors, set *pinsn
	to NULL and exit.

2005-04-19  Jan Beulich  <jbeulich@novell.com>

	* symbols.h (symbol_find_base): Remove prototype.
	* symbols.c (save_symbol_name): Remove code section conditional upon
	STRIP_UNDERSCORE.
	(symbol_find): Remove.
	(symbol_find_base): Rename to symbol_find.
	* subsegs.c (section_symbol): Replace use of symbol_find_base with
	symbol_find.
	* config/obj-coff.c (tag_insert): Remove code section conditional
	upon STRIP_UNDERSCORE.
	(obj_coff_def): Likewise.
	(obj_coff_endef): Replace use of symbol_find_base with symbol_find.
	(coff_frob_symbol): Likewise.
	(yank_symbols): Likewise.
	(c_section_symbol): Likewise.
	* config/obj-coff.h (DO_NOT_STRIP): Remove.
	* config/tc-arm.c (symbol_locate): Remove code section conditional
	upon STRIP_UNDERSCORE.
	* config/tc-h8300.h (DO_NOT_STRIP): Remove.
	* config/tc-h8500.h (DO_NOT_STRIP): Remove.
	* config/tc-sh.h (DO_NOT_STRIP): Remove.
	* config/tc-w65.h (DO_NOT_STRIP): Remove.
	* config/tc-z8k.h (DO_NOT_STRIP): Remove.

2005-04-19  Andreas Schwab  <schwab@suse.de>

	* config/tc-ia64.c (md_assemble): Fix error message for wrong
	access to application registers.

2005-04-19  Jan Beulich  <jbeulich@novell.com>

	* config/te-sysv32.h: Remove.
	* Makefile.am (TARG_ENV_HFILES): Remove reference to
	config/te-sysv32.h.
	* Makefile.in (TARG_ENV_HFILES): Likewise.

2005-04-19  Jan Beulich  <jbeulich@novell.com>

	PR/847
	* config/tc-ia64.c (ia64_canonicalize_symbol_name): Re-allow zero-
	length symbols.

2005-04-18  Mark Kettenis  <kettenis@gnu.org>

	* config/tc-i386.c (md_begin): Allow hyphens in mnemonics.

2005-04-18  Maciej W. Rozycki  <macro@linux-mips.org>

	* config/tc-mips.c (normalize_constant_expr): Don't check for
	HAVE_32BIT_GPRS.
	(check_absolute_expr): Only call normalize_constant_expr() if
	HAVE_32BIT_GPRS.
	(mips_ip): Likewise.

	* config/tc-mips.c (check_absolute_expr): Fix formatting.

2005-04-18  Jan Beulich  <jbeulich@novell.com>

	* macro.c (free_token): New, freeing all the memory associated with a
	macro.
	(do_formals): Move initializers to ...
	(define_macro): ... here.
	(delete_macro): Convert passed in name to lower case. Warn when
	purging macro that doesn't exist. Use hash_jam instead of hash_delete.

2005-04-15  Maciej W. Rozycki  <macro@linux-mips.org>

	* config/tc-mips.c (normalize_constant_expr): Fix formatting.

2005-04-15  Jan Beulich  <jbeulich@novell.com>

	* config/obj-elf.c (obj_elf_struct): New.
	(elf_pseudo_table). Use it for .offset and .struct.

2005-04-14  Bob Wilson  <bob.wilson@acm.org>
	    Sterling Augustine  <sterling@tensilica.com>

	* config/tc-xtensa.c (get_aligned_diff): Handle target_size larger
	than the section alignment.

2005-04-14  Bob Wilson  <bob.wilson@acm.org>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-xtensa.h (struct xtensa_frag_type): Add lit_frchain field.
	* config/tc-xtensa.c (xg_translate_sysreg_op,
	xtensa_translate_old_userregs_ops,
	xtensa_find_unaligned_branch_targets,
	xtensa_find_unaligned_loops, xtensa_fix_close_loop_end_frags,
	relax_frag_add_nop): Support 64-bit host.
	(xtensa_mark_literal_pool_location, xtensa_move_literals): Use
	tc_frag_data lit_frchain and lit_seg fields instead of fr_var.

2005-04-14  Mark Kettenis  <kettenis@gnu.org>

	* configure.tgt: Add support for OpenBSD/sparc ELF.

	* configure.tgt: Set emulation for mips-*-openbsd*.
	Remove broken mips-dec-openbsd* config.
	* configure.in: Set default ABI for mips64-*-openbsd*.
	* configure: Regenerate.

2005-04-14  Maciej W. Rozycki  <macro@linux-mips.org>

	* config/tc-mips.c (macro) [ldd_std]: Don't attempt the GP
	optimization for constant addresses.

2005-04-14  Nick Clifton  <nickc@redhat.com>

	* as.c (main): Move parse_args before symbol_begin and frag_init
	so that the hash table size can be set before it is used.
	* hash.c: Use an unsigned long type for the size of the hash
	tables.
	* hash.h (set_gas_hash_table_size): Update the prototype.

2005-04-14  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am (NO_WERROR): Define.  Use instead of -Wno-error.
	* acinclude.m4: Include ../bfd/warning.m4.
	* configure.in: Invoke AM_BINUTILS_WARNINGS.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* doc/Makefile.in: Regenerate.

2005-04-13  Maciej W. Rozycki  <macro@linux-mips.org>

	* config/tc-mips.c (IS_ZEXT_32BIT_NUM): New macro.
	(normalize_address_expr): New function to sign-extend address
	offsets that fit into 32 bits in 32-bit mode.
	(macro_build_ldst_constoffset): Use normalize_address_expr()
	instead of a handcoded sequence.
	(load_register): Likewise.  Report oversized numbers in a useful
	way.
	(macro) [ld_st, ldd_std]: Reject all oversized offsets, not only
	for constant addresses.  Report oversized numbers in a useful way.
	(mips_ip): Use normalize_address_expr() for addresses.

2005-04-12  Mark Kettenis  <kettenis@gnu.org>

	* config/tc-i386.c (output_insn): Handle VIA PadLock instructions
	similar to other instructions now that they're marked as ImmExt.

2005-04-12  Nick Clifton  <nickc@redhat.com>

	* hash.c (DEFAULT_SIZE): Delete.  Replace with:
	(gas_hash_table_size): New static variable.
	(set_gas_hash_table_size): New function:  Records a requested size
	for the hash tables.
	(get_gas_hash_table_size): New function: Return a prime number
	near the requested size of the hash table.
	(hash_new): Use get_gas_hash_table_size.
	* hash.h: Add a prototype for set_gas_hash_table_size.
	* as.c (show_usage): Add description of new switches: --hash-size
	and --reduce-memory-overheads.
	(option_values): Add OPTION_HASH_TABLE_SIZE and
	OPTION_REDUCE_MEMORY_OVERHEADS.
	(std_longpopts): Add entries for the new options.
	(parse_args): Handle the new options.
	* Makefile.am: Add a dependency of as.c on hash.h.
	* Makefile.in: Regenerate.
	* doc/as.texinfo: Document the new switches.
	* NEWS: Mention the new switches.

2005-04-12  Nick Clifton  <nickc@redhat.com>

	PR gas/818
	* config/tc-hppa.c (pre_defined_registers): Fix %farg[0-3]
	synonyms.

2005-04-12  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.

2005-04-11  Sterling Augustine  <sterling@tensilica.com>
	    Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (check_t1_t2_reads_and_writes): Fix typo.

2005-04-11  Mark Kettenis  <kettenis@gnu.org>

	* configure.tgt (generic_target): Add support for OpenBSD/i386 ELF.

2005-04-11  Jan Beulich  <jbeulich@novell.com>

	* NEWS: Mention these changes and their effects.
	* macro.c (get_token): Use is_name_beginner/is_part_of_name/
	is_name_ender.
	(check_macro): Likewise.
	(buffer_and_nest): Likewise. Permit multiple labels. Don't discard
	labels together with the closing pseudo-op.
	(macro_expand_body): Adjust comment. Range-check input before use.
	Adjust mis-spelled diagnostic. Use is_name_beginner.
	* read.c (try_macro): New.
	(read_a_source_file): New static variable last_eol. Don't list
	macro expansion lines more than once. Call try_macro.
	(s_macro): Set section of line_label to absolute instead of undefined.
	* doc/as.texinfo: Add information on the caveats of these changes.

2005-04-11  Alan Modra  <amodra@bigpond.net.au>

	* symbols.c (symbol_X_add_number): Change return type to "offsetT *".
	* symbols.h (symbol_X_add_number): Update prototype.

2005-04-10  Eric Christopher  <echristo@redhat.com>

	* symbols.c (symbol_X_add_number): Fix warning.

2005-04-10  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-m68k.c (md_begin): Support 64bit host.
	(get_num): Support 64bit BFD on 32bit host.

2005-04-10  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-mips.c (md_apply_fix3): Fix typos in BFD_RELOC_64.

2005-04-09  Alan Modra  <amodra@bigpond.net.au>

	* read.c (assign_symbol): Remove const from parm.  Fix xcalloc
	call.  Don't do the COFF hacks for multi-emulation gas.  Move
	demand_empty_rest_of_line back to caller.
	(s_set, equals): demand_empty_rest_of_line here.

	PR gas/827
	* as.h (rs_dummy): Define.
	* symbols.c (symbol_X_add_number): New function.
	* symbols.h (symbol_X_add_number): Declare.
	* stabs.c (aout_process_stab): Tidy symbol frag setting.
	* read.c (assign_symbol): New function, split out from s_set.
	Use symbol_find_or_make.  Leave fr_type of dummy frag as rs_dummy.
	Fix COFF hacks for multi-emulation gas.
	(s_set): Call assign_symbol.  Remove "register" keyword.
	(set_zero_frag): New function.
	(pseudo_set): Always check for assignment to section syms.
	Always set segment and frag of symbol, and likewise extern for
	aout/bout.  Handle assignment of sym=sym+/-const specially.  Don't
	special case exp.X_add_number non-zero for O_symbol expressions.
	(equals): Use assign_symbol.

2005-04-08  Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (xtensa_create_xproperty_segments): Skip
	SEC_MERGE sections.

2005-04-06  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (tc_gen_reloc): Don't turn
	BFD_RELOC_X86_64_32S into BFD_RELOC_32.

2005-04-06  Nick Clifton  <nickc@redhat.com>

	* po/rw.po: New translation: Kinyarwanda
	* configure.in (ALL_LINGUAS): Add rw
	* configure: Regenerate.

2005-04-05  Sterling Augustine  <sterling@tensilica.com>
	    Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (branch_align_power): New.
	(xtensa_find_unaligned_branch_targets, get_aligned_diff,
	future_alignment_required): Use branch_align_power to check section
	alignment as well as xtensa_fetch_width when aligning branch targets.

2005-04-05  Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c: Warning fixes throughout.
	(xtensa_fetch_width): Change to unsigned.
	(assemble_nop, xtensa_find_unaligned_branch_targets,
	xtensa_find_unaligned_loops, xg_assemble_vliw_tokens,
	is_narrow_branch_guaranteed_in_range, xtensa_fix_close_loop_end_frags,
	min_bytes_to_other_loop_end, unrelaxed_frag_min_size,
	unrelaxed_frag_max_size, xtensa_fix_short_loop_frags,
	count_insns_to_loop_end, unrelaxed_frag_min_insn_count,
	get_text_align_max_fill_size, get_text_align_nop_count,
	get_text_align_nth_nop_size, get_noop_aligned_address,
	get_aligned_diff, convert_frag_align_next_opcode,
	convert_frag_immed_finish_loop, xtensa_create_property_segments,
	xtensa_create_xproperty_segments, xt_block_aligned_size): Clean up
	types, avoiding size_t and using offsetT and addressT appropriately.
	(get_text_align_power): Clean up types.  Avoid incorrect bound.
	(get_text_align_fill_size): Clean up types.  Restructure for clarity.

2005-04-04  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-ia64.c (start_unwind_section): Undo the change
	of 2004-08-18.
	(generate_unwind_image, dot_endp): Likewise.

2005-04-01 David Mosberger  <davidm@hpl.hp.com>

	* config/tc-ia64.c (ia64_handle_align): Move le_nop and
	le_nop_stop arrays and initializers to file scope.
	(md_begin): When generating code for anything other than
	Itanium 1, use MMI instead of MFI NOP bundles as a filler.

2005-04-01  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (output_imm): Also set sign flag for 64-bit push
	immediates.

2005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* NEWS: Mention [fdgh]_floating.
	* config/atof-vax.c: Fix some whitespace.
	* config/tc-vax.c (md_pseudo_table): Add "[fdgh]_floating".

2005-04-01  Nick Clifton  <nickc@redhat.com>

	* configure.in: Add a check for <unistd.h> providing a prototype
	for getopt() which is compatible with the one in
	include/getopt.h.  If so then define HAVE_DECL_GETOPT.
	* configure: Regenerate.
	* config.in (HAVE_DECL_GETOPT): Add.

2005-04-01  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (s_bss): Call obj_elf_section_change_hook.

2005-04-01  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (md_apply_fix3): Also handle BFD_RELOC_X86_64_32S.
	(tc_gen_reloc): Handle BFD_RELOC_X86_64_32S in the default case.

2005-03-30  Julian Brown  <julian@codesourcery.com>

	* config/tc-arm.c (arm_adjust_symtab): Rename
	bfd_elf32_is_arm_mapping_symbol_name to bfd_is_arm_mapping_symbol_name.

2005-03-30  Julian Brown  <julian@codesourcery.com>

	* config/tc-arm.c (mapping_state): Change documentation in function
	comment to cross-reference spec instead. Change type of mapping symbols
	to BSF_NO_TYPE.
	(arm_adjust_symtab): Don't change type of mapping symbols here.

2005-03-30  Aaron W. LaFramboise  <aaron98wiridge9@aaronwl.com>

	* as.h [NEED_DECLARATION_FFS] (ffs): Prototype and alphabetize.
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.in: Check for ffs decl and alphabetize.

2005-03-29  Daniel Jacobowitz  <dan@codesourcery.com>
	    Phil Blundell  <philb@gnu.org>

	* config/tc-arm.c (arm_parse_reloc): Add TLS relocations.
	(md_apply_fix3): Mark TLS symbols.
	(tc_gen_reloc): Handle TLS relocations.
	(arm_fix_adjustable): Ignore TLS relocations.
	(s_arm_elf_cons): Support expressions after decorated symbols.

2005-03-29  Julian Brown  <julian@codesourcery.com>

	* config/tc-arm.c (marked_pr_dependency): New bitmap, bit N indicates
	whether personality routine index N has been output for this section.
	(mapping_state): tc_segment_info_data now struct not enum.
	(arm_elf_change_section): Likewise, and marked_pr_dependency is now
	handled on section change.
	(create_unwind_entry): Previous code to output dependency removed.
	(s_arm_unwind_fnend): Output dependency if it hasn't been done already
	for this section.
	* config/tc-arm.h (TC_SEGMENT_INFO_TYPE): Redefined as struct
	arm_segment_info_type.
	(arm_segment_info_type): New struct.

2005-03-28  Sterling Augustine  <sterling@tensilica.com>
	    Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (do_align_targets): Update comment.
	(xtensa_frob_label): Compute "freq" before possibly switching frags.
	Insert a LOOP_END frag before every loop target, and do not overload
	DESIRE_ALIGN_IF_TARGET frags with loop end information.
	(xg_assemble_vliw_tokens): Use do_align_targets.
	(xtensa_fix_target_frags): Remove code to convert a
	DESIRE_ALIGN_IF_TARGET frag to a LOOP_END frag when there is a
	negatable branch at the end of a loop.
	(frag_can_negate_branch): Delete.

2005-03-28  David Mosberger  <davidm@hpl.hp.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR 803
	NEWS: Mention "-mtune=[itanium1|itanium2]".

	* config/tc-ia64.c (md): Add tune.
	(md_parse_option): Accepted "-mtune=[itanium1|itanium2]".
	(md_show_usage): Add "-mtune=[itanium1|itanium2]".
	(extra_goodness): Prefer M- and I-unit NOPs for itanium2. F and
	B unit NOPs are discouraged for McKinley-derived cores.
	(md_begin): Don't hardcode the "extra_goodness()" function in
	the comment...
	(ia64_init): Set md.tune to itanium2.

	* doc/as.texinfo: Add -mtune=[itanium1|itanium2]".
	* doc/c-ia64.texi: Likewise.

2005-03-27  Ian Lance Taylor  <ian@airs.com>

	* config/obj-coff.c (coff_frob_symbol): When crashing because of a
	bad C_EFCN symbol, print its name.

2005-03-25  Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (use_longcalls): Delete.
	(xg_symbolic_immeds_fit): Check for direct calls and return TRUE if
	the use_longcalls flag is set.  Do this before checking the segment.
	(xg_expand_assembly_insn): Rearrange to use new do_expand flag.  Never
	expand direct calls at this point.
	(xtensa_set_frag_assembly_state): Set use_longcalls flag.
	(xtensa_find_unmarked_state_frags): Likewise.
	(md_assemble): Do not disable longcalls by setting is_specific_opcode.
	(xg_assemble_vliw_tokens): Switch frags when use_longcalls changes.
	(convert_frag_immed): Remove unnecessary check of is_specific_opcode.
	* config/tc-xtensa.h (xtensa_frag_type): Add use_longcalls flag.

2005-03-25  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/tc-mmix.c, config/tc-mmix.h: Convert to ISO C90.

2005-03-25  Hans-Peter Nilsson  <hp@axis.com>

	* config/tc-cris.h: Convert to ISO C90.
	* config/tc-cris.c: Ditto.
	(md_estimate_size_before_relax): Remove obsolete comment for
	parameter "segment_type".
	(md_begin): Document reason for cast of hash_insert argument.
	(md_atof): Correct type of parameter "type".

2005-03-24  Nick Clifton  <nickc@redhat.com>

	* write.h (bit_fix_new): Remove redundant prototype.
	* config/atof-ieee.c: Convert to ISO-C90 and fix formatting.
	* config/obj-aout.c: Convert to ISO-C90 and fix formatting.
	* config/obj-aout.h: Convert to ISO-C90 and fix formatting.
	* config/obj-bout.c: Convert to ISO-C90 and fix formatting.
	* config/obj-bout.h: Convert to ISO-C90 and fix formatting.
	* config/obj-ecoff.c: Convert to ISO-C90 and fix formatting.
	* config/obj-ecoff.h: Convert to ISO-C90 and fix formatting.
	* config/obj-som.c: Convert to ISO-C90 and fix formatting.
	* config/obj-som.h: Convert to ISO-C90 and fix formatting.
	* config/tc-a29k.c: Convert to ISO-C90 and fix formatting.
	* config/tc-a29k.h: Convert to ISO-C90 and fix formatting.
	* config/tc-alpha.c: Convert to ISO-C90 and fix formatting.
	* config/tc-alpha.h: Convert to ISO-C90 and fix formatting.
	* config/tc-arc.c: Convert to ISO-C90 and fix formatting.
	* config/tc-arc.h: Convert to ISO-C90 and fix formatting.
	* config/tc-d10v.c: Convert to ISO-C90 and fix formatting.
	* config/tc-d10v.h: Convert to ISO-C90 and fix formatting.
	* config/tc-d30v.c: Convert to ISO-C90 and fix formatting.
	* config/tc-d30v.h: Convert to ISO-C90 and fix formatting.
	* config/tc-dlx.c: Convert to ISO-C90 and fix formatting.
	* config/tc-dlx.h: Convert to ISO-C90 and fix formatting.
	* config/tc-fr30.c: Convert to ISO-C90 and fix formatting.
	* config/tc-fr30.h: Convert to ISO-C90 and fix formatting.
	* config/tc-h8500.c: Convert to ISO-C90 and fix formatting.
	* config/tc-h8500.h: Convert to ISO-C90 and fix formatting.
	* config/tc-i370.c: Convert to ISO-C90 and fix formatting.
	* config/tc-i370.h: Convert to ISO-C90 and fix formatting.
	* config/tc-i960.c: Convert to ISO-C90 and fix formatting.
	* config/tc-ip2k.c: Convert to ISO-C90 and fix formatting.
	* config/tc-ip2k.h: Convert to ISO-C90 and fix formatting.
	* config/tc-m32r.c: Convert to ISO-C90 and fix formatting.
	* config/tc-m32r.h: Convert to ISO-C90 and fix formatting.
	* config/tc-m88k.c: Convert to ISO-C90 and fix formatting.
	* config/tc-m88k.h: Convert to ISO-C90 and fix formatting.
	* config/tc-mcore.c: Convert to ISO-C90 and fix formatting.
	* config/tc-mcore.h: Convert to ISO-C90 and fix formatting.
	* config/tc-mn10200.c: Convert to ISO-C90 and fix formatting.
	* config/tc-ns32k.c: Convert to ISO-C90 and fix formatting.
	* config/tc-ns32k.h: Convert to ISO-C90 and fix formatting.
	* config/tc-openrisc.c: Convert to ISO-C90 and fix formatting.
	* config/tc-openrisc.h: Convert to ISO-C90 and fix formatting.
	* config/tc-or32.c: Convert to ISO-C90 and fix formatting.
	* config/tc-or32.h: Convert to ISO-C90 and fix formatting.
	* config/tc-pdp11.h: Convert to ISO-C90 and fix formatting.
	* config/tc-pj.c: Convert to ISO-C90 and fix formatting.
	* config/tc-pj.h: Convert to ISO-C90 and fix formatting.
	* config/tc-tahoe.c: Convert to ISO-C90 and fix formatting.
	* config/tc-tic80.c: Convert to ISO-C90 and fix formatting.
	* config/tc-tic80.h: Convert to ISO-C90 and fix formatting.
	* config/tc-v850.c: Convert to ISO-C90 and fix formatting.
	* config/tc-v850.h: Convert to ISO-C90 and fix formatting.
	* config/tc-w65.c: Convert to ISO-C90 and fix formatting.
	* config/tc-w65.h: Convert to ISO-C90 and fix formatting.
	* config/tc-xstormy16.c: Convert to ISO-C90 and fix formatting.
	* config/tc-xstormy16.h: Convert to ISO-C90 and fix formatting.

2005-03-23  Jim Blandy  <jimb@redhat.com>

	* config/tc-arm.c (arm_adjust_symtab): Fetch elf_sym's binding
	attributes properly.

2005-03-23  Mike Frysinger  <vapier@gentoo.org>
	    Nick Clifton  <nickc@redhat.com>

	* configure.tgt: Accept any C library to accompany a GNU Linux
	implementation, not just the GNU C library.
	* configure.in: Likewise.
	* configure: Regenerate.

2005-03-23  Nick Clifton  <nickc@redhat.com>

	* config/tc-tic30.c: Convert to ISO C90 formatting.
	* config/tc-tic30.h: Convert to ISO C90 formatting.
	* config/tc-pdp11.c: Convert to ISO C90 formatting.
	* config/atof-vax.c: Convert to ISO C90 formatting.

2005-03-21  Maciej W. Rozycki  <macro@mips.com>

	* config/tc-mips.c (mips_frob_file): Sort BFD_RELOC_MIPS16_LO16
	relocations correctly as well.
	(mips_fix_adjustable): Don't make BFD_RELOC_MIPS16_LO16
	relocations in mergeable sections section-relative either.

2005-03-21  Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (md_apply_fix3): Recognize XTENSA_PLT relocations.

2005-03-21  Nick Clifton  <nickc@redhat.com>

	* config/tc-sh.c (sh_elf_final_processing): Fix compile time
	warning by providing a prototype for sh_symbian_find_elf_flags.

	* cgen.c (gas_cgen_parse_operand): Fix typo introduced by
	previous delta.

2005-03-21  Alan Modra  <amodra@bigpond.net.au>

	* configure.tgt: Handle setting of bfd_gas for fmt=multi targets
	along with other formats that set bfd_gas.  Remove unnecessary
	setting of bfd_gas.  Delete strongarm cases in generic_target
	switch.

2005-03-21  Alan Modra  <amodra@bigpond.net.au>

	PR gas/780
	* config/tc-m68k.c (TRUNC, SEXT): Define.
	(issbyte, isubyte, issword, isuword, isbyte, isword): Use the above.
	(m68k_ip): Truncate or sign extend expressions as appropriate.
	(get_num): Likewise.
	(md_apply_fix3): Use SEXT.

2005-03-21  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am (OBJ_FORMAT_CFILES): Prune config/obj-vms.c.
	(OBJ_FORMAT_HFILES): Prune config/obj-vms.h.
	(obj-vms.o): Delete rule.
	Run "make dep-am".
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* doc/Makefile.in: Regenerate.
	* po/POTFILES.in: Regenerate.

2005-03-18  C Jaiprakash  <cjaiprakash@noida.hcltech.com>

	* config/tc-m68k.c (m68k_elf_final_processing): Set file specific
	flag for coldfire v4e.

2005-03-17  Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (xg_apply_tentative_value): Rename to
	xg_apply_fix_value and return a value to indicate success.
	(md_pcrel_from): Skip check of fx_done.  Return 0 if not PC-relative.
	(xtensa_force_relocation): Remove checks for VTABLE relocs.
	(xtensa_validate_fix_sub): New.
	(xtensa_fix_adjustable): Remove check for external or weak symbols.
	(tc_gen_reloc): Move code to handle difference of symbols and code to
	apply tentative fix values to ...
	(md_apply_fix3): ...here.  Enable standard overflow checks for simple
	8, 16, and 32 bit relocations.  Apply fixes for slot-specific
	relocations when linkrelax flag is not set.
	* config/tc-xtensa.h (xtensa_validate_fix_sub): Add prototype.
	(TC_FORCE_RELOCATION_SUB_SAME, TC_VALIDATE_FIX_SUB): Define.

2005-03-17  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (i386_scale): Beautify error message.
	(Intel syntax comments): Update.
	(struct intel_parser_s): Add fields in_offset, in_bracket, and
	next_operand.
	(intel_e04_1, intel_e05_1, intel_e05_1, intel_e09_1, intel_e10_1):
	Remove declarations.
	(intel_bracket_expr): Declare.
	(i386_intel_operand): Initialize new intel_parser fields. Wrap most
	of the function body in a loop allowing to split an operand into two.
	Replace calls to malloc and checks of it returning non-NULL with
	calls to xmalloc/xstrdup.
	(intel_expr): SHORT no longer handled here. Add comment indicating
	comparison ops need implementation.
	(intel_e04, intel_e04_1): Combine, replace recursion with loop.
	Check right operand of - does not specify a register when parsing
	the address of a memory reference.
	(intel_e05, intel_e05_1): Combine, replace recursion with loop.
	Check operands do not specify a register when parsing the address of
	a memory reference.
	(intel_e06, intel_e06_1): Likewise.
	(intel_e09, intel_e09_1): Combine, replace recursion with loop. Also
	handle SHORT as well as unary + and -. Don't accept : except for
	segment overrides or in direct far jump/call insns.
	(intel_brack_expr): New.
	(intel_e10, intel_e10_1): Combine, replace recursion with loop. Use
	intel_brack_expr.
	(intel_e11): Replace chain of if/else-if by switch, alloing fall-
	through in certain cases. Use intel_brack_expr. Add new diagnostics.
	Allow symbolic constants as register scale value.
	(intel_get_token): Replace call to malloc and check of return value
	with call to xmalloc. Change handling for FLAT to match MASM's.
	(intel_putback_token): Don't try to back up/free current token if
	that is T_NIL.

2005-03-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.tgt: Set emulation for arm-*-eabi*.
	* config/tc-arm.c (meabi_flags): Check EABI_DEFAULT.
	* config/te-armeabi.h: New file.
	* config/te-armlinuxeabi.h (EABI_DEFAULT): Define.
	* config/te-symbian.h: Include "te-armeabi.h".

2005-03-16  Nick Clifton  <nickc@redhat.com>

	* cgen.c (gas_cgen_parse_operand): Copy opinfo parameter into a
	local variable in case it is clobbered by the setjmp.

2005-03-16  Nick Clifton  <nickc@redhat.com>
	    Ben Elliston  <bje@au.ibm.com>

	* configure.in (werror): New switch: Add -Werror to the
	compiler command line.  Enabled by default.  Disable via
	--disable-werror.
	* configure: Regenerate.

2005-03-16  Nick Clifton  <nickc@redhat.com>

	* config/obj-coff.h: Convert to ISO C90 formatting.
	* config/obj-coff.c: Convert to ISO C90 formatting.

2005-03-15  Zack Weinberg  <zack@codesourcery.com>

	* config/tc-arm.c (do_mla): Rename to do_mlas, take second
	is_mls parameter; do not diagnose Rm==Rd when is_mls.
	(do_mla, do_mls, five_bit_unsigned_immediate, bfci_lsb_and_width)
	(do_bfc, do_bfi, do_bfx, do_rbit, do_mov16, do_ldsttv4): New functions.
	(insns): Add ARMv6T2 instructions:
	bfc bfi mls movw movt rbit sbfx ubfx ldrht ldrsht ldrsbt strht.
	(arm_archs): Add V6T2 variants.

2005-03-15  Nick Clifton  <nickc@redhat.com>

	* NEWS: Add cutoff for changes in 2.16 release.

2005-03-15  Jan Beulich  <jbeulich@novell.com>

	* expr.c (operand): Merge handling of unary + into that for unary
	-, !, and ~.

2005-03-14  Eric Christopher  <echristo@redhat.com>

	* config/tc-mips.c: Include dw2gencfi.h.
	(mips_cfi_frame_initial_instructions): New.
	* config/tc-mips.h (TARGET_USE_CFIPOP): Define.
	(tc_cfi_frame_initial_instructions): Ditto.
	(DWARF2_DEFAULT_RETURN_COLUMN): Ditto.
	(DWARF2_CIE_DATA_ALIGNMENT): Ditto.
	* Makefile.am: Update dependencies.
	* Makefile.in: Regenerate.

2005-03-15  Alan Modra  <amodra@bigpond.net.au>

	* po/es.po: Commit new Spanish translation.

2005-03-14  Alan Modra  <amodra@bigpond.net.au>

	* po/tr.po: Commit new Turkish translation.

2005-03-12  Zack Weinberg  <zack@codesourcery.com>

	* config/tc-arm.c (tinsns): Add ARMv6K instructions sev, wfe,
	wfi, yield.

2005-03-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* config-gas.com: Mark vax-vms as obsolete.
	* configure.in: Remove fmt=vms support.
	* config.in: Regenerate.
	* configure: Regenerate.
	* config/obj-vms.h, config/obj-vms.c, config/vms-conf.h: Remove.

2005-03-10  Sterling Augustine  <sterling@tensilica.com>
	    Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (finish_vinsn): Include the last instruction slot
	when checking if xg_resolve_literals needs to be called.
	* config/tc-xtensa.h: Fix spelling typo in a comment.

2005-03-10  Jan Beulich  <jbeulich@novell.com>

	* config/tc-tic54x.h (tic54x_macro_info): Change parameter type.
	* config/tc-tic54x.c (tic54x_macro_info): Likewise. Replace hand-
	crafted structure declarations with the types from macro.h.

2005-03-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.c (s_cpsetup): Use '__gnu_local_gp' instead of '_gp'
	for -mno-shared optimization.

2005-03-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.c (MAX_VR4130_NOPS, MAX_DELAY_NOPS): New macros.
	(MAX_NOPS): Bump to 4.
	(mips_fix_vr4130): New variable.
	(nops_for_vr4130): New function.
	(nops_for_insn): Use MAX_DELAY_NOPS rather than MAX_NOPS.  Use
	nops_for_vr4130 if working around VR4130 errata.
	(OPTION_FIX_VR4130, OPTION_NO_FIX_VR4130): New macros.
	(md_longopts): Add -mfix-vr4130 and -mno-fix-vr4130.
	(md_parse_option): Handle them.
	(md_show_usage): Print them.
	* doc/c-mips.texi: Document -mfix-vr4130 and -mno-fix-vr4130.

2005-03-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.c (append_insn): Remove cop_interlocks test from
	branch delay code.

2005-03-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.h (mips_flush_pending_output): Delete.
	(mips_emit_delays): Declare.
	(md_flush_pending_output): Use mips_emit_delays.
	* config/tc-mips.c (mips_no_prev_insn): Remove parameter; always forget
	the previous instructions.
	(md_begin, append_insn, md_parse_option): Update callers.
	(mips_emit_delay): Remove parameter.  Move INSNS != 0 code to
	start_noreorder.
	(mips_align, s_change_sec, s_cons, s_float_cons, s_gpword)
	(s_gpdword): Update callers.
	(start_noreorder, end_noreorder): New functions.
	(macro, macro2, mips16_macro, s_mipsset): Use them instead of
	manipulating mips_opts or prev_nop_frag directly.
	(mips_flush_pending_output): Delete.

2005-03-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.c (mips_move_labels): New function, taken from...
	(append_insn, mips_emit_delays): ...here.

2005-03-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.c (MAX_NOPS): New macro.
	(history): Resize to 1 + MAX_NOPS.
	(fix_vr4120_class): New enumeration.
	(vr4120_conflicts): New variable.
	(init_vr4120_conflicts): New function.
	(md_begin): Call it.
	(insn_uses_reg): Constify first argument.
	(classify_vr4120_insn, insns_between, nops_for_insn, nops_for_sequence)
	(nops_for_insn_or_target): New functions.
	(append_insn): Use the new nops_for_* functions instead of inline
	delay checks.  Generalize prev_nop_frag handling to handle an
	arbitrary history length.  Insert nops into the history buffer
	once the number of nops in prev_nop_frag is fixed.
	(emit_delays): Use nops_for_insn instead of inline delay checks.

2005-03-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.c (append_insn): Remove now-redundant nops != 0
	check from branch delay code.  Remove unnecessary check for branches.

2005-03-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.c (dummy_opcode): Delete.
	(nop_insn, mips16_nop_insn): New variables.
	(NOP_INSN): New macro.
	(insn_length, create_insn, install_insn, move_insn, add_fixed_insn)
	(add_relaxed_insn, insert_into_history, emit_nop): New functions.
	(md_begin): Initialize nop_insn and mips16_nop_insn.
	(append_insn): Use the new emit_nop function to add nops, recording
	them in the history buffer.  Use add_fixed_insn or add_relaxed_insn
	to reserve room for the instruction and install_insn to install the
	final form.  Use insert_into_history to record the instruction in
	the history buffer.  Use move_insn to do delay slot filling.
	(mips_emit_delays): Use add_fixed_insn instead of the emit_nop macro.
	(macro_build, mips16_macro_build, macro_build_lui, mips_ip)
	(mips16_ip): Use create_insn to initialize mips_cl_insns.

2005-03-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.c (INSERT_BITS, EXTRACT_BITS, INSERT_OPERAND)
	(EXTRACT_OPERAND, MIPS16_INSERT_OPERAND, MIPS16_EXTRACT_OPERAND): New.
	(insn_uses_reg, reg_needs_delay, append_insn, macro_build)
	(mips16_macro_build, macro_build_lui, mips16_macro, mips_ip)
	(mips16_ip): Use the new macros instead of explicit masks and shifts.

2005-03-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.c (mips_cl_insn): Replace the valid_p, delay_slot_p
	and extended_p fields with a single fixed_p field.
	(append_insn, mips_no_prev_insn): Adjust accordingly.

2005-03-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.c (mips_cl_insn): Replace reloc_type array with
	a single mips16_absolute_jump_p bit.
	(append_insn): Adjust accordingly.

2005-03-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.h (mips_cl_insn): Move definition to...
	* config/tc-mips.c (mips_cl_insn): ...here.  Add new fields:
	frag, where, fixp, reloc_type, valid_p, noreorder_p, delay_slot_p
	and extended_p.
	(history): New variable.
	(prev_insn, prev_prev_insn, prev_insn_valid, prev_insn_frag)
	(prev_insn_where, prev_insn_reloc_type, prev_insn_fixp)
	(prev_insn_is_delay_slot, prev_insn_unreordered, prev_insn_extended)
	(prev_prev_insn_unreordered): Delete.
	(reg_needs_delay, append_insn, mips_no_prev_insn, mips_emit_delays)
	(macro_start): Replace uses of prev_insn* with the equivalent history[]
	field.

2005-03-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* doc/Makefile.am: Update as.info dependencies.
	* aclocal.m4, Makefile.in, doc/Makefile.in: Regenerated.

2005-03-08  Jan Beulich  <jbeulich@novell.com>

	* doc/as.texinfo: Add sentence to indicate redefining a macro is an
	error, and point to .purgem documentation if someone really needs
	re-definitions.
	* NEWS: Mention macro redefinition is now an error.

2005-03-08  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (emit_one_bundle): Track last slot user insn was
	emitted to. Add more precise diagnostics for non-fitting insns based
	on that. Eliminate now superfluous special casing of MLX. Clear out
	slot information when dropping an insn.

2005-03-08  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (parse_section_name): Rename to...
	(cross_section): In addition to separating the name from the rest of
	the arguments, also carry out the operation.
	(dot_xdata): Use cross_section.
	(dot_float_cons): Likewise.
	(dot_xstringer): Likewise.
	(dot_xdata_ua): Likewise.
	(dot_float_cons_ua): Likewise. Pass float_cons, not stmt_float_cons.

2005-03-05  Alan Modra  <amodra@bigpond.net.au>

	* po/gas.pot: Regenerate.

2005-03-04  David Daney  <ddaney@avtrex.com>

	* config/tc-mips.c (macro_build_lui): Use '__gnu_local_gp'
	instead of '_gp' for -mno-shared optimization.
	(s_cpload): Ditto.
	(s_abicalls): Document it in the comment.
	(md_show_usage): Document the -mno-shared option.

2005-03-04  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.c (mips_set_options): Add sym32 field.
	(mips_opts): Initialize it.
	(HAVE_32BIT_ADDRESSES): Set to true if pointers are 32 bits wide.
	(HAVE_64BIT_ADDRESSES): Redefine as !HAVE_32BIT_ADDRESSES.
	(HAVE_32BIT_SYMBOLS, HAVE_64BIT_SYMBOLS): New macros.
	(load_address): Use HAVE_64BIT_SYMBOLS instead of HAVE_64BIT_ADDRESSES
	when deciding whether to use a symbolic %highest/%higher expansion.
	(macro): Likewise.  Remove o64/n32 linux hack.  Always use
	ADDRESS_ADD*_INSN for address addition in the expansion of "dla"
	and "la".  Handle constants separately from symbolic expressions in
	the "ld_st:" case, using 64-bit arithmetic if HAVE_64BIT_ADDRESSES
	and using load_register to load the high part of the address.
	(OPTION_MSYM32, OPTION_NO_MSYM32): New macros.
	(OPTION_ELF_BASE): Bump by 2.
	(md_longopts): Add entries for -msym32 and -mno-sym32.
	(md_parse_option): Handle them.
	(usage): Document them.
	(s_mipsset): Handle ".set sym32" and ".set nosym32".
	(s_cpload, s_cpsetup): Use HAVE_64BIT_SYMBOLS instead of
	HAVE_64BIT_ADDRESSES to detect 64-bit values of "_gp".
	* doc/c-mips.texi: Document ".set sym32", ".set nosym32",
	-msym32 and -mno-sym32.

2005-03-03  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (load_address): Implement GP optimization
	for 64bit address space non-PIC. Fix formatting.
	(macro): Likewise. Simplify code.
	(md_parse_option): Don't bail out if -G 0 is set for PIC code.
	(mips_after_parse_args): Simplify code.

2005-03-03  Nick Clifton  <nickc@redhat.com>

	* expr.c (operand): Remove redundant code enclosed by #ifdef
	RELAX_PAREN_GROUPING....#endif.

	* config/tc-mn10200.c (tc_gen_reloc): Handle the case where the
	reloc is the difference of two symbols defined in the same
	section.

	* config/tc-iq2000.c (line_comment_chars): Include the # character
	as otherwise this breaks #APP/#NO_APP processing.

2005-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>

	* config/tc-arc.c(md_assemble): Remove dead code for handling
	immediate indexing of ld and st .

2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* config/tc-mips.c (percent_op): Add %tlsgd, %tlsldm, %dtprel_hi,
	%dtprel_lo, %tprel_hi, %tprel_lo, and %gottprel.
	(parse_relocation): Check for a word break after a relocation
	operator.
	(md_apply_fix3): Handle TLS relocations, and mark thread-local
	symbols.

2005-03-02  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-ppc.c (ppc_fix_adjustable <ELF>): Remove bogus checks.

2005-03-02  Jan Beulich  <jbeulich@novell.com>

	* as.c (main): Use unlink_if_ordinary instead of unlink.
	* messages.c (as_fatal): Likewise.

2005-03-02  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (build_modrm_byte): Add lock prefix for cr8...15
	accesses.
	(parse_register): Allow cr8...15 in all modes.

2005-03-02  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (intel_e11): If not followed by T_PTR, treat T_BYTE
	etc. like normal symbol references (T_ID).

2005-03-02  Alan Modra  <amodra@bigpond.net.au>

	* symbols.c (fb_label_name): Fix silly thinko in last change.

2005-03-02  Alan Modra  <amodra@bigpond.net.au>

	* expr.c (integer_constant): Remove TARGET_WORD_SIZE hack.
	* config/tc-m68k.h (TARGET_WORD_SIZE): Delete.

	* symbols.c (fb_label_name): Allow an augend of 2 for mmix.

2005-03-01  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>

	PR gas/708
	* config/tc-arc.c (md_assemble): Initialize suffix for extension
	suffixes also.

2005-03-01  Alan Modra  <amodra@bigpond.net.au>

	* config/obj-coff.c (fixup_segment): Delete sy_mri_common assertion.

	* as.h (assert): Warning fix.
	* expr.c (expr): Correct assertion.
	* read.c (s_comm_internal): Remove assertion.
	* write.c (relax_segment): Enable vma assertion only for BFD_ASSEMBLER.
	(fixup_segment): Remove assertion.
	* config/tc-dlx.c (machine_ip): Remove untrue assertions.
	(md_apply_fix3): Likewise.
	* config/tc-i370.c (md_begin): Correct assertion.
	(i370_macro): Warning fix for assertion.

2005-03-01  Alan Modra  <amodra@bigpond.net.au>

	* configure.in (AC_C_BIGENDIAN): Invoke.
	* configure: Regenerate.
	* write.c (write_object_file <!BFD_ASSEMBLER>): Don't use sizeof
	host variable to set string header size.
	* config/obj-aout.c (obj_header_append): Don't use host structs.
	(obj_symbol_to_chars): Likewise.
	(obj_emit_strings): Likewise.  Use the passed in output pointer.
	* config/obj-aout.h (H_GET_FILE_SIZE): Include H_GET_LINENO_SIZE.
	* config/obj-bout.c (obj_emit_relocations): Use md_reloc_size,
	not sizeof host struct.
	(obj_header_append, obj_symbol_to_chars): Don't use host structs.
	(obj_emit_strings): Likewise.
	* config/obj-bout.h (EXEC_BYTES_SIZE): Define.
	(N_TXTOFF, H_GET_FILE_SIZE, H_GET_HEADER_SIZE): Use instead of
	sizeof host struct.
	(H_SET_SYMBOL_TABLE_SIZE): Hard code sym size rather than using
	sizeof host struct.
	(host_number_to_chars): Define.
	* config/obj-hp300.c (hp300_header_append): Don't use sizeof
	host internal struct to set header sizes.
	* config/tc-i960.c (md_number_to_field): Warning fix.
	(md_ri_to_chars): Use host byte order.
	(get_cdisp, md_apply_fix3): Warning fix.
	* config/tc-m68k.c (md_assemble): Don't use sizeof host short.

2005-02-28  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>

	* doc/c-arc.texi: Update documentation about ARC's extension
	instructions.

2005-02-27  Svein E. Seldal  <svein@dev.seldal.com>

	* config/tc-tic4x.c (tic4x_gen_to_words): Changed mail
	address for myself.

2005-02-23  Alan Modra  <amodra@bigpond.net.au>

	* cgen.c: Warning fixes.
	* config/tc-arc.c: Likewise.
	* config/tc-arm.c: Likewise.
	* config/tc-avr.c: Likewise.
	* config/tc-d10v.c: Likewise.
	* config/tc-d30v.c: Likewise.
	* config/tc-frv.c: Likewise.
	* config/tc-frv.h: Likewise.
	* config/tc-h8300.c: Likewise.
	* config/tc-h8500.c: Likewise.
	* config/tc-i370.c: Likewise.
	* config/tc-i960.c: Likewise.
	* config/tc-ia64.c: Likewise.
	* config/tc-ip2k.c: Likewise.
	* config/tc-m68hc11.c: Likewise.
	* config/tc-maxq.c: Likewise.
	* config/tc-mcore.c: Likewise.
	* config/tc-mips.c: Likewise.
	* config/tc-msp430.c: Likewise.
	* config/tc-pj.c: Likewise.
	* config/tc-ppc.c: Likewise.
	* config/tc-ppc.h: Likewise.
	* config/tc-s390.c: Likewise.
	* config/tc-sh.c: Likewise.
	* config/tc-sh64.c: Likewise.
	* config/tc-tic4x.c: Likewise.
	* config/tc-tic80.c: Likewise.
	* config/tc-v850.c: Likewise.
	* config/tc-vax.c: Likewise.
	* config/tc-w65.c: Likewise.
	* config/tc-xstormy16.c: Likewise.
	* config/tc-z8k.c: Likewise.

2005-02-22  Catherine Moore  <clm@cm00re.com>

	* read.c (read_a_source_file): Reinstate TC_EQUAL_IN_INSN test.
	* doc/internals.texi (TC_EQUAL_IN_INSN): Reinstate.

2005-02-22  Eric Christopher  <echristo@redhat.com>

	* config/tc-mips.c (struct proc): Change isym to
	func_sym. New member func_end_sym.
	(s_mips_ent): Update.
	(s_mips_end): Ditto. Add code to compute function size.

2005-02-22  Alan Modra  <amodra@bigpond.net.au>

	* read.c: Warning fixes.
	* config/obj-elf.c: Likewise.

2005-02-22  Maciej W. Rozycki  <macro@mips.com>

	* config/tc-mips.c (append_insn): Call dwarf2_emit_insn() before
	emitting insn.

2005-02-21  H.J. Lu  <hongjiu.lu@intel.com>

	* config/obj-coff.c (obj_coff_section): Replace SEC_SHARED with
	SEC_COFF_SHARED.

	* config/tc-tic54x.c (tic54x_bss): Replace SEC_BLOCK with
	SEC_TIC54X_BLOCK.
	(demand_empty_rest_of_line): Likewise.
	(tic54x_sblock): Likewise.
	(tic54x_clink): Replace with SEC_CLINK with SEC_TIC54X_CLINK.

2005-02-21  Alan Modra  <amodra@bigpond.net.au>

	* read.c (address_bytes): New function.
	(TC_ADDRESS_BYTES): Default for BSD_ASSEMBLER to address_bytes.
	(potable): Add "dc.a".
	(cons_worker): Handle "dc.a".
	* doc/internals.texi (TC_ADDRESS_BYTES): Document.

2005-02-21  Alan Modra  <amodra@bigpond.net.au>

	* input-file.c (input_file_open): Rearrange to avoid warning.

2005-02-19  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-hppa.h (TC_EQUAL_IN_INSN): Delete.
	* read.c (read_a_source_file): Remove TC_EQUAL_IN_INSN test.
	* doc/internals.texi (TC_EQUAL_IN_INSN): Delete.

2005-02-18  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (macro_build_ldst_constoffset): Fail on $at
	uses after .set noat.
	(load_address): Likewise.
	(macro): Likewise. Don't try to avoid $at use by sacrificing
	the target register before it is stored, it won't work.

2005-02-17  James E Wilson  <wilson@specifixinc.com>

	* config/tc-ia64.c (emit_one_bundle): Stop filling a bundle if we
	see an instruction that specifies a template.

2005-02-18  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-openrisc.c (openrisc_relax_frag): Delete unused function.
	* config/tc-sparc.c (sparc_ip): Make op_exp static to silence warnings.
	* config/tc-tic80.c (build_insn): Init insn[1] to silence warning.

2005-02-17  H.J. Lu  <hongjiu.lu@intel.com>

	* NEWS: Mention "-mhint.b=[ok|warning|error]".

	* config/tc-ia64.c (md): Add hint_b.
	(emit_one_bundle): Handle md.hint_b for "hint".
	(md_parse_option): Accepted "-mhint.b=[ok|warning|error]".
	(md_show_usage): Add "-mhint.b=[ok|warning|error]".
	(ia64_init): Set md.hint_b to error.
	(md_assemble): Handle md.hint_b for "hint.b".

	* doc/as.texinfo: Add "-mhint.b=[ok|warning|error]".
	* doc/c-ia64.texi: Likewise.

2005-02-17  Alan Modra  <amodra@bigpond.net.au>

	* tc.h (struct relax_type, relax_typeS): Move from here..
	* as.h: ..to here.  Make rlx_forward and rlx_backward an offsetT.
	* ecoff.c (ecoff_new_file): Add appfile param.
	* ecoff.h (ecoff_new_file): Likewise.
	* itbl-lex.h: New file.
	* itbl-lex.l: Include itbl-lex.h.
	* itbl-parse.y: Likewise.
	(insntbl_line, yyparse, yylex): Move to itbl-lex.h.
	* read.c (s_app_file_string): Mark appfile possibly unused.
	* subsegs.c (seg_not_empty_p): Make sec possibly unused.
	* subsegs.h (struct seg_info_trash): Delete.
	(seg_info): Use segment_info_type instead.
	* config/obj-coff.c (struct filename_list): Make filename const char *.
	* config/obj-ecoff.h (obj_app_file): Pass app to ecoff_new_file.
	* config/obj-elf.c (elf_file_symbol): Similarly.
	* config/tc-a29k.c (md_apply_fix3): Make val a valueT.  Don't use
	signed right shift.
	* config/tc-arc.c (md_operand): Warning fix.
	* config/tc-arm.c (arm_parse_reloc): Only define when OBJ_ELF.
	(md_begin): Rearrange #if defined OBJ_COFF || defined OBJ_ELF.
	* config/tc-cris.h (TC_IMPLICIT_LCOMM_ALIGNMENT): Use do while.
	* config/tc-frv.c (frv_force_relocation): Warning fix.
	* config/tc-m68k.c (md_parse_option): Delete unused var.
	* config/tc-mcore.c (mylog2): Rename from log2 throughout.
	* config/tc-sparc.c: Likewise.
	(s_common): Warning fix.
	* config/tc-mips.c (append_insn): Use unsigned long long expressions.
	* config/tc-mmix.c (PUSHJSTUB_MAX, PUSHJSTUB_MIN): Define from
	addressT.
	* config/tc-s390.c (s390_insn): Delete test of unsigned >= 0.
	* config/tc-sh.c (sh_cfi_frame_initial_instructions,
	sh_regname_to_dw2regnum): Only define for OBJ_ELF.
	* config/tc-tic4x.c (tic4x_insert_reg): Use ISLOWER.
	(tic4x_do_align): Use TIC_NOP_OPCODE.
	* config/tc-tic4x.h (TIC_NOP_OPCODE): Rename from NOP_OPCODE.
	* config/tc-vax.c: Include netinet/in.h.
	(tc_headers_hook): Formatting.
	* config/tc-xstormy16.c (md_pcrel_from_section): Correct parens.

2005-02-17  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (ia64_parse_name): Don't advance 'name' when
	parsing inN, locN, outN. Set 'idx' to offset register number starts
	at. Don't handle numbers with leading zeroes or beyond 95. Remove
	pointless cast.

2005-02-16  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (load_address): Fix formatting.
	(macro): Don't use AT if .set noat is in effect. Fix formatting.
	Catch macros which are unexpandable without AT. Remove duplicate
	zeroing of used_at.
	(macro2): Remove duplicate zeroing of used_at.

2005-02-16  Alan Modra  <amodra@bigpond.net.au>

	* dw2gencfi.c (output_cie, output_fde): Use DW_CFA_nop rather
	than zero.

2005-02-15  Nigel Stephens  <nigel@mips.com>
	    Maciej W. Rozycki  <macro@mips.com>

	* config/tc-mips.c (reloc_needs_lo_p): Handle
	BFD_RELOC_MIPS16_HI16_S.
	(fixup_has_matching_lo_p): Handle BFD_RELOC_MIPS16_LO16.
	(append_insn): Add BFD_RELOC_MIPS16_GPREL, BFD_RELOC_MIPS16_HI16_S
	and BFD_RELOC_MIPS16_LO16 to relocs to suppress overflow
	complaints on.
	(mips16_ip): Resolve BFD_RELOC_MIPS16_HI16_S,
	BFD_RELOC_MIPS16_HI16 and BFD_RELOC_MIPS16_LO16 for constants.
	Call my_getSmallExpression() to parse percent operators.
	(percent_op_match, mips_percent_op): Separate definitions.
	(mips16_percent_op): Define percent operators for the MIPS16 mode.
	(parse_relocation): Handle the MIPS16 mode using
	mips16_percent_op.
	(md_apply_fix3): Handle BFD_RELOC_MIPS16_HI16,
	BFD_RELOC_MIPS16_HI16_S and BFD_RELOC_MIPS16_LO16.

2005-02-15  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (md_apply_fix3): Call ia64_gen_real_reloc_type
	instead of explicitly dealing with the translation; exclude
	relocations that are already pcrel, however.

2005-02-15  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c: Include limits.h (if available).
	(gr_values[0]): Set path to INT_MAX.
	(dot_reg_val): Don't allow changing value of r0. Limit range of
	general registers at r127.
	(specify_resource): Default resource index is -1. Don't set resource
	index (in case IA64_RS_RSE) without setting the specific flag.
	(note_register_values): Check operand is O_constant before tracking
	input value of moves. Add tracking for dep.z with constant inputs.
	(print_dependency): Resource index of specific resource may be zero.
	(check_dependencies): Likewise.

2005-02-15  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (parse_operands): New local variables reg1, reg2,
	reg_class. Check operands and emit diagnostics for illegal use of
	registers.

2005-02-15  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (ia64_gen_real_reloc_type): Define and initialize
	new variables type, suffix, and width. Handle
	BFD_RELOC_IA64_DIR(32|64)[LM]SB in FUNC_LT_FPTR_RELATIVE case.
	Handle BFD_RELOC_IA64_DIR64[LM]SB in FUNC_TP_RELATIVE case. Add
	FUNC_DTP_MODULE case. Handle BFD_RELOC_IA64_DIR32[LM]SB in
	FUNC_DTP_RELATIVE case. Return incoming relocation type if
	BFD_RELOC_IA64_IPLT[LM]SB in FUNC_IPLT_RELOC case. Generate warning
	if unable to translate relocation type, using the new variables.

2005-02-15  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.h (ia64_symbol_chars): Declare.
	(ty_symbol_chars): Define.
	* config/tc-ia64.c (ia64_symbol_chars): Define.

2005-02-15  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (ia64_parse_name): Only update next character if
	input_line_pointer was advanced.

2005-02-14  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* config/tc-sh.c (md_apply_fix3): Add parentheses around &
	within |.

2005-02-13  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (md_parse_option): Handle -xnone and -xdebugn.
	(md_show_usage): Add -xnone, -xdebugn, and -xdebugx. Relocate default
	indicator.
	(ia64_init): Set md.detect_dv.
	(ia64_start_line): New static variable warned. Warn only once when
	encountering explicit stops in automatic mode.
	* doc/c-ia64.texi: Describe -xnone, -xdebugn, and -xdebugx.
	* NEWS: Mention new default mode.

2005-02-13  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (dot_rot): Add comment that name strings should
	be freed when wiping out previous state. Canonicalize names before
	use. Free name string when detecting redefinition.
	(dot_pred_rel): Call generic expression parser to process arguments.
	Handle O_register case for individual predicates and O_subtract for
	ranges.
	(ia64_parse_name): Canonicalize name before looking it up in dynamic
	register hash.
	(ia64_canonicalize_symbol_name): Strip off all trailing # characters.
	Warn if multiple found, issue error if resulting symbol name has zero
	length.
	(dot_alias): Canonicalize name before use.

2005-02-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-ia64.c (unwind_diagnostic): Return -1 for warning
	and 0 for error.
	(in_procedure): Return -1 for warning.
	(in_prologue): Likewise.
	(in_body): Likewise.

2005-02-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-ia64.c (dot_xdata): Undo the last change.
	(dot_float_cons): Likewise.
	(dot_xstringer): Likewise.
	(dot_xdata_ua): Likewise.
	(dot_float_cons_ua): Likewise.

2005-02-11  H.J. Lu  <hongjiu.lu@intel.com>

	* NEWS: Mention "-munwind-check=[warning|error]".

	* config/tc-ia64.c (md): Add unwind_check.
	(unwind_diagnostic): New.
	(in_procedure): Call unwind_diagnostic when a directive isn't
	in procedure.
	(in_prologue): Call unwind_diagnostic when a directive isn't in
	prologue.
	(in_body): Call unwind_diagnostic when a directive isn't in
	body region.
	(dot_endp): Set md.unwind_check to error before calling
	in_procedure and restore it after. When the name is missing or
	couldn't be found, use the one from the last .proc if
	md.unwind_check isn't error. Warn if md.unwind_check is
	warning.
	(md_parse_option): Handle "-munwind-check=[warning|error]".
	(md_show_usage): Add "-munwind-check=[warning|error]".
	(ia64_init): Set md.unwind_check to warning.

	* doc/as.texinfo: Add "-munwind-check=[none|warning|error]".
	* doc/c-ia64.texi: Likewise.

2005-02-11  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.h (LEX_AT): Include LEX_BEGIN_NAME.
	(LEX_QM): Likewise.
	(ia64_parse_name): New third parameter.
	(md_parse_name): Pass third argument.
	* config/tc-ia64.c (pseudo_func): Placeholders use NULL as name.
	(md_operand): Handling of '@'-prefixed symbols moved from here...
	(ia64_parse_name): ...to here.

2005-02-11  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (md): Remove last_groups and group_idx.
	(errata_nop_necessary_p): Remove declaraction and definition.
	(emit_one_bundle): Don't call errata_nop_necessary_p. Don't
	update md.group_idx. Don't reset md.last_groups.

2005-02-11  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (parse_section_name): Handle non-quoted first
	argument.
	(dot_xdata): Free section name after use.
	(dot_float_cons): Likewise.
	(dot_xstringer): Likewise.
	(dot_xdata_ua): Likewise.
	(dot_float_cons_ua): Likewise.
	(md_pseudo_table): Add xdata16 and xdata16.ua.

2005-02-10  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/all.texi: Add IA64.
	* doc/as.texinfo: Likewise.

	* doc/c-ia64.texi: Fix typos.

2005-02-10  Julian Brown  <julian@codesourcery.com>

	* config/tc-arm.c (do_t_ldmstm): Change BFD_RELOC_NONE to
	BFD_RELOC_UNUSED.
	(do_t_push_pop): Likewise.
	(md_assemble): Likewise.
	(md_apply_fix3): Handle BFD_RELOC_NONE correctly, make
	BFD_RELOC_UNUSED same as previous meaning of BFD_RELOC_NONE.
	(create_unwind_entry): Output dependency on the required personality
	routines.

2005-02-07  Nathan Sidwell  <nathan@codesourcery.com>

	* as.h (seg_not_empty_p): Return int, not bfd_boolean.
	* subsegs.c (seg_not_empty_p): Likewise.

2005-02-07  Inderpreet Singh <inderpreetb@noida.hcltech.com>

	* config/tc-maxq.c (md_estimate_size_before_relax): Correct the
	relative jump calculation.
	<md_convert_frag) : Likewise.
	<output_disp): Likewise.

2005-02-07  Hans-Peter Nilsson  <hp@axis.com>

	* write.c (write_object_file): Recognize warning-symbol construct
	and skip object- and target- handling for the second symbol.

2005-02-02  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (dot_pred_rel): Update comment. Handle @-prefixed
	designators along with quoted ones. Free copy of quoted designator
	when done.

2005-02-01  Ben Elliston  <bje@au.ibm.com>

	* config/atof-ieee.c, config/obj-coff.c, config/obj-elf.c,
	config/obj-ieee.c, config/obj-som.c, config/obj-vms.c,
	config/tc-a29k.c, config/tc-alpha.c, config/tc-arc.c,
	config/tc-arm.c, config/tc-d30v.c, config/tc-dlx.c,
	config/tc-fr30.c, config/tc-h8300.c, config/tc-h8500.c,
	config/tc-i370.c, config/tc-i386.c, config/tc-i960.c,
	config/tc-ia64.c, config/tc-m32r.c, config/tc-m32r.h,
	config/tc-m68hc11.c, config/tc-m68hc11.h, config/tc-mips.c,
	config/tc-mn10200.c, config/tc-msp430.c, config/tc-ns32k.c,
	config/tc-openrisc.c, config/tc-or32.c, config/tc-pdp11.c,
	config/tc-pj.c, config/tc-sparc.h, config/tc-tic54x.c,
	config/tc-tic80.c, config/tc-v850.c, config/tc-w65.c,
	config/tc-xtensa.c, config/tc-z8k.c, config/xtensa-relax.c: Remove
	#if 0'd code throughout.

2005-01-31  Nick Clifton  <nickc@redhat.com>

	* as.c (parse_args): Bump copyright date reported by --version to
	2005.

2005-01-31  Nick Clifton  <nickc@redhat.com>

	* configure.tgt: Remove obsolete targets m68k-lynxos, sparc-lynxos
	and vax-vms.

2005-01-31  Jan Beulich  <jbeulich@novell.com>

	* macro.c (buffer_and_nest): Allow 'from' being NULL; handle anything
	that can end with .endr in that case. Make requiring/permitting
	pseudo-ops without leading dot closer to the logic in read.c serving
	the same purpose.
	(expand_irp): Don't pass a mnemonic to buffer_and_nest as it will be
	ignored.

2005-01-31  Jan Beulich  <jbeulich@novell.com>

	* macro.c (do_formals): Adjust to no longer accept empty parameter
	names.
	(define_macro): Adjust to no longer accept empty macro name, garbage
	following the parameters, or macros that were previously defined.
	* read.c (s_bad_end): Declare.
	(potable): Add endm. Handler for endr and endm is s_bad_end.
	(s_bad_end): Rename from s_bad_endr. Adjust to handle both .endm
	and .endr.
	* read.h (s_bad_endr): Remove.

2005-01-31  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (parse_operands): Parse all specified operands,
	immediately discarding (but counting) those exceeding the maximum
	possible amount. Track whether output and input operand counts ever
	matched, and use this to better indicate which of the operands/
	operand types was wrong; specifically don't default to pointing to
	the first operand.

2005-01-31  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (unwind): Remove proc_end (now an automatic
	variable in dot_endp). Add body and insn. Make prologue,
	prologue_mask, body, and insn bitfields.
	(fixup_unw_records): Remove spurious new-lines from end of diagnostic
	messages.
	(in_procedure, in_prologue, in_body): New.
	(dot_fframe, dot_vframe, dot_vframesp, dot_vframepsp, dot_save,
	dot_restore, dot_restorereg, dot_restorereg_p, dot_handlerdata,
	dot_unwentry, dot_altrp, dot_savemem, dot_saveg, dot_savef, dot_saveb,
	dot_savegf, dot_spill, dot_spillreg, dot_spillmem, dot_spillreg_p,
	dot_spillmem_p, dot_label_state, dot_copy_state, dot_unwabi,
	dot_personality): Use the appropriate one of the above.
	(dot_proc): Clear unwind.proc_start; set to current location only if
	none of the entry points were valid. Check for non-zero-length entry
	point names. Check that entry points aren't defined, yet. Clear
	unwind.prologue, unwind.body, and unwind.insn.
	(dot_body): Call in_procedure. Check that first directive in procedure
	had no insns emitted before. Set unwind.body.
	(dot_prologue): Call in_procedure. Check that not already in prologue.
	Check that first directive in procedure had no insns emitted before.
	Clear unwind.body.
	(dot_endp): Call in_procedure. Declare proc_end. Check for non-zero-
	length entry point names. Check that entry points became defined.
	(md_assemble): Set unwind.insn once unwind.proc_start is defined.

2005-01-31  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (emit_one_bundle): Snapshot manual bundling state
	before actually using it. Don't generate an error in manual bundling
	mode when looking at an insn requiring slot 2 but not yet at slot 2.
	Don't generate an error in manual bundling mode when looking at an
	insn required to be last in its group but the required slot hasn't
	been reached, yet. Allow conversion from MII to MI;I for bundle
	consisting of only 2 insns with the stop between them. Suppress
	various meaningless errors resulting from detecting earlier ones.

2005-01-31  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (parse_operands): Also handle alloc without first
	input being ar.pfs.

2005-01-28  Christian Groessler  <chris@groessler.org>

	* config/tc-z8k.c (md_assemble): Improve error detection.

2005-01-28  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (ia64_estimate_size_before_relax): Allocate space
	for personality routine pointer only if there is one.
	(ia64_convert_frag): Likewise.
	(generate_unwind_image): Likewise.

2005-01-27  Christian Groessler  <chris@groessler.org>

	* config/tc-z8k.c (INSERT): Remove, not used anywhere.
	(md_apply_fix3): Make relative branches out of range an error
	instead of a warning.  Display correct line number for out of
	range branches/calls/memory accesses.

2005-01-27  Nathan Sidwell  <nathan@codesourcery.com>

	* dwarf2dbg.c (dwarf2_finish): Correct logic for determining when
	to emit .debug_line and other debug sections.
	* as.h (seg_not_empty_p): Declare.
	* subsegs.c (seg_not_empty_p): New predicate.

2005-01-27  Andrew Cagney  <cagney@gnu.org>

	* configure: Regenerate to track ../gettext.m4 change.

2005-01-27  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (emit_one_bundle): Change "?imbf??" to "?ibmfxx".

2005-01-27  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (emit_one_bundle): Add late resolution of move
	to/from application registers dynamic insns.
	(md_assemble): Defer resolution of move to/from application registers
	dynamic insns when they can be issued on either the I- or M-units.

2005-01-25  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-frv.c (md_apply_fix3): Mark TLS symbols as such.
	2004-12-10  Alexandre Oliva  <aoliva@redhat.com>
	* config/tc-frv.c (frv_pic_ptr): Add tlsmoff support.
	2004-11-10  Alexandre Oliva  <aoliva@redhat.com>
	* cgen.c (gas_cgen_parse_operand): Handle
	CGEN_PARSE_OPERAND_SYMBOLIC.
	* config/tc-frv.c (md_cgen_lookup_reloc): Handle TLS relocations.
	(frv_force_relocation): Likewise.  Fix handling of PIC
	relocations.
	(md_apply_fix3): Likewise.

2005-01-21  Ben Elliston  <bje@au.ibm.com>

	* as.h: Remove #if 0'd code.
	* atof-generic.c (atof_generic): Likewise.
	* ecoff.c (ecoff_directive_frame): Likewise.
	* frags.h (FRAG_APPEND_1_CHAR): Likewise.
	* itbl-ops.c (itbl_add_reg): Likewise.
	* listing.c (calc_hex): Likewise.
	* read.c (MASK_CHAR): Likewise.
	* subsegs.c (subsegs_print_statistics): Likewise.
	* symbols.c (indent): Likewise.
	* write.c (write_relocs): Likewise.
	(write_object_file): Likewise.
	(relax_frag): Likewise.

2005-01-20  Nick Clifton  <nickc@redhat.com>

	* as.c (std_longopts): Add an entry for "--a" in order to prevent
	getopt_long_only() from considering -a as an abbreviation for
	--alternate.
	(parse_args): Fix the parsing of -a=<file>.

2005-01-20  Alan Modra  <amodra@bigpond.net.au>

	PR gas/684
	* read.c (s_incbin): Adjust default count for skip.  Check validity
	of count and skip rigorously.

2005-01-19  Fred Fish  <fnf@specifixinc.com>

	* config/tc-mips.c (dummy_opcode): Add init for new struct member.

2005-01-19  Richard Sandiford  <rsandifo@redhat.com>

	* read.c (convert_to_bignum): New function, split out from...
	(emit_expr): ...here.  Handle the case where X_add_number is
	positive and the input value is negative.
	(output_big_sleb128): Fix setting of continuation bit.  Check whether
	the final byte needs to be sign-extended.  Fix size-shrinking loop.
	(emit_leb128_expr): When generating a signed leb128, see whether the
	sign of an O_constant's X_add_number matches the sign of the input
	value.  Use a bignum if not.

2005-01-17  Andrew Stubbs  <andrew.stubbs@st.com>

	* tc-sh.c (md_begin,md_parse_option): Change arch_sh1_up to
	arch_sh_up in order to match the external name and make the
	testsuite's job easier.

2005-01-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR 659
	* config/tc-i386.c (i386_scale): Disallow 0 scale.

2005-01-12  Nick Clifton  <nickc@redhat.com>

	* config/tc-iq2000.c (s_iq2000_set): Fix thinko parsing
	ignored_arguments array.

2005-01-10  H.J. Lu  <hongjiu.lu@intel.com>

	* write.c (write_object_file): Disallow a symbol equated to
	common symbol.

2005-01-10  Inderpreet Singh <inderpreetb@noida.hcltech.com>

	* tc-maxq.c: Replace constants 10 and 20 with bfd_mach_maxq10 and
	bfd_mach_maxq20.
	(md_pseudo_table): Add new pseudo ops for maxq10 and maxq20.
	(maxq_target): New function: Set the machine type.

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

	* config/tc-arm.c (FPU_DEFAULT): Define for TE_VXWORKS.
	(md_begin): Handle TE_VXWORKS for FP defaults.
	(md_apply_fix3): Correct rela offsets.
	(elf32_arm_target_format): Add VxWorks targets.

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

	* configure.tgt: Set em=vxworks for *-*-vxworks.
	* config/te-vxworks.h: New File.

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

	* config/tc-arm.c (arm_cpus): Correct arch field for arm1026ej-s.

2005-01-04  Dmitry Diky  <diwil@spec.ru>

	* config/tc-msp430.c (md_apply_fix3): Fix offset calculation for
	global label.

2005-01-03  David Mosberger  <davidm@hpl.hp.com>

	* config/tc-ia64.c (md): Add member "loc_directive_seen".
	(dot_loc): New function.
	(md_pseudo_table): Add entry to map .loc to dot_loc().
	(emit_one_bundle): Only call dwarf2_gen_line_info() if we have
	seen a .loc directive or we're generating DWARF2 debug info for
	assembly source.

For older changes see ChangeLog-2004

Copyright (C) 2005 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
