2001-12-31  Richard Henderson  <rth@redhat.com>

	* config/tc-ia64.c (errata_nop_necessary_p): Prototype.
	(make_unw_section_name): Constify local variables.

	* config/tc-ia64.c (has_suffix_p): New.
	(note_register_values): Use it instead of strstr.

2001-12-31  Jeffrey A Law  (law@redhat.com)

	* config/tc-hppa.c (pa_ip): Handle new 'c' mode completers,
	'X', 'M', and 'A'.

2001-12-21  Jakub Jelinek  <jakub@redhat.com>

	* config/tc-sparc.h (TC_PARSE_CONS_EXPRESSION): Define.
	(sparc_cons): Provide prototype.
	* config/tc-sparc.c (tc_gen_reloc): Handle BFD_RELOC_*_PCREL and
	BFD_RELOC_SPARC_PLT{32,64}.  Enumerate for which relocs
	reloc->addend = fixp->fx_addnumber shouldn't be done instead of
	enumarating for which pc relative ones it should be done.
	(sparc_cons_special_reloc): New variable.
	(sparc_cons): New function.
	(cons_fix_new_sparc): Use sparc_cons_special_reloc.
	* testsuite/gas/sparc/pcrel.s: New test.
	* testsuite/gas/sparc/pcrel.d: Expected output.
	* testsuite/gas/sparc/pcrel64.s: New test.
	* testsuite/gas/sparc/pcrel64.d: Expected output.
	* testsuite/gas/sparc/plt.s: New test.
	* testsuite/gas/sparc/plt.d: Expected output.
	* testsuite/gas/sparc/plt64.s: New test.
	* testsuite/gas/sparc/plt64.d: Expected output.
	* testsuite/gas/sparc/sparc.exp: Add pcrel, pcrel64, plt and plt64
	tests.

2001-12-20  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
	    Daniel Jacobowitz <drow@mvista.com>

	* config/tc-mips.c (file_mips_gp32): Initialize to invalid value.
	(file_mips_fp32): Likewise.
	(md_begin): Compatibility handling for -mipsN option.

2001-12-20  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-sh.c (parse_at): Reject @(r0) and @(r0,).

2001-12-20  matthew green  <mrg@redhat.com>

	* config/tc-ppc.c (md_parse_option): Make -maltivec default
	to generating PowerPC instructions.

2001-12-20  Jason Thorpe  <thorpej@wasabisystems.com>

	* configure.in (mips-dec-netbsd*): Delete.
	* configure: Regenerate.

	* configure.in (arm-*-netbsdelf*): Add target.
	* configure: Regenerate.

2001-12-18  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-mips.h (TC_HANDLE_FX_DONE): Remove redundant
	definition.

2001-12-18  Niibe Yutaka  <gniibe@m17n.org>

	* configure.in (assign object format): Bug fix for setting
	endian.
	* configure: Regenerate.

2001-12-18  matthew green  <mrg@eterna.com.au>

	* configure.in (m68k-*-netbsdelf*): New target.
	(m68k-*-netbsd*): Also include ELF support.
	(m68k-*-netbsdaout*): New alias for m68*-*-netbsd*.
	* configure: Regenerate.

2001-12-18  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* gasp.c (main): Protoype.

2001-12-17  Richard Henderson  <rth@redhat.com>

	* config/tc-alpha.c (alpha_handle_align): Encode unop with RB as $sp.

2001-12-17  Nick Clifton  <nickc@cambridge.redhat.com>

	* cgen.c: Add prototype for queue_fixup.
	(gas_cgen_parse_operand): Move initilisastion of errmsg to avoid
	possible longjmp corruption.
	* cgen.h: Add prototype for gas_cgen_md_operand.

2001-12-15  Alan Modra  <amodra@bigpond.net.au>

	* config/obj-elf.c (obj_elf_init_stab_section): References are
	kept to section name strings.  Don't alloca them!

2001-12-12  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-d10v.c (get_operands): Mark OPERAND_PLUS after
	OPERAND_ATSIGN as O_absent.

2001-12-07  Geoffrey Keating  <geoffk@redhat.com>
	    Richard Henderson  <rth@redhat.com>

	* configure.in: Add support for xstormy16.
	* configure: Regenerated.
	* Makefile.am: Add support for xstormy16.
	* Makefile.in: Regenerated.
	* config/tc-xstormy16.c: New file.
	* config/tc-xstormy16.h: New file.

2001-12-06  Richard Earnshaw (rearnsha@arm.com)

	* tc-arm.c (do_arit, do_cmp, do_mov, do_ldst, do_ldstt, do_ldmstm)
	(do_branch, do_swi, do_adr, do_adrl, do_empty, do_mul, do_mla)
	(do_swap, do_msr, do_mrs, do_mull, do_ldstv4, do_bx, do_blx)
	(do_bkpt, do_clz, do_lstc2, do_cdp2, do_co_reg2, do_smla, do_smlal)
	(do_smul, do_qadd, do_pld, do_ldrd, do_co_reg2c, do_cdp, do_lstc)
	(do_co_reg, do_fpa_ctrl, do_fpa_ldst, do_fpa_ldmstm, do_fpa_monadic)
	(do_fpa_dyadic, do_fpa_cmp, do_fpa_from_reg, do_fpa_to_reg, do_mia)
	(do_mar, do_mra, do_c_binops, do_c_binops_1, do_c_binops_2)
	(do_c_binops_3, do_c_triple, do_c_triple_4, do_c_triple_5, do_c_quad)
	(do_c_quad_6, do_c_dspsc, do_c_dspsc_1, do_c_dspsc_2, do_c_shift)
	(do_c_shift_1, do_c_shift_2, do_c_ldst, do_c_ldst_1, do_c_ldst_2)
	(do_c_ldst_3, do_c_ldst_4, do_branch25): Delete redundant argument,
	FLAGS.
	(struct asm_opcode): Adjust parms field accordingly.
	(md_assemble): Don't pass dummy second argument when calling worker
	functions.
	(build_arm_ops_hsh): Add prototype
	(BAD_FLAGS): Delete.

2001-12-05  Richard Earnshaw  <rearnsha@arm.com>

	* tc-arm.c (struct asm_opcode): Delete comp_suffix and flags.  Add
	cond_offset.  Rename variants->variant.
	(insns): Adjust for new format.  Explicitly code each variant that
	takes flags.  Remove temporary instructions.
	(struct arm_it): Remove redundant field suffix.
	(s_flag, ldr_flags, str_flags, byte_flag, cmp_flags, ldm_flags)
	(stm_flags, lfm_flags, sfm_flags, round_flags, fix_flags, except_flag)
	(long_flag): Delete.
	(struct asm_flg): Delete.
	(LONGEST_INST): Delete.
	(V4_STR_BIT): Define.
	(struct thumb_opcode): Rename variants->variant.
	(do_empty): Renamed from do_nop.
	(ldst_extend): Delete argument hwse.  Split code for half-word and
	signed byte instructions to ...
	(ldst_extend_v4): ... here.
	(ld_mode_required_here): Use ldst_extend_v4.
	(do_ldrd): Simplify now that this is only called for ldrd.  No
	need to test for XScale, which was wrong anyway.  Don't reject r12
	as a target register.  Add test that ldrd doesn't update an index
	register.
	(do_pld): Don't allow post-indexed or write-back addressing modes.
	Adjust call to ldst_extend.
	(do_adr): Split code for adrl to ...
	(do_adrl): ... here.
	(do_cmp): No need to fold in COND_BIT.
	(do_ldst): Simplify.  Split code for ldrt/strt into do_ldstt.  Split
	code to handle half-word and signed byte instructions to ...
	(do_ldstv4): ... here.
	(do_ldstt): New function.  Handle load/store with translate.
	(do_ldmstm): Write feature modification bits directly into
	inst.instruction.
	(do_fpa_ldst): Remove suffix handling code.
	(do_fpa_dyadic, do_fpa_monadic, do_fpa_from_reg): Likewise.
	(do_fpa_ldmstm): Type of access is now held in inst.instruction.
	(build_arm_ops_hsh): New function.
	(md_begin): Call it.  Don't build the ARM opcode directly.
	(md_assemble): Simplify ARM instruction handling.

2001-12-05  Arati Dikey <aratid@kpit.com>

	* tc-sh.c (parse_at): Corrected incorrect op->type selection due
	to missing 'else'.

2001-12-04  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-d10v.c (write_2_short): Don't skip dummy fixups, so
	that we can tell which operand refers to the insn put in the L
	container and mark it as such, so that the relocation type can be
	adjusted.

2001-12-04  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (mips_cpreturn_offset): Better comment.
	(load_register): Better error message. Cast away signedness
	mismatches. Add casts needed for varargs.
	(load_address): Replace checks of HAVE_64BIT_ADDRESS with dbl.
	Remove superfluous casts.
	(macro): Cast away signedness mismatches. Remove superfluous casts.
	(s_cpload): Fix wrong comment.
	(s_mips_weakext): Standardize output message.
	(get_number): Likewise.

2001-12-04  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (append_insn): Add jump address range overflow
	check.

2001-12-04  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (md_parse_option): Fix comment. Allow -mabi option
	for ELF only.
	(show): Document -mabi option.

2001-12-03  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>

	* config/tc-arm.c (md_parse_option): Only clear cpu part when
	specifying 'xscale' cpu (don't change the fpu part).

2001-12-04  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-d10v.c (find_opcode): Reject SP operand if
	OPERAND_NOSP flag is present.

2001-12-03  Eric Christopher  <echristo@redhat.com>

	* config/tc-mips.c (tc_gen_reloc): One missed BFD_RELOC_MIPS_GPREL.

2001-12-02  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (macro_build): Replace BFD_RELOC_MIPS_GPREL
	by BFD_RELOC_GPREL16.
	(load_address): Likewise.
	(macro): Likewise.
	(md_apply_fix): Likewise. Replace BFD_RELOC_MIPS_GPREL32 by
	BFD_RELOC_GPREL32.
	(s_gpword): Replace BFD_RELOC_MIPS_GPREL32 by BFD_RELOC_GPREL32.
	(tc_gen_reloc): Replace BFD_RELOC_MIPS_GPREL by BFD_RELOC_GPREL16.
	*config/tc-mips.h: Replace BFD_RELOC_MIPS_GPREL by BFD_RELOC_GPREL16.

2001-11-29  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-d10v.c (get_operands): Emit OPERAND_PLUS for
	prefix `+'.

	* config/tc-d10v.c (find_opcode): Reject non-SP operand if
	flags requires SP.

2001-11-29 Arati Dikey <aratid@kpit.com>

	* tc-sh.c (parse_at): Removed case-sensitivity of index register
	R8, R9.

2001-11-28  Jakub Jelinek  <jakub@redhat.com>

	* write.c (adjust_reloc_syms): Mark SEC_MERGE symbols as used
	in reloc if it has non-zero addend.
	* config/tc-alpha.c (tc_gen_reloc): Reinstall SEC_MERGE check.
	* config/tc-sparc.c (md_apply_fix3): Likewise.

2001-11-28  Andreas Schwab  <schwab@suse.de>

	* as.c (parse_args): Call md_after_parse_args if defined.
	* config/tc-ia64.h (md_after_parse_args): Define.
	* config/tc-ia64.c (ia64_after_parse_args): Reject --gstabs.
	* doc/internals.texi (CPU backend): Document md_after_parse_args.

2001-11-23  Jakub Jelinek  <jakub@redhat.com>

	* config/tc-alpha.c (tc_gen_reloc): Remove SEC_MERGE test.
	* write.c (adjust_reloc_syms): Don't handle relocs against
	SEC_MERGE section symbols specially.
	(fixup_segment): Likewise.

2001-11-21  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.c (mips_need_elf_addend_fixup): New, extracted from...
	(md_apply_fix3): ...here.  Don't prevent the symbol value being
	subtracted twice from GPREL addends.
	(tc_gen_reloc): Add the symbol value to a GPREL addend if it was
	subtracted by the previous function.

2001-11-20  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-avr.c (md_apply_fix3): Fix typo introduced by
	md_apply_fix3 change.

2001-11-20  Ben Elliston  <bje@redhat.com>

	* config/tc-m88k.c (md_apply_fix3): Match local variable `val' to
	 usage after md_apply_fix3 cleanups.

2001-11-19  Hans-Peter Nilsson  <hp@bitrange.com>

	* doc/c-mmix.texi: Use texinfo 4 features.
	(MMIX-mmixal): Fix typo.

2001-11-17  Hans-Peter Nilsson  <hp@axis.com>

	* config/tc-cris.c (md_apply_fix3): Cast value, not pointer, in
	val assignment.

2001-11-16  Michael Snyder  <msnyder@redhat.com>

	* stabs.c (stabs_generate_asm_lineno): Remember file and line number
	from one call to the next, and eliminate consecutive duplicates
	(thereby emitting only one line symbol per source line).
	* dwarf2dbg.c (dwarf2_gen_line_info): Ditto.

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

	* config/tc-m68k.c (md_apply_fix3): Change val back to a signed type.

2001-11-15  H.J. Lu  <hjl@gnu.org>

	* config/tc-hppa.c (md_apply_fix3): Fix a typo.

2001-11-15  H.J. Lu  <hjl@gnu.org>

	* config/tc-alpha.c (md_apply_fix3): Fix a typo.

2001-11-15  Nick Clifton  <nickc@cambridge.redhat.com>

	* write.c (fixup_segment): Remove references to md_apply_fix and
	TC_HANDLE_FX_DONE.
	* cgen.c, config/obj-coff.c, config/tc-*.c: Update all occurances
	of md_apply_fix to md_apply_fix3.
	Make all md_apply_fix3 functions void.
	* cgen.h, config/obj-coff.h, tc-*.h: Remove all definitions of
	MD_APPLY_FIX3 and TC_HANDLE_FX_DONE.
	* doc/internals.texi: Update references to md_apply_fix3.
	* tc.h: Update prototype for md_apply_fix3.

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

	* config/tc-i386.h (md_end): Define.
	(i386_elf_emit_arch_note): Declare.
	(CpuUnknown): Delete.
	* config/tc-i386.c (default_arch): Constify.
	(smallest_imm_type): Remove CpuUnknown test.
	(md_assemble): Don't bother checking cpu_arch_flags non-zero.
	(i386_elf_emit_arch_note): New function.

	* po/POTFILES.in: Regenerate.

2001-11-15  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (mips_ip): Re-allow %hi() op for non-ELF assembler.

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

	* frags.c (frag_grow): Revert last change.

	* dwarf2dbg.c (get_frag_fix): Align last frag size.

	* config/tc-ppc.c (ppc_insert_operand): Pass (ppc_cpu | ppc_size)
	to operand->insert.
	(md_assemble): Likewise.

2001-11-12  Nick Clifton  <nickc@cambridge.redhat.com>

	* frags.c (frag_grow): Use frag_make_room() to grow the
	obstack.

2001-11-14  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-sparc.c (md_apply_fix3): Do not remove the symbol's
	value from the addend for fixups against local symbols in
	SEC_MERGE sections - it was not added in, in the first place.

2001-11-11  Timothy Wall  <twall@alum.mit.edu>

	* write.c (relax_segment): Convert symbol address into an octet
	offset prior to adding to the frag address, which is an octet
	offset.   Add comments to that effect.
	* config/tc-tic54x.c: Fix bugs causing tests to fail.
	* config/tc-tic54x.h: Ditch PARAMS macro.

2001-11-13  Alan Modra  <amodra@bigpond.net.au>

	* config/obj-elf.c (obj_elf_version): Ensure terminating NUL is
	put in note section.  Use sizeof instead of hard-coded constants.

2001-11-12  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (support_64bit_objects): Define for OBJ_ELF only.
	(md_longopts): Allow OPTION_MABI for ELF compilation only. RE-allow
	OPTION_GP32, OPTION_GP64, OPTION_FP32 for non-ELF compilation.
	Sort options a bit more logical.
	(md_parse_option): Allow OPTION_32, OPTION_N32, OPTION_N64,
	OPTION_MABI only for elf targets.

2001-11-12  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (set_at): Add cast needed for varargs.
	(load_register): Likewise.
	(macro): Likewise. Some code reformatting.
	(macro2): Add cast needed for varargs.
	(mips16_macro): Likewise.

2001-11-12  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (md_assemble): Remove superflous casts.
	(append_insn): Likewise.
	(mips16_macro_build): Likewise.
	(macro): Likewise.
	(mips16_ip): Likewise.
	(s_cpload): Likewise.
	(mips_relax_frag): Likewise.

2001-11-12  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (mips_abi_level): Move in front of
	mips_set_options.
	(mips_set_options): Add members gp32, fp32, abi.
	(file_mips_gp32): New flag.
	(file_mips_fp32): New flag.
	(mips_opts): Initialize the new members.
	(mips_gp32): Remove.
	(mips_fp32): Remove.
	(HAVE_32BIT_GPRS): Use the new values from mips_opts.
	(HAVE_32BIT_FPRS): Likewise.
	(HAVE_NEWABI): Likewise.
	(HAVE_64BIT_OBJECTS): Likewise.
	(md_begin): Likewise. Save default (file) values.
	(md_parse_option): Use the new values from mips_opts.
	(s_mipsset): Likewise. Fix logic to keep the ABI selection if
	possible. Let .set mipsN work together with .set push/pop.
	Enhance error messages.
	(mips_elf_final_processing): Use file_mips_* for header processing.

2001-11-09  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/tc-avr.c (mcu_types): Update for new devices.

2001-11-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* doc/Makefile.am (POD2MAN): Use 'GNU Development Tools' for
	the page man title.
	* doc/Makefile.in: Rebuild.
	* doc/as.texinfo: Do not put man SEEALSO in document;
	Use @command for commands, @option for options; Reorganize usage
	to clearly identify target specific options.

2001-11-08  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (mips_force_relocation): Remove duplicate code.

2001-11-06  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (my_getSmallParser): Fix small parser bug.

2001-11-05  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* config/tc-s390.c (tc_s390_force_relocation): Force all relocations
	that need the global offset table.
	(md_apply_fix3): Add code to undo opertions done in fixup_segment
	triggered by TC_FORCE_RELOCATION.
	* config/tc-s390.h (TC_FORCE_RELOCATION): Replace macro code with
	a call to function tc_s390_force_relocation.
	(TC_FIX_ADJUSTABLE): Define.

2001-11-04  Chris Demetriou  <cgd@broadcom.com>

	* configure.in (mips-*-netbsd*): Add support for target.
	* configure: Regenerate.

2001-11-02  Nick Clifton  <nickc@cambridge.redhat.com>

	* configure.in (ALL_LINGUAS): Add 'fr'.
	* configure: Regernate.
	* po/fr.po: New file.  Obtained from the translation project web
	site.

2001-11-02  Richard Earnshaw  <rearnsha@arm.com>

	* tc-arm.c: Re-arrange prototypes by architecture.
	(insns): Re-arrange instructions by archtitecture.  Pld instruction
	is part of ARMv5E.
	(tinsns): blx and bkpt are part of ARMv5T.
	(do_fp_{ctrl,ldst,ldstm,dyadic,monadic,cmp,from_reg,to_reg}): Rename
	to do_fpa_*.  All callers changed.

	* tc-arm.c (insns): Add two temporary instructions to handle
	ldrd/strd.

2001-11-01  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/tc-m68hc11.c (build_jump_insn): Allocate worst case storage
	for bra/bsr and use frag_variant(), this ensure that the possible
	16-bit BFD_RELOC_16 will be in the same frag.

2001-10-31  Chris Demetriou  <cgd@broadcom.com>

	* config/tc-mips.c (HAVE_32BIT_ADDRESSES): If compiling embedded
	PIC code, assume pointers the same size as GPRs.
	(macro): In M_LA_AB handling for embedded PIC code, support
	"la $treg,foo-bar($breg)".  In load/store handling
	(label ld_st) support "<op> $treg,<sym>-<local_sym>($breg)"
	which is used by the compiler for switch statements.
	In load/store double multi-instruction macro handling
	(label ldd_std) add a comment that no special handling
	is currently done for embedded PIC.
	(mips_ip): In 'o' (16-bit offset) case, only accept 16
	bit offsets.

2001-10-31  Richard Earnshaw  <rearnsha@arm.com>

	General cleanup of feature definitions.
	* tc-arm.c (ARM_EXT_LONGMUL, ARM_EXT_HALFWORD, ARM_EXT_THUMB): Delete.
	(ARM_2UP, ARM_ALL, ARM_3UP, ARM_6UP): Delete.
	(FPU_CORE, FPU_FPA10, FPA_FPA11, FPU_ALL, FPA_MEMMULTI): Delete.
	(ARM_EXT_V{1,2,2S,3,3M,4,4T,5T,5ExP}): New defines.
	(ARM_EXT_V{5,5E}): Synchronize with above.
	(ARM_ARCH_V*): Define a complete set in terms of above features.
	(ARM_{1,2,3,250,6,7,8,9,STRONG}): Define in terms of architecture.
	(FPU_FPA_EXT_V[12]): Define.
	(FPU_ARCH_FPE, FPU_ARCH_FPA): Define in terms of above.
	(FPU_ANY): Define.
	(FPU_DEFAULT): Default to FPA.
	(CPU_DEFAULT): For XScale, this is now just ARM_ARCH_XSCALE; for
	Thumb, this is now ARM_ARCH_V5T.
	(insns): Rework for new feature defines.
	(tinsns): Likewise.
	(opcode_select, do_ldst, md_begin, md_parse_option): Likewise.

2001-10-31  NIIBE Yutaka  <gniibe@m17n.org>

	* configure.in: Handle sh*eb-*-linux* and sh*-*-linux*.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* doc/c-sh.texi (SH Options): Added descriptions.

2001-10-30  Hans-Peter Nilsson  <hp@bitrange.com>

	* configure.in: Update for MMIX port.
	* Makefile.am: Ditto.  Regenerate dependencies.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* config/tc-mmix.h, config/tc-mmix.c: New files.
	* doc/Makefile.am (CPU_DOCS): Add c-mmix.texi
	* doc/Makefile.in: Regenerate.
	* doc/all.texi: @set MMIX.
	* doc/as.texinfo: Ditto.  Add MMIX gas manpage option overview.
	Include c-mmix.texi.
	* doc/c-mmix.texi: New file.

2001-10-24  Chris Demetriou  <cgd@broadcom.com>

	* config/tc-mips.c (hilo_interlocks, cop_interlocks): Make
	these evaluate to true if mips_arch indicates SB-1.

2001-10-23  Alan Modra  <amodra@bigpond.net.au>

	* as.c (parse_args): Print the date as well for --version.

2001-10-20  Chris Demetriou  <cgd@broadcom.com>

	* config/tc-mips.c (md_show_usage): Print "sb1" for Broadcom
	SB-1 CPU for consistency.
	(mips_cpu_info_table): Tweak comment about SB-1.

2001-10-20  H.J. Lu  <hjl@gnu.org>

	* config/tc-arm.c (do_c_shift): Use ISDIGIT instead of isdigit.
	(cirrus_parse_offset): Likewise.

2001-10-19  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-arm.c: Restore line_comment_chars.

2001-10-18  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-arm.c (comment_chars): Remove semi-colon accidentally
	added to the list.

2001-10-18  Hans-Peter Nilsson  <hp@bitrange.com>

	* write.c (fixup_segment): Handle fixups for SEC_MERGE sections as
	for undefined symbols.

2001-10-17  Chris Demetriou  <cgd@broadcom.com>

	* doc/as.texinfo (MIPS ISA options):  Added accidentally
	omitted "-mips64" option to list of options.

2001-10-17  matthew green  <mrg@redhat.com>

	* config/tc-ppc.c (md_show_usage): Add missing -maltivec, -m7400,
	-m7410, -m7450 and -m7455 options.

2001-10-17  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-ppc.c (PPC_HA, PPC_HIGHERA, PPC_HIGHESTA): Simplify.
	(ppc_size): Select PPC_OPCODE_64 if 64 bit.
	(md_begin): Don't set ppc_size here.
	(ppc_target_format): Test ppc_size as well as BFD_DEFAULT_TARGET_SIZE.
	(md_shortopts): Constify.
	(md_longopts): Likewise.
	(md_longopts_size): Likewise.
	(ppc_elf_suffix): Only allow 64-bit relocs when ppc_size specifies
	64-bit opcodes.
	(ppc_machine): Explain why this function is a nop.

2001-10-17  Alan Modra  <amodra@bigpond.net.au>

	* bit_fix.h: Comment typo fix.
	* config/tc-mips.c: Likewise.
	* config/tc-sh.c: Likewise.
	* config/tc-arc.c (arc_code_symbol): Remove unnecessary test.

	* configure.in (MIPS_STABS_ELF): AC_DEFINE in only one place so
	that autoheader doesn't duplicate config.in entries.
	(DEFAULT_ARCH): Ditto.
	* configure: Regenerate.
	* config.in: Regenerate.

2001-10-16  Alan Modra  <amodra@bigpond.net.au>

	From Andrew Pines <apines@cosmodog.com>
	* config/tc-m68k.c (m68k_ip): Correct absolute jmp opcodes.

2001-10-16  NIIBE Yutaka  <gniibe@m17n.org>,
	    Hans-Peter Nilsson  <hp@bitrange.com>

	* config/tc-sh.c (shl): Remove.
	(big): New function.
	(little): Remove shl handling.  Emit error for endian mismatch.
	(md_show_usage): Add description of -big.
	(md_parse_option): Handle OPTION_BIG.  Remove shl handling.
	(OPTION_BIG): Add.
	(md_pseudo_table): Add .big.
	(md_longopts): Add -big.
	(md_begin): Don't set target_big_endian here.
	* config/tc-sh.h (TARGET_BYTES_BIG_ENDIAN): Remove.
	(LISTING_HEADER, COFF_MAGIC, TARGET_FORMAT): Use target_big_endian.
	(shl): Remove.
	* configure.in (endian): Default is big.
	(sh-*-pe*): Little endian.
	(cpu_type): Set sh for target sh*.
	* configure: Regenerate.

2001-10-15  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (md_apply_fix): Preliminary handling of NewABI
	relocations.

2001-10-13  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-arm.c: Replace CONST with const.

	* cgen.c: Tidy up formatting.

2001-10-12  matthew green  <mrg@redhat.com>

	* config/tc-ppc.c (md_parse_option): New -m7410, -m7450 and -m7455
	flags, equivalent to -m7400.  New -maltivec to enable AltiVec
	instructions.  New -mbook64 and -mbooke/-mbooke32 flags to enable
	64-bit and 32-bit BookE support, respectively.  Change -m403 and
	-m405 to set PPC403 option.
	(md_show_usage): Adjust for new options.
	* doc/all.texi: Set PPC.
	* doc/as.texinfo: Add PPC support and pull in c-ppc.texi.
	* doc/c-ppc.texi: New file.
	* doc/Makefile.am (CPU_DOCS): Add c-ppc.texi.
	* doc/Makefile.in: Regenerate.

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

	* read.c (s_bad_endr): New function.  Issues a warning message
	about a bad use of the .rept pseudo op.
	(po_table[]): Add .endr.
	* read.h: Prototype s_bad_endr.

	* CONTRIBUTORS: Update contact email address.

2001-10-11  Kazu Hirata  <kazu@hxi.com>

	* config/tc-alpha.c: Fix comment typos.
	* config/tc-cris.c: Likewise.
	* config/tc-hppa.c: Likewise.
	* config/tc-i370.c: Likewise.
	* config/tc-mips.c: Likewise.
	* config/tc-mn10200.c: Likewise.
	* config/tc-mn10300.c: Likewise.
	* config/tc-sh.c: Likewise.
	* config/tc-tahoe.c: Likewise.
	* config/tc-v850.c: Likewise.

2001-10-11  Kazu Hirata  <kazu@hxi.com>

	* app.c: Fix comment typos.
	* bit_fix.h: Likewise.
	* expr.c: Likewise.
	* itbl-ops.c: Likewise.

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

	* input-file.c: Include safe-ctype.h.
	(input_file_open): Use ISSPACE instead of isspace.

2001-10-10  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (mips_cpreturn_offset): New variable.
	(mips_cpreturn_register): Likewise.
	(mips_gp_register): Likewise.
	(s_cpsetup): New function prototype.
	(s_cplocal): Likewise.
	(s_cpreturn): Likewise.
	(s_gpvalue): Likewise.
	(mips_pseudo_table): Add .cpsetup, .cplocal, .cpreturn, .gpvalue
	pseudo-ops.
	(macro): Don't warn about .cprestore for NewABI.
	(md_pcrel_from): Code cleanup.
	(mips_force_relocation): Force output of some NewABI relocations even
	without a defined symbol.
	(s_cpload): Ignore .cpload for NewABI.
	(s_cpsetup): Handle .cpsetup.
	(s_cplocal): Handle .cplocal.
	(s_cprestore): Ignore .cprestore for NewABI.
	(s_cpreturn): Handle .cpreturn.
	(s_gpvalue): Handle .gpvalue.
	(s_cpadd): Ignore .cpadd for NewABI.
	(nopic_need_relax): Take g_switch_value into account as gp
	optimization.
	(tc_gen_reloc): Don't handle BFD_RELOC_MIPS_{CALL,GOT}* for NewABI.

2001-10-10  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (my_getSmallParser): New function prototype.
	(small_ex_type): Named this enum, more return values for
	my_getSmallExpression.
	(mips_ip): Allow SPC and HT between arguments. Handle some NewABI
	triple relocations. Protect some parts with ifdef OBJ_ELF.
	(percent_op_match): New struct, lookup table for %some_reloc().
	(my_getSmallParser): New function, parses nested percent_ops also.
	(my_getSmallExpression): Rewite to support nested percent_ops.

2001-10-10  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c
	(load_address): Support both 32- and 64-bit addresses.
	(macro): Call load_register correctly. Expand 64-bit loads ans stores.
	(macro2): Call load_address correctly.

2001-10-09  Christian Groessler <cpg@aladdin.de>

	* config/tc-z8k.c: Include opcodes/z8k-opc.h after bfd.h
	since z8k-opc.h now uses the PARAMS macro.

2001-10-09  Aldy Hernandez  <aldyh@redhat.com>

	* config/tc-arm.c: Change MAVERIK to MAVERICK.

2001-10-09  Alan Modra  <amodra@bigpond.net.au>

	* config/obj-elf.c: Make use of elf_group_name and elf_next_in_group
	throughout file.
	(obj_elf_change_section): Rename "group" to "group_name".
	(obj_elf_section): Likewise.
	(elf_frob_file): Don't use sec->lineno for SHT_GROUP section to store
	first member section; Instead use elf_next_in_group.

2001-10-09  Alan Modra  <amodra@bigpond.net.au>

	* config/obj-elf.c: (obj_elf_change_section): Add "group" param.
	Set elf_section_data group from it.  Warn if group name changed.
	(obj_elf_parse_section_letters): Parse 'G' too.
	(obj_elf_section): Parse group name.
	(struct group_list): New.
	(build_group_lists): New function.
	(elf_frob_file): Create SEC_GROUP section(s).

	* config/obj-elf.c: (elf_copy_symbol_attributes): Zap trailing
	whitespace.

2001-10-08  Aldy Hernandez  <aldyh@redhat.com>

	* doc/arm/c-arm.texi (ARM Options): Add arm9e documentation.

	* config/tc-arm.c (ARM_EXT_MAVERIK): New macro.
	(cirrus_regtype): New enum.
	(LONGEST_INST): Change to 10.
	(CIRRUS_MODE1): New.
	(CIRRUS_MODE2): New.
	(CIRRUS_MODE3): New.
	(CIRRUS_MODE4): New.
	(CIRRUS_MODE5): New.
	(CIRRUS_MODE6): New.
	(insns): Add cirrus dsp instructions.
	(ARM_EXT_MAVERIKSC_REG): New.
	(cirrus_register): New.
	(cirrus_mvf_register): New.
	(cirrus_mvd_register): New.
	(cirrus_mvfx_register): New.
	(cirrus_mvdx_register): New.
	(cirrus_mvax_register): New.
	(ARM_EXT_MAVERIKsc_register): New.
	(reg_table): Add cirrus registers.
	(cirrus_valid_reg): New.
	(cirrus_reg_required_here): New.
	(do_c_binops_1): New.
	(do_c_binops_2): New.
	(do_c_binops_3): New.
	(do_c_triple_4): New.
	(do_c_triple_5): New.
	(do_c_quad_6): New.
	(do_c_dspsc_1): New.
	(do_c_dspsc_2): New.
	(do_c_shift_1): New.
	(do_c_shift_2): New.
	(do_c_ldst_1): New.
	(do_c_ldst_2): New.
	(do_c_ldst_3): New.
	(do_c_ldst_4): New.
	(do_c_binops): New.
	(do_c_triple): New.
	(do_c_quad): New.
	(do_c_dspsc): New.
	(do_c_shift): New.
	(cirrus_parse_offset): New.
	(do_c_ldst): New.
	(md_parse_option): Add arm9e.
	(md_show_usage): Same.

2001-10-08  Tom Rix <trix@redhat.com>

	* config/tc-ppc (ppc_bf, ppc_biei) : Set first .bi lineno value to
	location of next .bf
	* config/obj-coff.c (coff_frob_symbol) : XCOFF does not use endndx.

2001-10-07  Alan Modra  <amodra@bigpond.net.au>

	* config/obj-elf.c: Standardize error/warning messages - don't
	capitalise, no final period or newline, don't say "ignoring" for
	as_bad messages.  In some cases, change the wording to that used
	elsewhere for similar messages.
	(obj_elf_section_name): New function, split out from ..
	(obj_elf_section): .. here.  Correctly mask off SHF_MERGE if
	entsize not specified.

2001-10-05  Jakub Jelinek  <jakub@redhat.com>

	* doc/as.texinfo: Document M and S ELF section flags.

2001-10-05  Alan Modra  <amodra@bigpond.net.au>

	* subsegs.c (subseg_text_p): Return 0 for absolute section.
	* read.c (do_align): If in absolute section, warn about and ignore
	non-zero fill pattern.

2001-10-05  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-mn10300.c (tc_gen_reloc): Don't free
	reloc->sym_ptr_ptr if it's not allocated.

2001-10-04  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (prev_insn_reloc_type): Make it an array to hold a
	relocation triple.
	(prev_insn_fixp): Likewise.
	(append_insn): Changed prototype to accept a relocation pointer.
	(imm_reloc): Make it an array.
	(offset_reloc): Likewise.
	(md_assemble): Handle triple relocations.
	(append_insn): Likewise. Add handling for some NewABI relocations.
	(mips_no_prev_insn): Handle triple relocations.
	(macro_build): Likewise. Add handling for some NewABI relocations.
	Move handling for the 'u' case to append_insn().
	(mips16_macro_build): Handle triple relocations.
	(macro_build_lui): Likewise. Don't handle _gp_disp as special symbol
	for NewABI.
	(mips_ip): Handle triple relocations.
	(mips16_ip): Likewise.
	(mips_force_relocation): Force handling of triple relocations
	without symbols for NewABI.
	(md_apply_fix): Add handling for some NewABI relocations.

2001-10-05  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-i386.c (parse_register): If not producing code for
	x86_64, reject x86_64 register name matches.
	(md_assemble): Remove now redundant check for x86_64 regs.

2001-10-04  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-ppc.c (md_assemble <DS relocs>): Test ppc_size as well
	as BFD_DEFAULT_TARGET_SIZE.
	(ppc_tc): Likewise.
	(ppc_is_toc_sym): Likewise.
	(md_apply_fix3): Likewise.

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

	* config/tc-mips.c (mips_64): Remove.
	(mips_target_format): Move downwards in file, use HAVE_64BIT_OBJECTS
	in it.
	(mips_abi_level, mips_abi): New enum.
	(mips_32bit_abi): Remove.
	(HAVE*PRS): Use mips_abi instead of mips_32bit_abi.
	(HAVE_NEWABI): New define.
	(HAVE_64BIT_OBJECTS): New define.
	(HAVE_32BIT_ADDRESSES): Don't return true for 64bit objects.
	(HAVE_64BIT_ADDRESSES): New define, inverse of HAVE_32BIT_ADDRESSES.
	(support_64bit_objects): New prototype.
	(md_begin): Use mips_abi instead of mips_32bit_abi. Don't write
	.reginfo section for n32, use .MIPS.options instead.
	(support_64bit_objects): New function, code from md_parse_option.
	(md_longopts): Add -n32 option.
	(md_parse_option): Use mips_abi instead of mips_32bit_abi/mips64.
	Add -n32 option. Protect with OBJ_ELF.
	(s_mipsset): Use mips_abi instead of mips_32bit_abi.
	(mips_elf_final_processing): Likewise. Don't write .reginfo section
	for n32, use .MIPS.options instead.

2001-10-03  Alan Modra  <amodra@bigpond.net.au>

	* po/POTFILES.in: Regenerate.
	* configure: Regenerate.

2001-10-02  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-ppc.c (md_apply_fix3 <BFD_RELOC_CTOR>): Make it 64
	bits if target is 64 bit.

	* doc/as.texinfo (listing): Fix typo.

	* as.c (print_version_id): Use BFD_VERSION_STRING in place of
	BFD_VERSION.
	* Makefile.am (Makefile): Depend on bfd/configure.in.
	Run "make dep-am".
	* Makefile.in: Regenerate.

2001-09-30  H.J. Lu  <hjl@gnu.org>

	* config/obj-elf.c (obj_elf_parse_section_letters): Accept "am"
	and "ams" for compatibility.

2001-09-30  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/tc-sh.c (md_pcrel_from_section): Transformed from
	md_pcrel_from.  Handle pc-relativeness against link-time
	symbol.  Handle relativeness to elsewhere than the fixup.
	* config/tc-sh.h (MD_PCREL_FROM_SECTION): Define.
	(md_pcrel_from_section): Prototype.

	* Makefile.am: Update dependencies with "make dep-am".
	* Makefile.in: Regenerate.

2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/tc-m68hc11.c (cmp_opcode): Define prototype.
	(print_opcode_format, skip_whites): Likewise.
	(convert_branch, m68hc11_new_insn): Likewise.
	(build_dbranch_insn, build_indexed_byte): Likewise.
	(build_reg_mode, find, find_opcode): Likewise.
	(print_insn_format): Fix call to print_opcode_format.
	(md_assemble): Fix call to build_dbranch_insn.

2001-09-27  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-arm.c: Add missing prototypes.

2001-09-26  Jeff Johnston  <jjohnstn@redhat.com>

	* input-file.c (input_file_open): When reading the
	first line looking for #NO_APP, prepare for the possibility
	of finding #APP instead.  Also fix algorithm to allow
	white-space to follow either #NO_APP or #APP directives.

2001-09-25  Geoff Berry  <geoff.berry@bops.com>

	* listing.c (buffer_line): Don't write past the end of `line' when
	EOF is reached.

2001-09-25  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-mn10300.c (tc_gen_reloc): Don't emit an *ABS*
	relocation for differences between symbols in a section other
	than the one in which the difference is to be placed; apply
	the relocation instead.

2001-09-24  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-arc.c: Add missing prototype.
	(md_atof): Change type to int. Add missing prototype.
	* config/tc-arc.h: Prototype exported functions.

2001-09-22  Nick Clifton  <nickc@cambridge.redhat.com>

	* as.c: Add missing function prototype.
	* config/obj-aout.c: Fix compile time warning.

2001-09-21  Bruno Haible  <haible@clisp.cons.org>

	* config/tc-openrisc.c: Don't include <ctype.h>.

2001-09-19  Martin Schwidefsky <schwidefsky@de.ibm.com>

	* gas/config/tc-s390.c: Add option -mwarn-areg-zero.

2001-09-19  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-i370.c: Fix typo in last change.

2001-09-19  Nick Clifton  <nickc@cambridge.redhat.com>

	* doc/as.texinfo (Symbol Names): Improve documentation on local
	labels and add documenation about dollar labels.

2001-09-18  Bruno Haible  <haible@clisp.cons.org>

	* as.h: Don't include <ctype.h>.
	* as.c (main): For gettext, also set the LC_CTYPE locate facet.
	* atof-generic.c: Include "safe-ctype.h" instead of <ctype.h>.
	(atof_generic): Use ISDIGIT instead of isdigit.
	* config/m68k-parse.y: Include "safe-ctype.h".
	(yylex): Use ISDIGIT/ISALNUM instead of isdigit/isalnum.
	* config/obj-elf.c: Include "safe-ctype.h".
	(obj_elf_vtable_inherit): Use ISSPACE instead of isspace.
	* config/obj-vms.c: Include "safe-ctype.h".
	(Write_VMS_MHD_Records): Use TOUPPER instead of islower/toupper.
	(VMS_Case_Hack_Symbol): Use ISUPPER/ISLOWER/TOUPPER/TOLOWER
	instead of isupper/islower/toupper/tolower.
	* config/tc-a29k.c: Include "safe-ctype.h" instead of <ctype.h>.
	(insert_sreg): Use TOUPPER instead of islower/toupper.
	(machine_ip): Use ISALPHA/ISALNUM/ISUPPER/TOLOWER instead of
	isalpha/isalnum/isupper/tolower.
	(a29k_unrecognized_line, md_operand): Use ISDIGIT instead of
	isdigit.
	* config/tc-alpha.c: Include "safe-ctype.h" instead of <ctype.h>.
	(md_undefined_symbol, s_alpha_ent): Use ISDIGIT instead of isdigit.
	* config/tc-arc.c: Include "safe-ctype.h" instead of <ctype.h>.
	(md_assemble): Use ISSPACE/ISALNUM instead of isspace/isalnum.
	(arc_extoper): Use TOLOWER instead of isupper/tolower.
	* config/tc-arm.c: Include "safe-ctype.h" instead of <ctype.h>.
	(arm_psr_parse): Use ISALPHA instead of isalpha.
	(accum0_required_here): Use ISALNUM instead of isalnum.
	(do_ldrd): Use ISSPACE instead of isspace.
	(decode_shift): Use ISALPHA instead of isalpha.
	(insert_reg): Use TOUPPER instead of islower/toupper.
	(arm_reg_parse): Use ISALPHA instead of isalpha.
	(arm_parse_reloc): Use ISALNUM/ISPUNCT/TOLOWER instead of
	isalnum/ispunct/tolower.
	* config/tc-avr.c: Include "safe-ctype.h" instead of <ctype.h>.
	(md_parse_option): Use TOLOWER instead of tolower.
	(avr_operand): Use ISDIGIT/TOLOWER instead of isdigit/tolower.
	* config/tc-cris.c: Include "safe-ctype.h" instead of <ctype.h>.
	(cris_process_instruction): Use ISLOWER instead of islower.
	(get_gen_reg): Use ISALNUM/ISDIGIT instead of isalnum/isdigit.
	(get_spec_reg): Use TOLOWER/ISALNUM instead of isupper/tolower/isalnum.
	(get_flags): Use ISSPACE instead of isspace.
	* config/tc-d10v.c: Include "safe-ctype.h" instead of <ctype.h>.
	(do_assemble): Use TOLOWER instead of tolower.
	* config/tc-d30v.c: Include "safe-ctype.h" instead of <ctype.h>.
	(do_assemble): Use TOLOWER instead of tolower.
	(d30v_start_line): Use ISSPACE instead of isspace.
	* config/tc-fr30.c: Include "safe-ctype.h" instead of <ctype.h>.
	(fr30_is_colon_insn): Use TOLOWER instead of tolower.
	* config/tc-h8300.c: Include "safe-ctype.h" instead of <ctype.h>.
	(skip_colonthing, get_operand): Use ISDIGIT instead of isdigit.
	* config/tc-h8500.c: Include "safe-ctype.h" instead of <ctype.h>.
	(start_label): Use ISALPHA instead of isalpha.
	* config/tc-hppa.c: Include "safe-ctype.h" instead of <ctype.h>.
	(pa_ip): Use ISUPPER/ISLOWER/TOLOWER instead of
	isupper/islower/tolower.
	(pa_parse_number): Use ISDIGIT instead of isdigit.
	(pa_chk_field_selector): Use TOLOWER instead of tolower.
	(pa_stringer): Use ISDIGIT instead of isdigit.
	* config/tc-i370.c: Include "safe-ctype.h" instead of <ctype.h>.
	(register_name): Use ISALPHA instead of isalpha.
	(i370_elf_suffix): Use ISALNUM/TOLOWER instead of
	isalnum/islower/tolower.
	(i370_addr_offset): Use ISDIGIT/ISALPHA instead of
	isdigit/isalpha.
	(i370_addr_cons): Use ISALPHA/ISXDIGIT instead of
	isalpha/isxdigit.
	(md_assemble): Use ISSPACE instead of isspace.
	* config/tc-i386.c: Include "safe-ctype.h" instead of <ctype.h>.
	(md_begin): Use ISDIGIT/ISLOWER/ISUPPER/TOLOWER/ISALPHA
	instead of isdigit/islower/isupper/tolower/isalpha.
	(output_invalid): Use ISPRINT instead of isprint.
	* config/tc-i860.c: Include "safe-ctype.h" instead of <ctype.h>.
	(i860_ip): Use ISLOWER/ISDIGIT instead of islower/isdigit.
	* config/tc-i960.c: Include "safe-ctype.h" instead of <ctype.h>.
	(get_args): Use ISALNUM instead of isalnum.
	* config/tc-ia64.c: Include "safe-ctype.h".
	(dot_pred_rel): Use TOUPPER/ISDIGIT instead of toupper/isdigit.
	(ia64_unrecognized_line): Use ISDIGIT instead of isdigit.
	(ia64_parse_name): Likewise.
	* config/tc-m32r.c: Include "safe-ctype.h" instead of <ctype.h>.
	(assemble_two_insns): Use ISSPACE/ISALNUM/ISUPPER/TOLOWER
	instead of isspace/isalnum/isupper/tolower.
	* config/tc-m68hc11.c: Include "safe-ctype.h" instead of <ctype.h>.
	(md_assemble): Use TOLOWER/ISALNUM instead of tolower/isalnum.
	* config/tc-m68k.c: Include "safe-ctype.h" instead of <ctype.h>.
	(mklower_table): Remove variable.
	(mklower): Remove macro.
	(insert_reg): Use TOUPPER instead of islower/toupper.
	(md_begin): Remove initialization of mklower_table.
	(s_reg): Use ISALNUM instead of isalnum.
	(mri_assemble): Use ISUPPER/TOLOWER instead of isupper/tolower.
	(parse_mri_condition): Use TOLOWER instead of isupper/tolower.
	(build_mri_control_operand): Use TOLOWER instead of tolower.
	(s_mri_else, s_mri_break, s_mri_next, s_mri_for): Likewise.
	* config/tc-m88k.c: Include "safe-ctype.h" instead of <ctype.h>.
	(md_assemble): Use ISSPACE instead of isspace.
	(get_imm16): Use ISALNUM instead of isalnum.
	(get_cnd): Use ISDIGIT/ISUPPER/TOLOWER instead of
	isdigit/isupper/tolower.
	(get_bf_offset_expression): Use ISALPHA/ISUPPER/TOLOWER
	instead of isalpha/isupper/tolower.
	(hexval): Use ISDIGIT/ISLOWER/ISUPPER instead of
	isdigit/islower/isupper.
	* config/tc-mcore.c: Include "safe-ctype.h" instead of <ctype.h>.
	(mcore_s_section): Use ISSPACE instead of isspace.
	(parse_reg): Use ISSPACE/TOLOWER/ISALNUM instead of
	isspace/tolower/isalnum.
	(parse_creg): Use ISSPACE/TOLOWER instead of isspace/tolower.
	(parse_psrmod): Use TOLOWER instead of isascii/tolower.
	(parse_exp, parse_mem, md_assemble): Use ISSPACE instead of
	isspace.
	* config/tc-mips.c: Include "safe-ctype.h" instead of <ctype.h>.
	(mips_ip): Use ISSPACE/ISDIGIT instead of isspace/isdigit.
	(mips16_ip): Use ISLOWER/ISDIGIT instead of islower/isdigit.
	(my_getSmallExpression): Use ISDIGIT/TOLOWER instead of
	isdigit/tolower.
	(tc_get_register): Likewise.
	(get_number): Use ISDIGIT/ISXDIGIT instead of isdigit/isxdigit.
	(s_mips_ent): Use ISDIGIT instead of isdigit.
	* config/tc-mn10200.c: Include "safe-ctype.h" instead of <ctype.h>.
	(md_assemble): Use ISSPACE instead of isspace.
	* config/tc-mn10300.c: Include "safe-ctype.h" instead of <ctype.h>.
	(md_assemble): Use ISSPACE instead of isspace.
	* config/tc-ns32k.c: Don't include <ctype.h>.
	* config/tc-pdp11.c: Include "safe-ctype.h".
	(mklower): Remove function.
	(parse_reg): Use TOLOWER instead of mklower.
	* config/tc-pj.c: Include "safe-ctype.h".
	(md_assemble): Use ISSPACE instead of isspace.
	* config/tc-ppc.c: Include "safe-ctype.h" instead of <ctype.h>.
	(register_name): Use ISALPHA instead of isalpha.
	(ppc_elf_suffix): Use ISALNUM/TOLOWER instead of
	isalnum/islower/tolower.
	(md_assemble): Use ISSPACE instead of isspace.
	(ppc_canonicalize_symbol_name): Use ISLOWER/TOUPPER instead of
	islower/toupper.
	* config/tc-s390.c: Include "safe-ctype.h" instead of <ctype.h>.
	(register_name): Use ISALPHA instead of isalpha.
	(s390_elf_suffix, s390_lit_suffix): Use ISALNUM instead of isalnum.
	(md_gather_operands, md_assemble, s390_insn): Use ISSPACE instead of
	isspace.
	* config/tc-sh.c: Include "safe-ctype.h" instead of <ctype.h>.
	(sh_elf_suffix): Use ISALNUM/TOLOWER instead of
	isalnum/islower/tolower.
	(IDENT_CHAR): Use ISALNUM instead of isalnum.
	(parse_reg): Use TOLOWER instead of tolower.
	(find_cooked_opcode): Use TOLOWER instead of isupper/tolower.
	* config/tc-sparc.c: Include "safe-ctype.h" instead of <ctype.h>.
	(sparc_ip): Use ISLOWER/ISDIGIT instead of islower/isdigit.
	(parse_keyword_arg): Use ISALNUM instead of isalnum.
	* config/tc-tahoe.c: Include "safe-ctype.h".
	(tahoe_reg_parse): Use ISDIGIT instead of isdigit.
	(tip_op): Use TOLOWER instead of isupper/tolower.
	* config/tc-tic30.c: Include "safe-ctype.h".
	(md_begin): Use ISLOWER/ISDIGIT/ISUPPER/TOLOWER/ISLOWER/
	ISALPHA instead of islower/isdigit/isupper/tolower/islower/isalpha.
	(tic30_operand): Use TOLOWER instead of tolower.
	(tic30_find_parallel_insn): Likewise.
	(output_invalid): Use ISPRINT instead of isprint.
	* config/tc-tic54x.c: Include "safe-ctype.h".
	(tic54x_asg, tic54x_eval): Use ISALPHA instead of isalpha.
	(lookup_version): Use TOUPPER instead of toupper.
	(tic54x_var): Use ISALPHA instead of isalpha.
	(tic54x_mlib): Use ISSPACE instead of isspace.
	(subsym_iscons): Use TOUPPER instead of toupper.
	(get_operands): Use ISSPACE instead of isspace.
	(is_type): Use TOUPPER/ISDIGIT instead of toupper/isdigit.
	(encode_indirect, encode_operand): Use TOUPPER instead of toupper.
	(next_line_shows_parallel): Use ISSPACE instead of isspace.
	(subsym_get_arg, subsym_substitute): Use ISDIGIT instead of isdigit.
	(tic54x_start_line_hook, md_assemble, tic54x_start_label): Use
	ISSPACE instead of isspace.
	* config/tc-tic80.c: Include "safe-ctype.h".
	(md_assemble): Use ISSPACE instead of isspace.
	* config/tc-v850.c: Include "safe-ctype.h" instead of <ctype.h>.
	(system_register_name): Use ISDIGIT instead of isdigit.
	(md_assemble): Use ISSPACE instead of isspace.
	* config/tc-vax.c: Include "safe-ctype.h" instead of <ctype.h>.
	(vax_reg_parse): Use TOLOWER/ISDIGIT instead of
	isupper/tolower/isdigit.
	(vip_op): Use TOLOWER instead of isupper/tolower.
	* config/tc-w65.c: Don't include <ctype.h>.
	* config/tc-z8k.c: Include "safe-ctype.h" instead of <ctype.h>.
	(tohex): Use ISDIGIT/ISLOWER instead of isdigit/islower.
	(whatreg): Use ISDIGIT instead of isdigit.
	* ecoff.c: Include "safe-ctype.h" instead of <ctype.h>.
	(ecoff_directive_ent, ecoff_stab): Use ISDIGIT instead of isdigit.
	* expr.c: Include "safe-ctype.h" instead of <ctype.h>.
	(integer_constant): Use ISALNUM/TOUPPER instead of
	isalnum/islower/toupper.
	(operand): Use TOLOWER instead of isupper/tolower.
	* gasp.c: Include "safe-ctype.h" instead of <ctype.h>.
	(sb_strtol, level_0, change_base, doinstr): Use ISDIGIT instead
	of isdigit.
	(process_assigns, whatcond): Use TOUPPER instead of toupper.
	(chartype_init): Use ISALPHA/ISDIGIT instead of isalpha/isdigit.
	(main): For gettext, also set the LC_CTYPE locate facet.
	* hash.c: Include "safe-ctype.h".
	(main): Use TOLOWER instead of isupper/tolower.
	* itbl-lex.l: Don't include <ctype.h>.
	* listing.c: Include "safe-ctype.h" instead of <ctype.h>.
	(listing_newline): Use ISCNTRL instead of isascii/iscntrl. Don't
	omit non-ASCII characters.
	(debugging_pseudo): Use ISSPACE instead of isspace.
	* macro.c: Include "safe-ctype.h" instead of <ctype.h>.
	(buffer_and_nest): Use ISALNUM instead of isalnum.
	(get_token): Use ISALPHA/ISALNUM instead of isalpha/isalnum.
	(define_macro): Use ISUPPER/TOLOWER instead of isupper/tolower.
	(macro_expand_body): Use ISALNUM/ISDIGIT/ISUPPER/ISALPHA
	instead of isalnum/isdigit/isupper/isalpha.
	(check_macro): Use ISALPHA/ISALNUM/ISUPPER/TOLOWER instead
	of isalpha/isalnum/isupper/tolower.
	* read.c: Include "safe-ctype.h" instead of <ctype.h>.
	(read_a_source_file): Use ISUPPER/TOLOWER/ISDIGIT instead of
	isupper/tolower/isdigit.
	(s_mri_common): Use ISDIGIT instead of isdigit.
	(s_mri_sect): Use ISDIGIT/TOUPPER instead of isdigit/toupper.
	(s_float_space): Use ISALPHA instead of isalpha.
	(ignore_rest_of_line): Use ISPRINT instead of isprint.
	(float_cons): Use ISALPHA instead of isalpha.
	(next_char_of_string): Use ISDIGIT/ISXDIGIT instead of
	isdigit/isxdigit.
	* symbols.c: Include "safe-ctype.h" instead of <ctype.h>.
	(save_symbol_name): Use ISLOWER/TOUPPER instead of
	islower/toupper.
	(symbol_find_base): Use TOUPPER instead of islower/toupper.
	(decode_local_label_name): Use ISDIGIT instead of isdigit.

2001-09-18  Martin Schwidefsky <schwidefsky@de.ibm.com>

	* tc-s390.c (s390_insn): Add code to cope with 6 byte O_constants
	in 64 bit mode and make format "e" work.

2001-09-18  Alan Modra  <amodra@bigpond.net.au>

	* dwarf2dbg.c (dwarf2_directive_file): Avoid signed/unsigned warning.

	* write.c (set_symtab): Update bfd_alloc declaration.  Use a temp
	var to ensure bfd_alloc arg is the right type.
	(write_object_file): Cast args of bfd_seek.  Replace bfd_write with
	bfd_bwrite.

	* config/obj-coff.c: Replace calls to bfd_write with calls to
	bfd_bwrite.  Cast args of bfd_seek.

	* config/obj-elf.c (obj_elf_change_section): Avoid signed/unsigned
	warning.

	* config/tc-mn10300.c (set_arch_mach): Make param unsigned.

	* config/tc-tic54x.c (tic54x_mlib): Replace bfd_read call with
	call to bfd_bread.

2001-09-15  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/tc-sh.h (sh_force_relocation): Prototype.
	(struct fix): Forward declare.
	* config/tc-sh.c (type sh_operand_info): Move to top of file.
	(cons, s_align_bytes): Remove old-type declarations.
	(sh_elf_suffix, parse_reg, dot, parse_exp, parse_at, get_operand,
	get_operands, get_specific, insert, build_relax,
	insert_loop_bounds, build_Mytes): Prototype.
	(little): Make static.  Prototype.
	(check, tc_Nout_fix_to_chars): Delete unused functions.

2001-09-14  Eric Christopher  <echristo@redhat.com>

	* config/tc-mips.c (md_parse_option): Remove setting mips_64 via
	-mgp32/mgp64.

2001-09-14  Kevin Lo <kevlo@openbsd.org>

	* configure.in: Add arm-openbsd target.
	* configure: Regenerate.

2001-09-14  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* configure.in: Change machine triplets from mips-*-linux-gnu* to
	mips*-*-linux*.

2001-09-12  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (append_insn): Don't rightshift BFD_RELOC_16_PCREL.

2001-09-11  Richard Henderson  <rth@redhat.com>

	* config/tc-alpha.c (alpha_elf_section_letter): New.
	(alpha_elf_section_flags): New.
	* config/tc-alpha.h (md_elf_section_letter): New.
	(md_elf_section_flags): New.
	* config/tc-ia64.c (ia64_elf_section_letter): New.
	* config/tc-ia64.h (md_elf_section_letter): New.

2001-09-11  Jakub Jelinek  <jakub@redhat.com>

	* config/obj-elf.c (obj_elf_parse_section_letters): Use 'M' instead
	of 'm', 'S' instead of 's'.  Update bad_msg.
	* config/tc-ppc.c (ppc_section_letter): Update bad_msg.
	* config/tc-i370.c (i370_sectioN_letter): Update bad_msg.

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

	* expr.c (expr): Move code setting "retval" to the end of the loop,
	and rearrange for efficiency.  For "PIC code" subtraction, use
	"rightseg" rather than recalculating.  For "symbol OP symbol"
	subtract, set "retval" to absolute_section if symbols in same
	section.
	* symbols.c (resolve_symbol_value): Resolve "sym +/- expr" to an
	O_symbol.  Simplify a +/- b code.  Allow equality and non-equality
	comparisons on symbols from any section.  Allow other comparison
	operators as for subtraction.
	(symbol_equated_reloc_p): New predicate function.
	* symbols.h (symbol_equated_reloc_p): Declare.
	* write.c (relax_segment <rs_machine_dependent>): Ensure segment
	for expression syms is set correctly.
	(adjust_reloc_syms): Use symbol_equated_reloc_p.
	(write_relocs): Likewise.
	(write_object_file): Likewise.
	* config/tc-mips.c (md_estimate_size_before_relax): Likewise.
	* config/tc-i386.c (md_assemble <Output jumps>): Don't lose part
	of a complex expression when setting up frag_var.

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

	* config/tc-alpha.c (alpha_reloc_op_tag): Replace need_seq with
	require_seq and allow_seq.  Let !literal omit the sequence number.
	(tokenize_arguments): Reject sequence numbers of !allow_seq.

2001-09-08  Jakub Jelinek  <jakub@redhat.com>

	* config/tc-sparc.c (md_apply_fix3): Handle relocs against SEC_MERGE
	section symbols the same way as externs.

2001-09-07  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (s_mipsset): Reallow unrestricted use of .set mipsX
	pseudo-op.

2001-09-07  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (append_insn): Handle BFD_RELOC_16_PCREL.
	(macro_build): Use BFD_RELOC_16_PCREL_S2 only for embedded
	PIC, BFD_RELOC_16_PCREL for the rest.
	(mips_ip): Likewise.
	(md_pcrel_from): return the right offset for the differently shifted
	pcrel relocs.
	(md_apply_fix): Handle BFD_RELOC_16_PCREL.

2001-09-05  Richard Henderson  <rth@redhat.com>

	* config/tc-ia64.c (FUNC_IPLT_RELOC): New.
	(pseudo_func): Add @iplt.
	(pseudo_opcode): Add data16 and data16.ua.
	(md_begin): Set iplt pseudo.
	(ia64_cons_fix_new): Handle 16 byte iplt reloc specially.

2001-09-04  Richard Henderson  <rth@redhat.com>

	* config/tc-alpha.c (struct alpha_insn): Make sequence scalar long.
	(MACRO_LITERAL, MACRO_BASE, MACRO_BYTOFF, MACRO_JSR): Remove.
	(alpha_macros): Remove occurrences of same.
	(O_lituse_addr, O_gprel): New.
	(DUMMY_RELOC_LITUSE_*): New.
	(s_alpha_ucons, s_alpha_arch): Prototype.
	(alpha_reloc_op): Construct elements via DEF macro.
	(ALPHA_RELOC_SEQUENCE_OK): Remove.
	(struct alpha_reloc_tag): Rename from alpha_literal_tag; rename
	members to not be literal specific.
	(next_sequence_num): New.
	(md_apply_fix3): Cope with missing GPDISP_LO16.  Adjust for
	added/removed BFD relocations.
	(alpha_force_relocation, alpha_fix_adjustable): Likewise.
	(alpha_adjust_symtab_relocs): Handle GPDISP relocs as well.
	(tokenize_arguments): Parse ! relocations properly.
	(find_macro_match): Delete unused macro argument types.
	(assemble_insn): Add reloc parameter; emit that instead of the
	default as appropriate.
	(get_alpha_reloc_tag): New.  Split from ...
	(emit_insn): ... here.  Allocate a reloc tag for GPDISP.
	(assemble_tokens): Don't search macros if user relocation present.
	Copy reloc sequence number to insn struct.
	(emit_ldgp): Remove user reloc handling.
	(load_expression, emit_lda, emit_ldah, emit_ir_load): Likewise.
	(emit_loadstore, emit_ldXu, emit_ldil, emit_stX): Likewise.
	(emit_sextX, emit_division, emit_jsrjmp, emit_retjcr): Likewise.
	* config/tc-alpha.h (tc_adjust_symtab): Always define.
	(struct alpha_fix_tag): Name members less literal specific.

2001-09-04  Jeffrey A Law  (law@cygnus.com)

	* tc-h8300.c (tc_gen_reloc): Give an error if we try to take the
	address of two symbols in different sections.

2001-08-31  Eric Christopher  <echristo@redhat.com>
	    Jason Eckhardt  <jle@redhat.com>

	* config/tc-mips.c (mips_cpu_info): Add support for mipsisa32,
	5kc, and 20kc.  Clean up old entries.

2001-08-31  J"orn Rennecke <amylaar@redhat.com>
	    Jeff Law <law@redhat.com>

	* config/tc-h8300.c (build_bytes): For OBJ_ELF, make relocation's
	offset match H8 ELF spec.
	(md_section_align): Alternate implementation for BFD_ASSEMBLER.
	(md_apply_fix): Fix argument and return types for BFD_ASSEMBLER.

	* tc-h8300.c (relocation mappings): Remove.  Moved to tc-h8300.h.
	(build_bytes): Mark fixups for PCrel branches as signed.  For
	OBJ_ELF, make sure the reloc's offset points to the first byte
	to be modified.
	(md_convert_frag): Update definiton based on BFD_ASSEMBLER.
	* tc-h8300.h (relocation mappings): Add.

2001-08-30  J"orn Rennecke <amylaar@redhat.com>

	* tc-h8300.c (tc_crawl_symbol_chain, tc_headers_hook): Don't
	define for BFD_ASSEMBLER.
	(tc_reloc_mangle): Likewise.
	(tc_gen_reloc): New function for BFD_ASSEMBLER.

2001-08-29  Jeffrey A Law  (law@cygnus.com)

	* config/tc-h8300.c (h8300hmode): Record the machine type
	if BFD_ASSEMBLER is defined.
	(h8300smode, md_begin): Similarly.

2001-08-29  Joel Sherrill <joel@OARcorp.com>

	* configure.in (i[3456]86-*-rtems*, m68*-*-rtems*): Change
	default from coff to elf.
	* configure: Regenerate.

2001-08-29  J"orn Rennecke <amylaar@redhat.com>

	* tc-h8300.c: If OBJ_ELF, include elf/h8.h, and define
	assorted coff relocations to the corresponding elf relocations.
	* tc-h8300.h (TARGET_ARCH, TARGET_FORMAT): Define appropriately.

	* configure.in: Add case for h8300-*-elf.
	* configure: Regenerate.

2001-08-29  J"orn Rennecke <amylaar@redhat.com>

	* doc/internals.texi (MD_PCREL_FROM_SECTION): Change
	documentation to reflect reality.

2001-08-27  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (load_address): Reflect change to MAX_GPREL_OFFSET.
	(macro): Reflect change to MAX_GPREL_OFFSET.

2001-08-27  Torbjorn Granlund  <tege@swox.com>
	    Staffan Ulfberg  <staffanu@swox.se>
	    Linus Nordberg  <linus@swox.se>
	    Alan Modra  <amodra@bigpond.net.au>

	* configure.in: Recognise powerpc*le*, not just powerpcle*.
	* configure: Regenerate.
	* config/tc-ppc.c (PPC_LO, PPC_HI, PPC_HA, PPC_HIGHER,
	PPC_HIGHERA, PPC_HIGHEST, PPC_HIGHESTA, SEX16): New macros.
	(md_assemble): Use them.
	(ppc_machine): Support stub for ELF64 as well as XCOFF.
	(md_pseudo_table): Add "llong", "quad".
	(md_parse_option): Match default_cpu of powerpc*.
	(ppc_arch): Likewise.
	(ppc_subseg_align): Only for OBJ_XCOFF.
	(ppc_target_format): Return elf64-powerpc strings for 64 bit ELF.
	(md_begin): Select PPC_OPCODE_64 for 64 bit.
	(ppc_insert_operand): Don't bother testing 'file' before calling
	as_bad_where.  Use as_bad_where for operand->insert errors.
	(mapping): Add ELF64 relocation modifiers.
	(ppc_elf_suffix): Replace symbol on BFD_RELOC_PPC64_TOC reloc
	expressions with abs_symbol.
	(ppc_elf_cons): Correct offset for little endian targets.
	(ppc_elf_frob_symbol): New.
	(md_assemble): Add support for 64 bit ELF relocs.
	(ppc_tc): Ensure 8 byte alignment when 64 bit.
	(ppc_is_toc_sym): Only define for OBJ_XCOFF and OBJ_ELF.  Match
	".toc" section for 64 bit ELF.
	(ppc_fix_adjustable): New.  Macro body moved from tc-ppc.h.
	(md_apply_fix3): Silence warning with ATTRIBUTE_UNUSED.  Only do
	the ppc_is_toc_sym check for OBJ_XCOFF and OBJ_ELF.  For 64 bit,
	use BFD_RELOC_PPC64_TOC16_DS instead of BFD_RELOC_PPC_TOC16.
	Expand on comments, error message.  Add support for 64 bit relocs,
	and use PPC_HI etc. macros.
	* config/tc-ppc.h (MAX_MEM_FOR_RS_ALIGN_CODE): Define.
	(HANDLE_ALIGN): Define to generate nops in code sections rather
	than zeros.
	(TC_FORCE_RELOCATION): Force for BFD_RELOC_PPC64_TOC.
	(ELF_TC_SPECIAL_SECTIONS): Add 64 bit ELF sections.
	(tc_fix_adjustable): Move body of macro to tc-ppc.c.
	(ppc_fix_adjustable): Declare.
	(tc_frob_symbol): Define.
	(ppc_elf_frob_symbol): Declare.

2001-08-26  Andreas Jaeger  <aj@suse.de>

	* config/tc-s390.c: Add missing prototypes
	(md_gather_operands): Make static.

2001-08-26  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.h (MAX_GPREL_OFFSET): Change it to the maximum
	allowed value, not the word beyond maximum.
	* config/tc-mips.c (macro_build_lui): Code cleanup.
	(macro): Reflect change to MAX_GPREL_OFFSET.
	(mips_ip): Check explicitly against S_EX_NONE.
	(my_get_SmallExpression): parse for %gp_rel, not %gprel.
	(md_apply_fix): Code cleanup.

2001-08-24  Andreas Jaeger  <aj@suse.de>

	* config/tc-ppc.h: Fix prototype declaration.

2001-08-23  Jakub Jelinek  <jakub@redhat.com>

	* config/tc-ia64.c (dot_endp): Set function symbol sizes.
	* config/obj-elf.c (obj_elf_size): When size is constant, free
	and clear symbol_get_obj(sym)->size if any.

2001-08-21  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (md_begin): Warn about incompatibility between
	-march=FOO and -mipsN option, continue with default ISA.

2001-08-21  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (md_parse_option): #ifdef the
	traditional/non-traditional names as it is done in mips_target_format.

2001-08-20  Richard Henderson  <rth@redhat.com>

	* config/tc-alpha.h (MD_APPLY_FIX3): Define.
	* config/tc-alpha.c (md_apply_fix3): Rename from md_apply_fix;
	use seg parameter instead of now_seg.

2001-08-18  H.J. Lu  <hjl@gnu.org>

	* config/tc-mips.c (show): Add the missing prototype.

2001-08-18  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (S_EX_*): New enum for my_getSmallExpression()
	return values.
	(mips_ip): Use the new return values instead of characters. Add
	support for %higher and %highest.
	(LP): Remove.
	(RP): Remove.
	(my_getSmallExpression): Make parsing case insensitive and more
	reliable. Add support for %higher and %highest. Further support	to
	parse %gprel and %neg is implemented but currently deactivated.

2001-08-17  Alan Modra  <amodra@bigpond.net.au>

	* ecoff.c (ecoff_frob_symbol): Remove casts from bfd_get_gp_size.
	(ecoff_build_symbols): Likewise.
	* read.c (s_lcomm_internal): Fix signed/unsigned warning.

2001-08-16  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (mips_elf_final_processing): Set elf	header flags
	for n32 ABI if appropriate.

2001-08-16  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (cons_fix_new_mips): Remove.
	* config/tc-mips.h (TC_CONS_FIX_NEW): Remove.
	(cons_fix_new_mips): Remove.

2001-08-14  Jeff Johnston  <jjohnstn@redhat.com>

	* expr.c (operand)[LITERAL_PREFIXDOLLAR_HEX]: Treat $L as
	a label, not a hex constant.

2001-08-13  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-v850.h: Add missing prototypes.

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

	* config/tc-s390.c (s390_elf_cons): Correct fixups for PLT
	relocations.

2001-08-12  TAKAI Kousuke  <takai@vlsi.kuee.kyoto-u.ac.jp>

	* config/tc-sparc.c (cons_fix_new_sparc): Move
	`sparc_no_align_cons = 0;' to...
	(s_uacons): ...here so that sparc_no_align_cons will get
	cleared properly.

2001-08-11  Kazu Hirata  <kazu@hxi.com>

	* config/tc-mips.c: Fix a comment typo.

2001-08-10  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.c (move_register): New function.
	(macro_build): Remove OPCODE_IS_MEMBER's gp32 argument.
	(mips_ip): Likewise.
	(macro2): Use move_register rather than macro_build for moves.
	(mips16_macro): Likewise.
	(macro): Likewise.  Handle M_MOVE.

2001-08-10  Andreas Jaeger  <aj@suse.de>

	* configure.in: Add -Wstrict-prototypes and -Wmissing-prototypes
	to build warnings.
	* configure: Regenerate.

2001-08-10  Alan Modra  <amodra@bigpond.net.au>

	* as.h (alloca): Don't declare if __GNUC__.  Remove an old comment.
	Comment indentation of #pragma.
	* macro.c (alloca): Likewise.

	* config/tc-ppc.c: Revert 2001-08-08.

2001-08-09  Alan Modra  <amodra@bigpond.net.au>

	* symbols.c: Add missing prototypes.
	* config/e-i386elf.c: Likewise.
	* config/e-i386coff.c: Likewise.
	* config/e-i386aout.c: Likewise.
	* config/obj-coff.c: Likewise.
	(def_symbol_in_progress, stack): Move definition.
	* config/obj-elf.c: Add missing prototypes.
	(obj_elf_change_section): Make static.
	(obj_elf_parse_section_letters): Likewise.
	(obj_elf_section_word): Likewise.
	(obj_elf_section_type): Likewise.

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

	From 1999-10-25  Torbjorn Granlund  <tege@swox.com>
	* config/tc-ppc.c (md_apply_fix3): Replace haphazard code for
	determining reloc type with code reading operands->reloc field.

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

	* config/obj-elf.c (elf_copy_symbol_attributes): Make it a global
	function, and expand old obj-elf.h OBJ_COPY_SYMBOL_ATTRIBUTES here.
	* config/obj-elf.h (elf_copy_symbol_attributes): Declare.
	(OBJ_COPY_SYMBOL_ATTRIBUTES): Call elf_copy_symbol_attributes.

	* output-file.c (output_file_create): Don't try to open a second
	time as it's unnecessary.  FOPEN_W was undefined too.

2001-08-07  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (macro_build): Replace magic constants by defines.
	(mips_ip): Likewise. Typo.

2001-08-04  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (mips_abi_string): Initialize with NULL instead
	of 0.
	(RELAX_ENCODE): Replace bfd_vma by valueT.
	(load_address): Formatting.
	(macro): Likewise. Code cleanup. Typo.
	(macro2): Formatting.
	(md_parse_option): Typo.
	(s_mipsset): Reorder cases to look nicer.
	(md_estimate_size_before_relax): Formatting. Code cleanup.
	(mips_elf_final_processing): Check against NULL instead of 0.
	(md_obj_end): Remove ugly `' in message string.
	(s_mips_ent): Remove ugly `' in message string.

2001-07-30  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (md_begin): Take -mcpu value into account even when
	-mipsX is specified. Make both -mcpu/-march and -mcpu/-mtune pairs
	mutually exclusive (if they are different).
	(md_parse_option): Warn if an -march/-mtune/-mcpu/-m<cpu> option is
	set more than once.

2001-08-03  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.c (md_apply_fix): Don't subtract the symbol value
	from GPREL addends.

2001-08-02  Richard Sandiford  <rsandifo@redhat.com>

	* doc/c-mips.tex (-mgp32, -mfp32): Added -mfp32, unified with -mgp32.
	* config/tc-mips.c (mips_fp32, mips_32bit_abi): New static variables.
	(md_long_opts): Add -mfp32 option.
	(md_parse_option): Handle it.  Set mips_32bit_abi given -mabi=32.
	(md_show_usage): Show usage for -mfp32 and -mgp32.
	(HAVE_32BIT_GPRS, HAVE_32BIT_FPRS): New macros.
	(HAVE_64BIT_GPRS, HAVE_64BIT_FPRS): New macros, inverse of the above.
	(HAVE_32BIT_ADDRESSES): New macro.
	(load_register): Use HAVE_32BIT_GPRS to determine the register width.
	(load_address): Use HAVE_32BIT_ADDRESSES to determine the address size.
	(s_cprestore, s_cpadd): Likewise.
	(macro): Use HAVE_32BIT_GPRS to determine the width of registers
	used in branch and M_LI_D macros.  Use HAVE_64BIT_FPRS to determine
	the width registers used in M_LI_DD macros.  Use HAVE_32BIT_ADDRESSES
	to determine the width of addresses in load, store and jump macros.
	(macro2): Use HAVE_32BIT_GPRS to determine the width of registers
	used in set instructions; do not check the address size for them.
	Use HAVE_32BIT_ADDRESSES to determine the width of addresses in
	unaligned load and store macros.
	(mips_ip): Use the new macros to check the width of a register when
	processing float constants.  Force a constant into memory if it is
	destined for an FPR and the FPRs are wider than the GPRs.  Warn about
	odd FPR numbers if HAVE_32BIT_FPRS.  Use HAVE_32BIT_GPRS rather
	than mips_gp32 to select synthetic instructions.
	(macro_build): Use HAVE_32BIT_GPRS rather than mips_gp32 to select
	synthetic instructions.

2001-08-01  Christian Groessler <cpg@aladdin.de>

	* config/tc-z8k.c (parse_reg): If a string starts with "r", "rl",
	"rh", "rr", "rq", or "sp" then don't automatically assume
	it's a register name.  Check whether there is a number
	following.

2001-08-01  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-i386.c (lex_got): Match lower case relocation tokens.
	Don't allocate more space than necessary for the input line copy.

2001-08-01  Alan Modra  <amodra@bigpond.net.au>

	* read.c: Standardize error/warning messages - don't capitalise, no
	final period or newline, don't say "ignored" or "zero assumed" for
	as_bad messages.  In some cases, change the wording to that used
	elsewhere for similar messages.
	* app.c: Likewise.
	* as.c: Likewise.
	* atof-generic.c: Likewise.
	* cgen.c: Likewise.
	* cond.c: Likewise.
	* depend.c: Likewise.
	* dwarf2dbg.c: Likewise.
	* ecoff.c: Likewise.
	* expr.c: Likewise.
	* frags.c: Likewise.
	* input-file.c: Likewise.
	* input-scrub.c: Likewise.
	* listing.c: Likewise.
	* output-file.c: Likewise.
	* stabs.c: Likewise.
	* subsegs.c: Likewise.
	* symbols.c: Likewise.
	* write.c: Likewise.
	* ecoff.c (ecoff_directive_end): Test for missing name by
	comparing input line pointers rather than reading string.
	(ecoff_directive_ent): Likewise.
	* read.c (s_set): Likewise.
	(s_align): Report a warning rather than an error for
	alignment too large.
	(s_comm): Check for missing symbol name.
	(s_lcomm_internal): Likewise.
	(s_lsym): Likewise.
	(s_globl): Use is_end_of_line instead of looking for '\n'.
	(s_lcomm_internal): Likewise.
	(ignore_rest_of_line): Report a warning rather than an error.

2001-07-31  Geoffrey Keating  <geoffk@redhat.com>

	* config/tc-ppc.c (ppc_elf_validate_fix): It's OK to have
	any kind of relocation against a not-loaded section.

2001-07-30  Alan Modra  <amodra@bigpond.net.au>

	* config/obj-elf.c (obj_elf_symver): Temporarily modify lex_type
	to include '@' in symbol names when parsing versioned symbols
	rather than calling get_symbol_end multiple times.
	* config/tc-i370.c (register_name): Format fixes.  Don't call
	get_symbol_end after parsing number.
	* config/tc-mn10200.c (data_register_name): Format fixes.  Hoist
	code out of conditional.
	(address_register_name): Likewise.
	(other_register_name): Likewise.
	* config/tc-mn10300.c (r_register_name): Likewise.
	(xr_register_name): Likewise.
	(data_register_name): Likewise.
	(address_register_name): Likewise.
	(other_register_name): Likewise.
	* config/tc-ppc.c (register_name): Likewise.
	* config/tc-s390.c (register_name): Likewise.

2001-07-27  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/tc-m68hc11.c (md_estimate_size_before_relax): Fix bsr
	and bra relax: update fragP->fr_fix after the fixup.

2001-07-27  Tracy Kuhrt  <Tracy.Kuhrt@microchip.com>

	* read.c (s_set): Check for missing symbol name.

2001-07-26  Alan Modra  <amodra@bigpond.net.au>

	* write.c (relax_segment <rs_space>): Account for fr_fix.

2001-07-25  H.J. Lu  <hjl@gnu.org>

	* config/tc-mips.c (md_estimate_size_before_relax): Make sure
	we treat weak like extern only for ELF.
	(mips_fix_adjustable): Make sure we don't adjust extern/weak
	symbols only for ELF.

2001-07-25  Chris Demetriou  <cgd@broadcom.com>

	* config/tc-mips.c: Fix spelling error in comment.

2001-07-25  Dave Brolley  <brolley@redhat.com>

	* app.c (LEX_IS_PARALLEL_SEPARATOR): New macro.
	(IS_PARALLEL_SEPARATOR): New macro.
	(do_scrub_begin): Set up characters in tc_parallel_separator_chars
	as LEX_IS_PARALLEL_SEPARATOR, if it is defined.
	(do_scrub_chars): Handle LEX_PARALLEL_SEPARATOR chars like
	LEX_LINE_SEPARATOR except that we go to state 1 (as if the label has
	been seen).

2001-07-24  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am (DEP_FLAGS): Define, add -DOBJ_MAYBE_ELF.
	(DEP1, DEPTC, DEPOBJ, DEP2): Use it.
	Update dependencies with "make dep-am".
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.

2001-07-23  Kazu Hirata  <kazu@hxi.com>

	* config/tc-alpha.h: Fix formatting.
	* config/tc-arc.c: Likewise.
	* config/tc-d10v.h: Likewise.
	* config/tc-hppa.c: Likewise.
	* config/tc-i370.c: Likewise.
	* config/tc-i386.h: Likewise.
	* config/tc-i960.h: Likewise.
	* config/tc-ia64.c: Likewise.
	* config/tc-ia64.h: Likewise.
	* config/tc-m32r.c: Likewise.
	* config/tc-m68k.c: Likewise.
	* config/tc-m88k.c: Likewise.
	* config/tc-ns32k.c: Likewise.
	* config/tc-pdp11.c: Likewise.
	* config/tc-pj.h: Likewise.
	* config/tc-s390.c: Likewise.
	* config/tc-sparc.c: Likewise.
	* config/tc-sparc.h: Likewise.
	* config/tc-tic80.c: Likewise.
	* config/tc-w65.h: Likewise.

2001-07-23  Alan Modra  <amodra@bigpond.net.au>

	* symbols.c (S_GET_VALUE): Don't treat O_constant and local
	symbols specially.  Always resolve, adding fr_address to value.
	* write.c (write_object_file): Don't add fr_address to sym values.
	(relax_frag): Likewise.
	(relax_segment): Likewise.
	* config/obj-ieee.c (do_symbols): Likewise.
	* config/tc-cris.c (md_convert_frag): Likewise.
	* config/tc-fr30.c (md_convert_frag): Likewise.
	* config/tc-i386.c (md_convert_frag): Likewise.
	* config/tc-m32r.c (md_convert_frag): Likewise.
	* config/tc-m68hc11.c (md_convert_frag): Likewise.
	* config/tc-mcore.c (md_convert_frag): Likewise.
	* config/tc-mips.c (mips16_extended_frag): Likewise.
	* config/tc-ns32k.c (md_convert_frag): Likewise.
	* config/tc-m68k.c (md_convert_frag_1): Likewise.
	(BRANCHBWL, BRABSJUNC, BRABSJCOND, BRANCHBW, FBRANCH, DBCCLBR,
	DBCCABSJ, PCREL1632, PCINDEX, ABSTOPCREL): Decrement.
	(md_relax_table): Remove first four entries.  Format.
	(md_estimate_size_before_relax): Remove old_fix.  Don't bother
	setting fr_var.  Simplify byte branch checks.

2001-07-23  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-hppa.c (pa_parse_nonneg_cmpsub_cmpltr): Remove
	"isbranch" param as all calls have it set.
	(pa_parse_neg_cmpsub_cmpltr): Likewise.
	(pa_parse_nonneg_add_cmpltr): Likewise.  Remember result of
	strcasecmp in "nullify" var.
	(pa_parse_neg_add_cmpltr): Likewise.
	(pa_ip): Don't "save_s" unnecessarily.  Update calls to above
	functions.  Don't print wrong conditions in error messages.

2001-07-23  Andreas Jaeger  <aj@suse.de>

	* config/tc-s390.c (s390_force_relocation): Removed.

	* config/tc-s390.h: Remove double declaration of
	TC_FORCE_RELOCATION.

2001-07-22  H.J. Lu <hjl@gnu.org>

	* config/tc-mips.c (s_mips_end): Remove unused variables.
	(s_mips_frame): Add ATTRIBUTE_UNUSED.

2001-07-17  Andreas Schwab  <schwab@suse.de>

	* config/tc-m68k.c (md_pseudo_table) [OBJ_ELF]: Add .file and
	.loc.
	(md_assemble) [OBJ_ELF]: Call dwarf2_emit_insn before emitting
	insn.
	* config/tc-m68k.h (DWARF2_LINE_MIN_INSN_LENGTH): Define.

2001-07-17  matthew green  <mrg@eterna.com.au>

	* config/tc-i386.c (comment_chars): Don't use '/' as comment start if
	TE_NetBSD.
	(line_comment_chars): Set to '/' if TE_NetBSD.

2001-07-14  matthew green  <mrg@eterna.com.au>

	* configure.in (i386-*-netbsdelf*): New target.
	* configure: Regenerate.

2001-07-10  Mark Elbrecht  <snowball3@softhome.net>

	* config/obj-coff.c (coff_frob_symbol): Don't merge if the storage
	class of the non-debug symbol is C_NULL.

2001-07-10  Anders Norlander <anorland@synergenix.se>

	* doc/as.texinfo (Incbin): Fix grammatical errors.

2001-07-10  Nick Clifton  <nickc@cambridge.redhat.com>

	* depend.c: Use FOPEN_.. macros in calls to fopen().
	* input-file.c: As above.
	* itbl-ops.c: As above.
	* listing.c: As above.
	* output-file.c: As above.
	* read.c: As above.

2001-07-08  Anders Norlander <anorland@synergenix.se>

	* read.c (s_incbin): New .incbin function.
	* read.c (potable): Add "incbin" pseudo-op.
	* read.h: Add s_incbin prototype.
	* doc/as.texinfo (incbin): Document .incbin pseudo-op.
	* NEWS: Mention new feature.

2001-07-07  Nick Clifton  <nickc@cambridge.redhat.com>

	* ecoff.c (add_file): Only set debug_type to DEBUG_NONE if it is
	DEBUG_UNSPECIFIED.

2001-07-06  John Healy  <jhealy@redhat.com>

	* cgen.c (gas_cgen_save_fixups): Modified to allow more than one
	set of fixups to be stored.
	(gas_cgen_restore_fixups): Modified to allow the fixup chain to be
	restored to be chosen from any that are saved.
	(gas_cgen_swap_fixups): Modified to allow the current set of
	fixups to be swapped with any other set that has been saved.
	(gas_cgen_initialize_saved_fixups_array): New routine.
	* cgen.h: Modifed prototypes for gas_cgen_save_fixups,
	gas_cgen_restore_fixups, and gas_cgen_swap_fixups.  Added definitions
	or MAX_SAVED_FIXUP_CHAINS.
	* config/tc-m32r.c (assemble_two_insns): Changed calls to fixup
	store, swap and restore fuctions to reflect the new interface.

2001-07-06  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-m68k.c (md_estimate_size_before_relax): Catch and
	ignore empty, ineffectual alignment frags when deciding if a
	branch can be short.

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

	* config/tc-ia64.c (special_section): Add SPECIAL_SECTION_INIT_ARRAY
	and SPECIAL_SECTION_FINI_ARRAY.
	(special_section_name): Add .init_array and .fini_array.
	(md_pseudo_table): Add init_array and fini_array.
	(md): Add pointer_size and pointer_size_shift fields.
	(setup_unwind_header): New static function.
	(output_unw_records): Modify to use setup_unwind_header.
	(generate_unwind_image, dot_endp): Modify to use md.pointer_size and
	md.pointer_size_shift.
	(md_begin): Initialize md.pointer_size and md.pointer_size_shift.

2001-07-05  Ben Elliston  <bje@redhat.com>

	* README (Supported platforms): m88k no longer suffers bitrot.

	* config/tc-m88k.c (md_pseudo_table): Remove redundant "global".

2001-07-05  Alan Modra  <amodra@bigpond.net.au>

	* struc-symbol.h (struct local_symbol): Rename lsy_offset to
	lsy_value.  Correct typos in comments.
	* symbols.c (local_symbol_make): Update for name change.
	(local_symbol_convert): Likewise.
	(colon): Likewise.
	(S_GET_VALUE): Likewise.
	(S_SET_VALUE): Likewise.
	(print_symbol_value_1): Likewise.
	(resolve_symbol_value): Likewise.  Don't divide local sym values
	by OCTETS_PER_BYTE twice.

2001-07-04  Jim Wilson  <wilson@redhat.com>

	* config/tc-ia64.c (md_pseudo_table): Add 2byte, 4byte, and 8byte.

	* config/tc-ia64.c (is_conditional_branch): Rewrite to exclude mod
	sched branches.

2001-07-05  Ben Elliston  <bje@redhat.com>

	* read.c (s_fill): Correct spelling error in comments.

	* doc/c-m88k.texi: New file.
	* doc/Makefile.am (CPU_DOCS): Add c-m88k.texi.
	* doc/Makefile.in: Regenerate.
	* doc/all.texi: Set M880X0.
	* doc/as.texinfo: Hook in m88k-dependent documentation.

2001-07-04  Eric Christopher  <echristo@redhat.com>

	* doc/c-mips.texi (MIPS Opts): Document 12000 as valid cpu.

	* config/tc-mips.c (mips_cpu_info_table): Add rm5200, rm5231, rm5261,
	and rm5721 as valid cpu strings.
	(md_show_usage): Add rm5200, rm5231, rm5261, rm5721.

2001-07-04  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mips.c (md_apply_fix): Prevent addend from becoming zero
	if it's expected to be non-zero.

2001-07-03  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-sh.c (sh_frob_section): Replace symbol_get_frag() with
	fscan->fx_frag.

	* write.c (TC_FINALIZE_SYMS_BEFORE_SIZE_SEG): Default to 1.
	(write_object_file): Set finalize_syms to
	TC_FINALIZE_SYMS_BEFORE_SIZE_SEG just before size_segs is
	called.

	* doc/internals.texi: Document
	TC_FINALIZE_SYMS_BEFORE_SIZE_SEG.

2001-07-02  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-ppc.c: Formatting fixes.

2001-07-01  Ben Elliston  <bje@redhat.com>

	* config/tc-m88k.c: Back out warning fixes from 2001-06-24, as
	they cause some subtle breakage.  Will fix them again later.

2001-06-28  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/obj-coff.c (obj_coff_ln): Treat a .ln directive
	outside of a function as a .appline directive.

2001-06-28  Eric Christopher <echristo@redhat.com>
	    H.J. Lu  <hjl@gnu.org>

	* config/tc-mips.c (mips_arch): New. Use mips_arch instead
	of mips_cpu for the ISA selection.
	(md_longopts): Add OPTION_MARCH and OPTION_MTUNE.
	(md_parse_option): Handle OPTION_MARCH and OPTION_MTUNE.
	(mips_tune): New.  Use mips_tune for scheduling and optimization
	issues.
	(append_insn): Use mips_tune and mips_arch.
	(macro_build): Ditto.
	(mips_ip): Ditto.
	(md_begin): Handle mips_arch, mips_tune and mips_cpu.  For
	backwards compatability mips_cpu generates arch and tune.
	(md_show_usage): Document new behavior.

	* doc/c-mips.texi (MIPS Opts): Document -march and -mtune.
	Deprecate -mcpu.

	* NEWS: Update.

2001-06-27  Nick Clifton  <nickc@cambridge.redhat.com>

	* write.c (write_object_file): Do not set finalize_syms until
	after the segments have been sized.  Some backends may still
	need to access the syms's frags in order to adjust relaxed
	frags.

	* config/tc-arm.c (do_ldst): Use MVN to build simple inverted
	constants.

2001-06-27  Alan Modra  <amodra@bigpond.net.au>

	* write.c (fixup_segment <Difference of 2 syms same seg>): Don't
	subtract MD_PCREL_FROM_SECTION for 68k.
	(fixup_segment <Difference of 2 syms different seg>): Only fudge
	by adding MD_PCREL_FROM_SECTION for 68k or if not already pcrel.

2001-06-27  Tracy A. Kuhrt  <Tracy.Kuhrt@microchip.com>

	* write.c (fixup_segment <Difference of 2 syms same seg>): If
	pcrel, subtract MD_PCREL_FROM_SECTION value.

2001-06-24  Ben Elliston  <bje@redhat.com>

	* stabs.c (generate_asm_file): Make local variable `len' a size_t.

2001-06-24  Jakub Jelinek  <jakub@redhat.com>

	* config/tc-alpha.c (tc_gen_reloc): Handle relocs against SEC_MERGE
	section symbols the same way as externs.

2001-06-24  Ben Elliston  <bje@redhat.com>

	* config/tc-m88k.c (md_number_to_imm): Remove; unused since 1993.
	(emit_relocations): Ditto.
	(s_bss): Ditto.
	(md_begin): Reformat comments to conform to the GNU standards.
	(md_assemble): Ditto.

	* config/tc-m88k.c (get_reg): Adjust type of `reg_prefix' to char.
	(md_parse_option): Mark parameters as unused.
	(md_show_usage): Ditto.
	(calcop): Adjust type of `reg_prefix' to char.
	(get_reg): Ditto.
	(getval): Adjust type of local `c' to char.
	(md_create_short_jump): Mark from_addr, to_addr params as unused.
	(md_create_long_jump): Ditto.
	(md_estimate_size_before_relax): Mark parameters as unused.

	* config/tc-m88k.c (md_pseudo_table): Properly terminate the table
	to allay a possible compiler warning.

2001-06-22  Nick Clifton  <nickc@cambridge.redhat.com>

	* doc/internals.texi (CPU backend): Document md_atof.

2001-06-22  Matthew Wilcox  <willy@ldl.fc.hp.com>

	* config/tc-hppa.c (pre_defined_registers): Add %mrp (millicode
	return pointer) alias for %r2 or %r31, depending on 32 or 64 bit
	architecture.

2001-06-21  Philip Blundell  <philb@gnu.org>

	* config/tc-arm.c (cplong_flag): Rename to long_flag.  All uses
	updated.
	(insns): Remove entry for adrl.  Add long_flag for adr.
	(do_adr): Handle `l' suffix.
	(do_adrl): Delete.

2001-06-21  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-hppa.c (CHECK_FIELD_WHERE): Define.
	(md_apply_fix): Use it here.  Replace printf with equivalent
	as_bad_where.
	(tc_gen_reloc): Use as_bad_where instead of as_bad.
	(md_apply_fix): Here too.
	* config/tc-i386.c (tc_gen_reloc): Use as_bad_where instead of as_bad.
	* config/tc-m68k.c (tc_gen_reloc): Likewise.
	(md_convert_frag_1): Likewise.

2000-06-20  Tom Rix <trix@redhat.com>

	* config/tc-ppc.c (ppc_comm): Change default alignment to 4 bytes.

2001-06-18  H.J. Lu <hjl@gnu.org>

	* doc/Makefile.am (info): Depend on $(MANS).
	(as.1): Remove the prefix `$(srcdir)/'.
	* doc/Makefile.in: Regenerated.

	* as.1: Removed.

2001-06-18  Philip Blundell  <philb@gnu.org>

	* config/tc-arm.c (do_msr): Remove restriction on usage of
	immediate operands.

2001-06-19  Alan Modra  <amodra@bigpond.net.au>

	* dwarf2dbg.c (dwarf2_finish): Output file info even when no
	line info.

2001-06-13  Philip Blundell  <philb@gnu.org>

	* config/tc-arm.c (thumb_shift): Improve wording of error message.
	(do_t_arit): Likewise.

2001-06-13  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-sh.c (md_pseudo_table): Only intercept the .file and
	.loc pseudos if the dfwarf2 functions are available.
	(md_assemble): Only call dwarf2_emit_insn if it is available.

	* expr.c: Fix typo in comment.

2001-06-12  Nick Clifton  <nickc@cambridge.redhat.com>

	* doc/as.texinfo (Infix Ops): Document that comparison and
	combiner operators can be used as infix operators.

2001-06-12  Peter Jakubek <pjak@snafu.de>

	* config/tc-m68k.c (parse_mri_control_operand): Fix handling
	of AND/OR.
	(swap_mri_condition): Add HS (alias fo CC) and LO (alias for CS).
	(reverse_mri_condition): Likewise.
	(swap_mri_condition): Issue warning for conditions that can not be
	swapped.
	(build_mri_control_operand): Fix order of operands (swapped).
	(build_mri_control_operand): Allow upper case extension in structured
	control directives.
	(s_mri_else): Likewise.
	(s_mri_next): Likewise.
	(s_mri_for): Likewise.
	(s_mri_if): Fix handling comment ('*') in mri mode.
	(s_mri_while): Likewise.
	* macro.c (macro_expand): Allow macro invocation with empty
	extension.

2001-06-12  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-arm.c: Fix test for overlow of literal pool.

2001-06-11  H.J. Lu  <hjl@gnu.org>

	* NEWS: Updated for the new -n option for the MIPS assembler.

	* config/tc-mips.c (md_show_usage): Add -n.

	* doc/as.texinfo: Document the new -n option.
	* doc/c-mips.texi: Likewise.
	* doc/as.1: Regenerated.

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

	* config/obj-coff.c (obj_coff_section): Formatting fix.

	* config/tc-i386.c (md_assemble): Accept branch hints as ",pt" and
	",pn".

2001-06-08  H.J. Lu  <hjl@gnu.org>

	* config/tc-mips.c (warn_nops): New variable. Set to 0 to
	disable warning about all NOPS that the assembler generates.
	(macro): Warn NOPS generated only if warn_nops is not 0.
	(md_shortopts): Add `n'.
	(md_parse_option): Set warn_nops to 1 for `n'.

2001-06-08  H.J. Lu  <hjl@gnu.org>

	* config/tc-mips.c (mips_ip): Properly handle illegal operands.

2001-06-08  H.J. Lu  <hjl@gnu.org>

	* config/tc-mips.c (md_apply_fix): Don't adjust common
	extern/weak symbols for ELF.
	(md_estimate_size_before_relax): Treat weak like extern for
	ELF.
	(mips_fix_adjustable): Don't adjust extern/weak symbols for
	ELF.

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

	* Makefile.am: 'som' is not wrongly spelled 'some'.
	* Makefile.in: Regenerate.

	* config/tc-mips.c (mips16_mark_labels): Reduce number of calls to
	S_GET_VALUE by using a temp.
	(append_insn): Likewise, and for S_SET_VALUE too.
	(mips_emit_delays): Likewise.
	(my_getExpression): Likewise.
	(md_apply_fix): Likewise.  Use "valueT" rather than "long" for "value".
	(mips16_extended_frag): Remove code concerned with avoiding
	locking in a frag address now that symbols are not finalized until
	relaxation is complete.  Cater for first relaxation pass having
	bogus addresses.  Use relax_marker to reliably determine whether a
	symbol frag has been reached on the current pass.

2001-06-07  H.J. Lu  <hjl@gnu.org>

	* configure.in: Move "mips-*-linux-gnu*" before "mips-*-gnu*".
	* configure: Regenerate.

2001-06-07  H.J. Lu  <hjl@gnu.org>

	* configure.in: Use MIPS_STABS_ELF for Linux/mips and remove
	ecoff emulation.
	* configure: Regenerate.

2001-06-07  H.J. Lu  <hjl@gnu.org>

	* config/tc-mips.c (mips_pseudo_table): Add "extern" if
	MIPS_STABS_ELF is defined.

2001-06-06  Nick Clifton  <nickc@cambridge.redhat.com>

	* as.c (show_usage): Remove L from listing options.  It is not a
	generic option.

2001-06-06  Christian Groessler <cpg@aladdin.de>

	* config/tc-z8k.c: Removed many warnings by removing unused
	variables and tagging unused parameters as such.
	(md_begin): Fixed a typo (","instead of ";").
	(struct ctrl_table): Add parentheses to initialize array
	correctly.
	(struct flag_table): Likewise.
	(struct intr_table): Likewise.
	(struct table): Likewise.
	(check_operand): "#if 0"'ed since it doesn't seem to be used.

2001-06-06  Peter Jakubek <pjak@snafu.de>

	* config/tc-m68k.c (md_show_usage): Add all supported ColdFire
	options to list (e.g. m5206e, m5307, m5407).

2001-06-06  Martin Schwidefsky <schwidefsky@de.ibm.com>

	* config/tc-s390.h (TC_FORCE_RELOCATION): Always emit relocations
	BFD_RELOC_VTABLE_INHERIT and BFD_RELOC_VTABLE_ENTRY.

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

	* config/tc-i386.c (md_assemble): Handle Pentium4 branch hints.
	<JumpByte, JumpDword insn output>: Remove dead code.

2001-06-06  Tracy Kuhrt <Tracy.Kuhrt@microchip.com>

	* as.c (parse_args): Correct option name "listing-lhs-width2".

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

	* symbols.c (S_SET_EXTERNAL): Do not override a section symbol's
	status.

2001-05-30  Richard Henderson  <rth@redhat.com>

	* read.c (emit_leb128_expr): Call md_cons_align.

2001-05-28  Jeff Sturm  <jsturm@one-point.com>

	* config/tc-sparc.c (md_apply_fix3): Handle BFD_RELOC_SPARC_UA16,
	BFD_RELOC_SPARC_UA32 and BFD_RELOC_SPARC_UA64.
	(tc_gen_reloc): Likewise.
	(sparc_cons_align): Don't clear sparc_no_align_cons.
	(cons_fix_new_sparc): Substitute BFD_RELOC_SPARC_UA{16|32|64} for
	BFD_RELOC_{16|32|64} iff sparc_no_align_cons is set.

2001-05-27  Alan Modra  <amodra@one.net.au>

	* write.c (relax_segment <rs_space>): Check the section of a
	symbol to determine whether it is absolute rather than comparing
	its frag against zero_address_frag as listings play tricks with
	frags.

	* config/tc-m68k.c (md_assemble): Ensure variable part of frag is
	allocated in the same chunk as the fixed part.

2001-05-26  Alan Modra  <amodra@one.net.au>

	* write.c (relax_segment <rs_space>): Calculate growth using
	addresses before stretch.  Prevent repeated error messages.
	From Peter Jakubek  <pjak@snafu.de>
	Use as_bad_where and as_warn_where to pinpoint errors.

2001-05-25  Alan Modra  <amodra@one.net.au>

	* symbols.c (resolve_symbol_value): Always set segment, even when
	not finalizing symbol value.

	* config/obj-ieee.c (write_object_file): Set finalize_syms.
	* config/obj-coff.c (write_object_file): Likewise.
	* (size_section): Remove rs_space assert as fr_symbol is no longer
	removed.
	(fill_section): Likewise.

	* configure.in: Replace linuxoldld with linux*oldld.
	* configure: Regenerate.

	From 2.11 branch 2001-03-30  Richard Henderson  <rth@redhat.com>
	* config/tc-i386.c (md_convert_frag): Don't die on local symbols
	that have been finalized.

	* symbols.c (resolve_symbol_value): Clear sy_resolving before
	taking exit_dont_set_value.

	* write.c (relax_segment <rs_space>): Don't zap fr_symbol when
	relaxing.

2000-05-24  Tom Rix <trix@redhat.com>

	* config/obj-coff.c (add_lineno): xcoff allows negative line
	numbers
	* config/tc-ppc.c (ppc_stabx): fix generated symbol

2001-05-24  Alan Modra  <amodra@one.net.au>

	* write.c (write_object_file): Set finalize_syms = 1 before
	size_seg is called.

2001-05-23  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* config/tc-mips.c (ISA_HAS_64BIT_REGS): Add ISA_MIPS64 as 64 bit
	architecture, remove erraneous ISA_MIPS32.
	(md_show_usage): Add MIPS r12k support.
	(mips_cpu_info_table): Add MIPS r12k support.

2001-05-22  Alan Modra  <amodra@one.net.au>

	* config/tc-arc.c (md_assemble): Use is_end_of_line instead of
	testing for NULs.

	* symbols.c (resolve_symbol_value): Remove "finalize" param,
	instead use finalize_syms directly.  Don't treat expressions
	specially with regard to finalize_syms.  Update calls to self.
	(resolve_local_symbol): Update call to resolve_symbol_value.
	(S_GET_VALUE): Likewise.  Return resolve_symbol_value if
	!finalize_syms.
	* symbols.h (resolve_symbol_value): Update prototype.
	* config/obj-aout.c (obj_crawl_symbol_chain): Update call
	to resolve_symbol_value.
	* config/obj-bout.c (obj_crawl_symbol_chain): Likewise.
	* config/obj-coff.c (do_relocs_for): Likewise.
	(yank_symbols): Likewise.
	(fixup_segment): Likewise.
	* config/obj-vms.c (obj_crawl_symbol_chain): Likewise.
	* config/tc-mips.c (md_convert_frag): Likewise.
	* config/tc-ppc.c (ppc_frob_symbol): Likewise.
	(ppc_fix_adjustable): Likewise.
	* dwarf2dbg.c (dwarf2dbg_estimate_size_before_relax): Likewise.
	(dwarf2dbg_convert_frag): Likewise.
	* ehopt.c (eh_frame_estimate_size_before_relax): Likewise.
	(eh_frame_convert_frag): Likewise.
	* expr.c (make_expr_symbol): Likewise.
	* write.c (adjust_reloc_syms): Likewise.
	(write_object_file): Likewise.
	(relax_segment): Likewise.
	(fixup_segment): Likewise.
	(finalize_syms): Init to zero, and update comment.
	(write_object_file): Set finalize_syms to 1 rather than 2.
	* doc/internals.texi (sy_value): Mention finalize_syms.
	(S_GET_VALUE): Remove restriction on when S_GET_VALUE can be called.

	* config/tc-m68k.c (relaxable_symbol): Only treat external symbols
	as relaxable if embedded system, make weak syms non-relaxable.
	Move definition..
	(tc_m68k_fix_adjustable): ..so it can be used here.
	(md_apply_fix_2): Sign extend without conditional.

	* config/tc-v850.c: Update copyright.

2001-05-16  Jeff Johnston  <jjohnstn@redhat.com>

	* cgen.c (gas_cgen_tc_gen_reloc): Changed error message when
	howto entry is not found.

2001-05-15  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-mn10300.c (mn10300_force_relocation): Don't
	optimize differences between symbols in code sections to
	constants.
	(mn10300_fix_adjustable): Don't adjust to section+offset
	relocations pointing at symbols in code sections.

2001-05-16  Alan Modra  <amodra@one.net.au>

	* config/tc-arc.c (md_assemble): Correct dwarf2_emit_insn param
	for 8 byte insns.
	* config/tc-i386.c (md_assemble): Call dwarf2_emit_insn before
	opcodes are output rather than after.  Delete insn_size.
	* config/tc-v850.c (md_assemble): Similarly, but delete
	total_insn_size.

2001-05-14  Richard Henderson  <rth@redhat.com>

	* ehopt.c (eh_frame_convert_frag): Fix missed subtype adjustment
	last change.

2001-05-14  Richard Henderson  <rth@redhat.com>

	* ehopt.c (get_cie_info): Rename from eh_frame_code_alignment;
	also collect whether to expect an FDE augmentation.
	(check_eh_frame): Rewrite as a state machine.  Track where in
	an FDE we are located, skip any augmentation.
	(eh_frame_estimate_size_before_relax): Get code alignment from
	the fragment subtype.
	(eh_frame_relax_frag, eh_frame_convert_frag): Likewise.
	* read.c (emit_leb128_expr): Call check_eh_frame.

2001-05-14  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-mn10300.c (md_assemble): Anchor dwarf2 line info
	before a relaxable insns.

2001-05-13  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-mn10300.c (tc_gen_reloc): Don't reject differences
	between symbols if the base symbol is in the current section;
	emit a PC-relative relocation instead.

2001-05-12  Peter Targett  <peter.targett@arccores.com>

	* config/tc-arc.c: Update copyright and tidy source comments.
	(md_pseudo_table): Add directive .cpu back as an alias for
	.option.  Add .file and .line for dwarf2 support.
	(arc_mach_type): Make bfd_mach_arc_6 default.
	(md_longopts): Add entry 'pre-v6' representing old command line
	option when assembling for 'arc5' core versions.
	(md_parse_option): Make OPTION_ARC same as OPTION_ARC6, for new
	default behaviour.
	(arc_code_symbol): Make symbol value for @h30 fixup expression
	equal to O_constant.
	(md_assemble): Call dwarf2_emit_insn.
	Include "dwarf2dbg2.h".  Formatting fixes throughout file.
	* config/tc-arc.h (DWARF2_LINE_MIN_INSN_LENGTH): Define.
	* doc/c-arc.texi (ARC_CORE_DEFAULT): Update to new default.

2001-05-11  Jakub Jelinek  <jakub@redhat.com>

	* config/tc-ia64.c (special_linkonce_name): New.
	(make_unw_section): Map .gnu.linkonce.t.FOO text section into
	.gnu.linkonce.ia64unw{,i}.FOO.
	(ia64_elf_section_type): Handle .gnu.linkonce.ia64unw{,i}.FOO.
	(dot_endp): Add comment about it.

2001-05-11  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-arm.c (arm_handle_align): When truncating an aligned
	block, ensure that the low order bits of the alignment are
	preserved.

2001-05-10  Alan Modra  <amodra@one.net.au>

	* config/obj-vms.c (obj_crawl_symbol_chain): Don't take address of
	symbol_next.

	* config/tc-fr30.c (md_estimate_size_before_relax): Return size of
	current variable part of frag.
	* config/tc-m32r.c (md_estimate_size_before_relax): Likewise.
	* config/tc-openrisc.c (md_estimate_size_before_relax): Likewise.
	* config/tc-m68hc11.c (RELAX_STATE): Define.
	(RELAX_LENGTH): Define.
	(md_estimate_size_before_relax): Handle non-relaxable cases
	separately from relaxable cases for clarity, and return correct
	size for multi-pass relaxation.
	* config/tc-tahoe.c (RELAX_LENGTH): Correct.
	(md_estimate_size_before_relax): As for tc-m68hc11.c.
	(md_convert_frag): Remove "length_code".
	* config/tc-vax.c (RELAX_STATE): Define.
	(RELAX_LENGTH): Define.
	(md_relax_table): Add missing entry.
	(md_estimate_size_before_relax): As for tc-m68hc11.c.
	(md_convert_frag): Remove "length_code".
	* config/tc-ns32k.c (md_estimate_size_before_relax): Simplify and
	don't bother setting fr_var.  Return correct size for multi-pass
	relaxation.
	* config/tc-v850.c (md_estimate_size_before_relax): Rewrite.
	(md_convert_frag): Don't bother clearing fr_var.
	(md_pseudo_table): Correct initialization.
	* config/tc-h8500.c (md_convert_frag): Don't bother clearing fr_var.
	(md_estimate_size_before_relax): No need to set fr_var.
	* config/tc-mcore.c (md_convert_frag): Don't bother clearing fr_var.
	(md_estimate_size_before_relax): No need to set fr_var.

2001-05-09  Richard Henderson  <rth@redhat.com>

	* config/tc-ia64.c (generate_unwind_image): Align the fragment
	beginning a function's unwind info block.

2001-05-09  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-mn10300.c (md_apply_fix3): Accept PC-relative relocs.

2001-05-08  Andreas Schwab  <schwab@suse.de>

	* config/tc-m68k.c: Instead of replacing -1 by 64 in assignment to
	fx_pcrel_adjust explicitly sign extend when reading it.

2001-05-08  Alan Modra  <amodra@one.net.au>

	* config/tc-m68k.c (md_estimate_size_before_relax): Set fr_var
	from md_relax_table, and combine some switch cases.

2001-05-06  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-mn10300.c (md_assemble): Subtract operand->shift
	from offset in non-pcrel operands too.

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

	* config/tc-arm.h (MAX_MEM_FOR_RS_ALIGN_CODE): Define.
	* config/tc-arm.c (arm_handle_align): Do not insert more than
	MAX_MEM_FOR_RS_ALIGN_CODE bytes.
	(arm_frag_align_code): Use MAX_MEM_FOR_RS_ALIGN_CODE.

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

	* Makefile.am (TARG_ENV_HFILES): Add te-hppa64.h and te-hppalinux64.h.
	Run "make dep-am".
	* Makefile.in: Regenerate.
	* configure.in: Remove duplicate mips-*-ecoff* entry.
	* configure: Regenerate.

	* config/obj-ecoff.c (obj_pseudo_table): Fix terminating entry.
	(n_names): Cast away type mismatch.
	(ecoff_sec_sym_ok_for_reloc): Add unused attribute.
	(obj_ecoff_frob_symbol): Likewise.
	* ecoff.c: (add_file): Add unused attribute.
	(ecoff_directive_begin): Likewise.
	(ecoff_directive_bend): Likewise.
	(ecoff_directive_def): Likewise.
	(ecoff_directive_dim): Likewise.
	(ecoff_directive_scl): Likewise.
	(ecoff_directive_size): Likewise.
	(ecoff_directive_type): Likewise.
	(ecoff_directive_tag): Likewise.
	(ecoff_directive_val): Likewise.
	(ecoff_directive_endef): Likewise.
	(ecoff_directive_end): Likewise.
	(ecoff_directive_ent): Likewise.
	(ecoff_directive_extern): Likewise.
	(ecoff_directive_file): Likewise.
	(ecoff_directive_fmask): Likewise.
	(ecoff_directive_frame): Likewise.
	(ecoff_directive_mask): Likewise.
	(ecoff_directive_loc): Likewise.
	(mark_stabs): Likewise.
	(ecoff_stab):  Likewise.
	(ecoff_frob_symbol): Cast away type mismatch.
	(ecoff_padding_adjust): Likewise.
	(ecoff_build_symbols): Likewise.
	(ecoff_build_procs): Likewise.
	(ecoff_build_aux): Likewise.
	(ecoff_build_strings): Likewise.
	(ecoff_build_fdr): Likewise.
	(ecoff_build_debug): Likewise.
	* itbl-ops.c (itbl_assemble): Variable initialization.

2001-05-03  Alan Modra  <amodra@one.net.au>

	* config/tc-i386.c (i386_displacement): Call as_bad for bad GOTOFF
	expressions rather than triggering an assert.

2001-05-02  Johan Rydberg  <jrydberg@opencores.org>

	* config/tc-openrisc.c: New file.
	* config/tc-openrisc.h: Likewise.

	* Makefile.am: Add OpenRISC target.
	* Makefile.in: Regenerated.

	* configure.in (openrisc-*-*): Add target.
	* configure: Regenerated.

2001-05-02  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-arm.c (arm_frag_align_code): Change error message to
	more explanatory version.

2001-04-29  Keith M Wesolowski <wesolows@foobazco.org>

	* config/tc-mips.c (md_parse_option): Also accept
	elf64-tradbigmips and elf64-tradlittlemips for OPTION_64.

2001-04-27  David Mosberger  <davidm@hpl.hp.com>

	* config/tc-ia64.c (dot_spillmem_p): Fix output_spill_?sprel_p()
	argument passing order: predicate goes last, not first.

2001-04-27  Sean McNeil <sean@mcneil.com>

	* configure.in: Add arm-vxworks.
	* configure: Regenerate.

2001-04-26  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/tc-arm.c (arm_handle_align): New Function:  Generate
	no-op filled alignment frags.
	(arm_frag_align_code): New Function: Create a code alignment frag.
	(arm_init_frag): New Function: Initialse the target dependent
	parts of a frag.

	* config/tc-arm.h (TC_FRAG_TYPE): Define.
	(TC_FRAG_INIT): Define.
	(HANDLE_ALIGN): Define.
	(md_do_align): Define.

2001-04-25  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/obj-coff.c (do_linenos_for): Check to see if the filename
	symbol has been initialised before extracting its symbol index.

2001-04-24  H.J. Lu  <hjl@gnu.org>

	* configure: Regenerated with the right version of autoconf.

2001-04-24  Christian Groessler  <cpg@aladdin.de>

	* config/tc-z8k.c (build_bytes): 12 and 16 bit displacements now
	generate R_CALLR and R_REL16 relocations

2000-04-20  Jason Eckhardt  <jle@redhat.com>

	* config/tc-d10v.h (tc_frob_label): Update the symbol's frag
	since frag_now can change after d10v_cleanup is called.

2001-04-16  David O'Brien  <obrien@FreeBSD.org>

	* configure.in: Add the em type for FreeBSD targets.
	* configure: Regenerate.

2001-04-14  Alexandre Oliva  <aoliva@redhat.com>

	* struc-symbol.h (struct local_symbol): New TC_LOCAL_SYMFIELD_TYPE.
	* symbols.c (local_symbol_convert): Call TC_LOCAL_SYMFIELD_CONVERT.

	* config/tc-mn10300.c (md_assemble): Simplify offset adjustment of
	pc-relative relocations not placed at the end of the instruction.

2001-04-13  Jim Wilson  <wilson@redhat.com>

	* tc-ia64.c (is_conditional_branch): Return true for br, brl, and br.
	excluding br.i.

2001-04-13  Jakub Jelinek  <jakub@redhat.com>

	* config/obj-elf.c (obj_elf_change_section): Add entsize argument,
	handle SHF_MERGE and SHF_STRINGS.
	(obj_elf_parse_section_letters): Set SHF_MERGE and SHF_STRINGS.
	(obj_elf_section): Allow additional argument specifying entity size.
	* write.c (adjust_reloc_syms): Keep relocations against local symbols
	in SEC_MERGE sections.

2001-04-12  Jason Merrill  <jason_merrill@redhat.com>

	* dwarf2dbg.c (process_entries): Don't optimize redundant line notes.

2001-04-12  Alexandre Oliva  <aoliva@redhat.com>

	* expr.c (operand): Pass &c to md_parse_name().
	* config/tc-ia64.h, config/tc-ppc.h, config/tc-tic54x.h: Adjust.

2001-04-07  Steven J. Hill  <sjhill@cotw.com>

	* config/tc-mips.c: Support ELF64 for traditional MIPS targets.

	* Makefile.am: (TARG_ENV_HFILES): Add tc-mips.h.
	* Makefile.in: Regenerated.

	* configure.in: Use traditional MIPS targets for Linux/MIPS.
	* configure: Regenerated.

2001-04-06  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-mn10300.c (xr_registers): Added `pc'.

2001-04-05  Alan Modra  <alan@linuxcare.com.au>

	* configure.in: Add h8500-*-coff and h8500-*-rtems targets.
	* configure: Regenerate.

	* config/tc-h8500.c (md_estimate_size_before_relax): Add missing
	cases, and always return size based on current fr_subtype.
	(md_begin): Move initialization of md_relax_table..
	(md_relax_table): ..to static initializer.  Set rlx_length for
	UNDEF_WORD_DISP cases.
	* config/tc-w65.c (md_estimate_size_before_relax): Likewise.
	(md_begin): Likewise.
	(md_relax_table): Likewise.
	* config/tc-mcore.c (md_estimate_size_before_relax): Likewise.
	(md_relax_table): Set rlx_length for UNDEF_WORD_DISP cases.
	Set rlx_backward and rlx_forward to zero for unused states.
	* config/tc-sh.c (md_estimate_size_before_relax): Likewise.
	(md_relax_table): Set rlx_length for UNDEF_WORD_DISP cases.
	(UNCOND12, UNCOND32): Remove duplicate defines.

2001-04-04  Hans-Peter Nilsson  <hp@axis.com>

	* config/tc-cris.c (md_estimate_size_before_relax) <case
	ENCODE_RELAX (STATE_CONDITIONAL_BRANCH, STATE_UNDF)>: Don't emit
	32-bit branch, just set fragP->fr_subtype.  Set fragP->fr_var.
	<all cases>: Always set fragP->fr_var using md_cris_relax_table.
	Add cases to cover all relax states.
	(cris_insn_first_word_frag): New.
	(md_assemble): Call cris_insn_first_word_frag to get the first
	frag in an insn, not frag_more.  Don't call dwarf2_emit_insn at
	end.  Drop variable insn_size.
	(gen_bdap): Call cris_insn_first_word_frag, not frag_more.
	(cris_sym_leading_underscore): Wrap first as_bad parameter in _().
	(cris_sym_no_leading_underscore, s_cris_file, s_cris_loc): Ditto.

	* write.c (write_object_file): Reset broken word state before
	calling relax_seg.

2001-03-31  Alan Modra  <alan@linuxcare.com.au>

	* listing.c (listing_listing): Enable listing on EDICT_NOLIST_NEXT
	for one line if not already enabled.
	* cond.c (s_elseif): Correct conditional assembly listing.
	(s_else): Likewise.

	* cond.c (s_endif): Correct handling of "if .. elseif .." trees.
	Don't abort on NULL current_cframe.

2001-03-30  Alan Modra  <alan@linuxcare.com.au>

	* dwarf2dbg.c (dwarf2_directive_file): Fix warnings.
	(dwarf2dbg_convert_frag): Pass `finalize_syms' to resolve_symbol_value.
	* config/obj-aout.c (obj_crawl_symbol_chain): Likewise.
	* config/obj-bout.c (obj_crawl_symbol_chain): Likewise.
	* config/obj-coff.c (do_relocs_for): Likewise.
	(yank_symbols): Likewise.
	(fixup_segment): Likewise.
	* config/tc-ppc.c (ppc_frob_symbol): Likewise.
	(ppc_fix_adjustable): Likewise.
	* config/tc-mips.c (md_convert_frag): Likewise.
	* config/obj-vms.c (obj_crawl_symbol_chain): Likewise.
	* ehopt.c (eh_frame_convert_frag): Likewise.
	* expr.c (make_expr_symbol): Likewise.

	* frags.h (struct frag): Add last_fr_address.  Reorder fields for
	better packing.
	* symbols.c (resolve_symbol_value): Don't fix expression values
	until relaxation is complete.
	(resolve_local_symbol): Pass `finalize_syms' to resolve_symbol_value.
	(S_GET_VALUE): Likewise, and return unresolved expression value.
	* write.c (finalize_syms): New.
	(relax_and_size_seg): Split into..
	(relax_seg): New function, returns 1 if anything changed..
	(size_seg): And the remainder of relax_and_size_seg.
	(fixup_segment): Arrange for final resolution of sym values.
	(adjust_reloc_syms): Likewise.
	(write_object_file): Likewise, and repeatedly call relax_seg until
	nothing more changes.
	(relax_segment): Return 1 if anything changed.  Use correct types
	for rs_org `target' and `after'.
	* write.h (finalize_syms): Declare.
	(relax_segment): Update prototype.

	* config/tc-sh.c (md_estimate_size_before_relax): Add extra
	do-nothing cases to switch to avoid abort on a second relaxation
	pass, and tidy code a little.
	* config/tc-cris.c (md_estimate_size_before_relax): Likewise.
	* config/tc-h8500.c (md_estimate_size_before_relax): Likewise.
	* config/tc-w65.c (md_estimate_size_before_relax): Likewise.
	* config/tc-i386.c (UNCOND_JUMP, COND_JUMP, COND_JUMP86): Decrement.
	(md_relax_table): Remove first four unused entries.  Increment
	rlx_length by one throughout table, and update comments to suit.
	(md_estimate_size_before_relax): Return size of current variable
	part of frag to reflect reality when relaxing more than once.
	* config/tc-mcore.c (COND12, UNCD12): Rename to DISP12 throughout.
	(COND32, UNCD32): Rename to DISP32 throughout.
	(UNDEF_WORD_DISP): Renumber to 3.
	(md_estimate_size_before_relax): Add extra do-nothing cases.
	* config/tc-mn10200.c (md_estimate_size_before_relax): Rewrite.
	* config/tc-mn10300.c (md_estimate_size_before_relax): Rewrite.
	* config/tc-ns32k.c (md_estimate_size_before_relax): Add cases to
	handle word and dword branches.

2001-03-29  Hans-Peter Nilsson  <hp@axis.com>

	* config/tc-cris.h (tc_fix_adjustable): Allow only
	BFD_RELOC_CRIS_32_GOTREL of the PIC relocs.
	* config/tc-cris.c (cris_get_pic_suffix): Correct reloc type in
	example in comment to valid type.

2001-03-28  H.J. Lu  <hjl@gnu.org>

	* read.c (equals): Set to local for COFF only if it hasn't been
	defined before.

2001-03-28  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.c (DEFAULT_LEVEL): Define.
	(md_begin): Use it when setting default architecture.

2001-03-27  Nick Papadonis  <nick@coelacanth.com>

	* read.c (equals): (for COFF) default symbols to being local.

2001-03-27  Hans-Peter Nilsson  <hp@axis.com>

	* configure.in (cris-*-*): Change default emulation to criself.
	(cris-*-*aout*): New rule.
	* configure: Regenerate.

2001-03-26  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* config/tc-s390.c (tc_s390_fix_adjustable): Add test for
	BFD_RELOC_390_GOTENT.
	* config/tc-s390.h (TC_RELOC_RTSYM_LOC_FIXUP): Add test for
	BFD_RELOC_390_GOTENT.

2001-03-26  Nick Clifton  <nickc@redhat.com>

	* config/tc-s390.h (TC_FORCE_RELOCATION): Define.
	* config/tc-s390.c (s390_force_relocation): New function: Force
	relocations for VTINHERIT relocs.

2001-03-23  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* doc/as.texinfo: Put @c man begin to generate the as man page.
	When generating man, define all the variables. Re-organize some
	options to obtain better indentation of man page.
	* doc/Makefile.am (MANCONF, TEXI2POD, POD2MAN): New variable.
	(as.1): Build from as.texinfo.
	* doc/Makefile.in: Regenerate.Index: binutils/Makefile.am

2001-03-25  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-i386.c (i386_scale): Accept an absolute expression for
	scale factor, and return the end of the expression.
	(i386_operand): Modify for above.

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

	* doc/as.texinfo: Document --listing-XXX command line switches.
	Explain why listings behave differently when -pipe is used.

2001-03-23  Richard Sandiford  <rsandifo@redhat.com>

	* write.c (fix_new_exp): Print an error if passed a register.

2001-03-23  Hans-Peter Nilsson  <hp@axis.com>

	* config/tc-cris.c: Tweak attribution.  Fix typos.  PIC support.
	(PIC_SUFFIX_CHAR): New macro.
	(cris_get_pic_suffix, cris_get_pic_reloc_size): New functions.
	(pic): New variable.
	(md_longopts): New option --pic.
	(OPTION_PIC): Define.
	(md_estimate_size_before_relax): Tweak longish comment.
	(md_create_long_jump): Make the long jumps generate ADD.D offset,PC.
	(md_assemble): Handle a PIC relocation on prefix and normal
	instruction operands.
	<output_instruction.insn_type == CRIS_INSN_BRANCH>: Handle
	"complex" operand expressions.  Call frag_more outside
	gen_cond_branch_32 parameter list.
	(cris_process_instruction): Handle PIC relocs on parsed
	operand expressions.  Validize PIC reloc sizes.
	(get_autoinc_prefix_or_indir_op): Handle PIC suffix.
	(gen_bdap): Handle "complex" operand expressions.
	(gen_cond_branch_32): Use as_warn_where, not as_warn.  Use
	ADD.D offset,PC as jump instruction if generating PIC.  Generate
	error instead of crashing on complex expressions.
	(cris_number_to_imm): Add segT parameter.  All callers changed.
	Use segT parameter, not now_seg, for segment of fixup.  Handle
	PCREL relocations but check that they are fully resolved.
	(md_parse_option): Handle OPTION_PIC.
	(tc_gen_reloc): Handle PIC relocs.
	(md_show_usage): Update for --pic.
	(md_apply_fix3): Renamed from md_apply_fix.
	(md_pcrel_from): Accept emitting PCREL relocs when ELF.
	(md_cris_force_relocation): Force relocation for PIC relocs.

	* config/tc-cris.h: Tweak attribution.
	(MD_APPLY_FIX3): Define.
	(IS_CRIS_PIC_RELOC): New macro.
	(TC_RELOC_RTSYM_LOC_FIXUP): Define.
	(tc_fix_adjustable): Don't adjust a globally visible symbol when
	generating ELF.
	(tc_frob_symbol): Avoid emitting undefined symbols.

2001-03-20  Alan Modra  <alan@linuxcare.com.au>

	* frags.h (struct frag): Add relax_marker.
	* write.c (is_dnrange): Delete.
	(relax_frag): Use correct types for `aim', `target', `address'.
	Delete `offset', `was_address'.  Test `relax_marker' instead of
	using fragile (and slow) address test.
	(relax_segment): Init and flip `relax_marker'.

2001-03-19  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-i386.c (md_assemble <REGISTER_WARNINGS>): Correct
	used register name.

2001-03-18  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/tc-m68hc11.c (md_pseudo_table): Recognize xrefb to comply
	with 'Motorola specification for assembly language input standard'.

2001-03-17  Richard Henderson  <rth@redhat.com>

	* dwarf2dbg.c (user_filenum, user_filenum_allocated): Remove.
	(dwarf2_directive_loc): Don't use them.
	(dwarf2_directive_file): Reject duplicate file definitions.
	(get_filenum): Zero allocated memory.
	(out_file_list): Complain about missing file definitions.

2001-03-17  Alan Modra  <alan@linuxcare.com.au>

	* read.c (do_org): Handle complex expressions.
	* cgen.c (gas_cgen_finish_insn): Likewise.

2001-03-15  David Mosberger  <davidm@hpl.hp.com>

	* config/tc-ia64.c (md): New member keep_pending_output.
	(ia64_flush_pending_output): Flush only if md.keep_pending_output
	is not set.
	(dot_xdata): Turn on md.keep_pending_output for the duration of
	this function.
	(dot_xfloat_cons): Ditto.
	(dot_xstringer): Ditto.
	(dot_xdata_ua): Ditto.
	(dot_xfloat_cons_ua): Ditto.

2001-03-15  Jim Wilson  <wilson@redhat.com>

	* config/tc-ia64.c (ia64_unrecognized_line, case '['): Add local
	label support.

2001-03-15  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-sh.c (parse_reg): Match capital MACH and MACL.

2001-03-15  DJ Delorie  <dj@redhat.com>

	* stabs.c (s_stab_generic): Don't corrupt the notes obstack by
	blindly freeing string if it isn't at the top of the obstack.

2001-03-13  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-i386.c (RELOC_ENUM): Define.  Use throughout file.
	(NUM_FLAG_CODE): Define.
	(lex_got): New function.
	(got_reloc): New global var.
	(x86_cons_fix_new): New function.
	(x86_cons): New function.
	(i386_immediate): Use lex_got here, replacing inline code.  Change
	"ignoring junk.." error message to "junk.."
	(i386_displacement): Likewise.
	* config/tc-i386.h (TC_PARSE_CONS_EXPRESSION): Define.
	(x86_cons): Declare.
	(TC_CONS_FIX_NEW): Define.
	(x86_cons_fix_new): Declare.

2001-03-12  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.c (md_begin): Always set machine type based on
	cpu_variant.

2001-03-07  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-i386.c (struct _i386_insn): Rename disp_reloc to reloc.
	(md_assemble) <smallest displacement>: Use correct field of i.op[]
	union.
	<JumpInterSegment output>: Use correct i.disp_reloc[].
	<immediate output>: Likewise.

2001-03-06  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.c (md_apply_fix3): Clear bit zero of offset in
	BLX(1) instruction.

2001-03-06  Igor Shevlyakov  <igor@windriver.com>

	* config/tc-m68k.c : Add 5407 to archs[] table.
	(HAVE_LONG_BRANCH): Add mcf5407.
	(select_control_regs): Recognize 5407.

2001-03-02  Dave Brolley  <brolley@redhat.com>

	* config/tc-m32r.c (expand_debug_syms): Call frag_align_code rather
	than m32r_do_align.

2001-03-02  Richard Sandiford  <rsandifo@redhat.com>

	* config/atof-ieee.c (TC_LARGEST_EXPONENT_IS_NORMAL): New macro.
	(gen_to_words): Print warnings if NaNs are found and the target CPU
	does not support them.  Allow largest exponent to be used in normal
	numbers if TC_LARGEST_EXPONENT_IS_NORMAL evaluates to true.

2001-02-28  Andreas Jaeger  <aj@suse.de>, Bo Thorsen  <bo@suse.de>

	* config/tc-i386.c (tc_gen_reloc): Remove ugly hack which is not needed
	anymore since we use bfd_elf_generic_reloc now.
	(md_apply_fix3): Only apply hack for partial_inplace if not using RELA.

2001-02-27  Alan Modra  <alan@linuxcare.com.au>

	* configure.in (BFD_VERSION): New.
	(AM_INIT_AUTOMAKE): Use $BFD_VERSION.
	* configure: Regenerate.
	* Makefile.am: Run "make dep-am"
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.

2001-02-26  Mark Elbrecht  <snowball3@bigfoot.com>

	* config/obj-coff.c [BFD_ASSEMBLER] (obj_coff_section): Set
	SEC_NEVER_LOAD when the 'n' flag is used.
	Add SEC_NEVER_LOAD to matchflags.

2001-02-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* symbols.c (decode_local_label_name): Initialize message_format
	only when an error is reported (perf pb due to I18N).

2001-02-23  H.J. Lu  <hjl@gnu.org>

	* dwarf2dbg.c (dwarf2_directive_file): Call s_app_file (0) if
	BFD_ASSEMBLER is not defined.

2001-02-23  Richard Sandiford  <rsandifo@redhat.com>

	* config/tc-mn10300.c (md_apply_fix3): Don't mark a fixup as
	done if it's against a symbol.

2001-02-22  Timothy Wall  <twall@cygnus.com>

	* config/tc-ia64.c (ia64_target_format): Return ia64-aix-specific
	target formats if applicable.
	* config/te-ia64aix.h: New.  Configuration for AIX5 on IA-64.
	* Makefile.am (TARG_ENV_HFILES): Added config/te-ia64aix.h.
	* Makefile.in: Regenerated.
	* configure.in: Added configuration for ia64-*-aix*.
	* configure: Regenerated.

2001-02-21  David Mosberger  <davidm@hpl.hp.com>

	* config/tc-ia64.c (enum operand_match_result): New type.
	(operand_match): Change return type to operand_match_result.
	Fix all returns appropriately, adding support for returning the
	out-of-range result.
	(parse_operands): New locals result, error_pos, out_of_range_pos,
	curr_out_of_range_pos.  Rewrite operand matching loop to give better
	error messages.

2001-02-21  David Mosberger  <davidm@hpl.hp.com>

	* config/tc-ia64.c (struct unwind): Add member "prologue_count".
	(dot_proc): Clear unwind.prologue_count to zero.
	(dot_prologue): Increment unwind.prologue_count.
	(dot_restore): If second operand is omitted, use
	unwind.prologue_count -1 for "ecount" (# of additional regions to
	pop).  Decrement unwind.prologue_count by number of regions
	popped.

2001-02-21  Nick Clifton  <nickc@redhat.com>

	* doc/as.texinfo (Section): Note that some flags to the COFF
	version of .section remove attributes rather than setting them.

2001-02-20  Kazu Hirata  <kazu@hxi.com>

	* config/tc-pdp11.c: Fix formatting.
	* config/tc-pdp11.h: Likewise.

2001-02-20  Bo Thorsen  <bo@suse.de>

	* config/tc-i386.c (tc_i386_fix_adjustable): Fix GOTPCREL GOT
	entry.

2001-02-18  David O'Brien  <obrien@FreeBSD.org>

	* configure.in (cpu_type, arch): Add a generic FreeBSD specification as
	all FreeBSD platforms should look the same at this level.
	* configure: Rebuilt.
	* config/tc-i386.c: Add support for old FreeBSD a.out hosts.

2001-02-18  lars brinkhoff  <lars@nocrew.org>

	* Makefile.am: Add PDP-11 target.
	* configure.in: Likewise.
	* config/tc-pdp11.c: New file.
	* config/tc-pdp11.h: New file.
	* doc/Makefile.am: Add PDP-11 documentation.
	* doc/all.texi: Likewise.
	* doc/as.texinfo: Likewise.
	* doc/c-pdp11.texi: New file.

2001-02-16  matthew green  <mrg@redhat.com>

	* cgen.c (gas_cgen_md_apply_fix3): Support BFD_RELOC_64.

2001-02-13  Jim Wilson  <wilson@redhat.com>

	* config/tc-ia64.c (operand_match, case TAG13): Make a BFD_RELOC_UNUSED
	reloc instead of a 0 reloc.
	(md_apply_fix3): Check for BFD_RELOC_UNUSED instead of 0, and mark it
	as done.
	* config/tc-ia64.h (TC_RELOC_RTSYM_LOC_FIXUP): Likewise.

2001-02-13  Ian Lance Taylor  <ian@zembu.com>

	* write.c (is_dnrange): Stop as soon as the address becomes
	larger.
	(relax_frag): Add segment parameter.  Only call symbol_get_frag
	once.  Only call is_dnrange if the symbol is in the same segment,
	and the symbol address is larger.
	(relax_segment): Pass segment to md_relax_frag and relax_frag.
	* write.h (relax_frag): Update declaration.
	* config/tc-fr30.c (fr30_relax_frag): Add segment parameter.  Pass
	it to relax_frag.
	* config/tc-m32r.c (m32r_relax_frag): Likewise.
	* config/tc-m32r.h (md_relax_frag): Add segment parameter.
	(m32r_relax_frag): Update declaration.
	* config/tc-mips.h (md_relax_frag): Add segment parameter.
	* config/tc-tic54x.h (md_relax_frag): Likewise.
	* doc/internals.texi (CPU backend): Update documentation for
	md_relax_frag.

2001-02-13  Alan Modra  <alan@linuxcare.com.au>

	* doc/c-i386.texi (i386-Arch): Add "jumps"/"nojumps" blurb.
	Mention effect of < 386 architectures on jump promotion.
	(i386-Jumps): xref above.  Don't assume long disp is 32 bits.

	* config/tc-i386.c (no_cond_jump_promotion): New.
	(set_cpu_arch): Parse "jumps" arch modifier.
	(insn_size): Modify usage comment.
	(ENCODE_RELAX_STATE): Reformat and protect macro arg.
	(SIZE_FROM_RELAX_STATE): Rename to DISP_SIZE_FROM_RELAX_STATE.
	(TYPE_FROM_RELAX_STATE): New define.
	(UNCOND_JUMP, COND_JUMP): Renumber.
	(md_relax_table): Reorder to suit.
	(COND_JUMP86): New define.
	(md_relax_table): Handle COND_JUMP86 cases. Add a few comments.
	(md_assemble): Create frag var for jumps of max size, encode relax
	state for COND_JUMP86.
	(md_estimate_size_before_relax): Handle COND_JUMP86 cases, and
	leave conditional jumps small if no_cond_jump_promotion.
	(md_convert_frag): Likewise.

	* expr.c (operator): Don't bump input_line_pointer for two char
	operators.  Instead return operator size via new param num_chars.
	(expr): Use above to parse multi-char operators correctly.

2001-02-12  Jan Hubicka  <jh@suse.cz>

	* config/tc-i386.c (i386_displacement): Fix handling of
	BFD_RELOC_X86_64_GOTPCREL.
	(i386_validate_fix): Likewise.

2001-02-12  Philip Blundell  <pb@futuretv.com>

	* config/tc-arm.c (do_ldst): Improve warnings for unpredictable
	ldrt/strt instructions.

2001-02-11  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* config/tc-mips.c (macro): For M_LA_AB emit a
	BFD_RELOC_MIPS_CALL16 relocation or a
	BFD_RELOC_MIPS_CALL_HI16/BFD_RELOC_MIPS_CALL_LO16 pair instead of
	BFD_RELOC_MIPS_GOT16 and
	BFD_RELOC_MIPS_GOT_HI16/BFD_RELOC_MIPS_GOT_LO16, respectively for
	loading the jump register when generating SVR4_PIC code.

2001-02-10  Chris Demetriou  <cgd@broadcom.com>

	* configure.in: Make 'mipself' and 'mipsecoff' emulations
	map to MIPS-specific files, as they used to do before the
	change on 2000-05-21.
	* configure: Regerate.

2001-02-10  Chris Demetriou  <cgd@broadcom.com>

	* config/tc-mips.c (md_parse_option): Don't try to compile
	ELF-only option code if not ELF.

2001-02-08  David Mosberger  <davidm@hpl.hp.com>

	* config/tc-ia64.h (md_elf_section_type): New macro.
	(ELF_TC_SPECIAL_SECTIONS): Drop .IA_64.unwind and .IA_64.unwind_info
	(they're now handled via ia64_elf_section_type.

	* config/tc-ia64.c (unwind): New members saved_text_seg,
	saved_text_subseg, and force_unwind_entry.
	(optimize_unw_records): New function to optimize away unnecessary
	unwind directives.
	(ia64_elf_section_type): New function.
	(output_unw_records): Generate unwind info only if the size is
	non-zero or if it's forced for some other reason (e.g.,
	handlerdata or a personality routine).
	(generate_unwind_image): Don't switch back to previous
	section---stay inside the unwind info section instead so that
	handlerdata that may follow goes into the right place.
	(dot_handlerdata): Force generation of unwind entry and save the
	current active text segment before generating unwind image.
	(dot_unwentry): Force generation of unwind entry.
	(dot_personality): Ditto.
	(dot_endp): Generate unwind table entry only if there is
	some unwind info or the unwind entry was forced.

	* config/tc-ia64.c (make_unw_section_name): New macro to form
	unwind section name.
	(generate_unwind_image): Add "text_name" argument.  Use it to
	form unwind section name.
	(dot_handlerdata): Determine current segment (section) name and
	pass it to generate_unwind_image().
	(dot_endp): Determine current segment (section) name and use
	it to determine the appropriate unwind section name.
	(ia64_md_do_align): Add missing ATTRIBUTE_UNUSED declarations to
	n, fill, and max arguments.

2001-02-09  Schwidefsky  <schwidefsky@de.ibm.com>

	* Makefile.am: Add linux target for S/390.
	* configure.in: Likewise.
	* config/tc-s390.c: New file.
	* config/tc-s390.h: New file.

2001-02-09  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-sh.c (md_pseudo_table): Add uaquad.  Use s_uacons for
	2byte, 4byte and 8byte.

2001-02-08  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.c (pa_build_unwind_subspace): Don't call
	md_number_to_chars with size > sizeof (valueT).

2001-02-06  H.J. Lu  <hjl@gnu.org>

	* config/tc-ia64.h (TC_RELOC_RTSYM_LOC_FIXUP): Do fixup if
	there is no relocation.

2001-02-06  H.J. Lu  <hjl@gnu.org>

	* config/tc-ia64.h (TC_RELOC_RTSYM_LOC_FIXUP): New. Defined.

	* config/tc-ia64.c (md_parse_option): Only accept the valid
	ia64 options on "-axxx".

2001-02-05  Jim Wilson  <wilson@redhat.com>

	* config/tc-ia64.c (errata_nop_necessary_p): Return 0 instead of
	aborting for invalid operands.

2001-02-06  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.c (fix_new_hppa): Pass in unwind directly rather
	than via pointer.  Update all callers.
	(UNWIND_LOW32): Define.
	(UNWIND_HIGH32): Define.
	(pa_build_unwind_subspace): Use the above macros instead of dumping
	bitfields directly.  Call frag_more once rather than multiple times.
	(md_assemble): Use UNWIND_LOW32.
	(pa_entry): Likewise
	(pa_procend): Likewise.
	(process_exit): Use UNWIND_HIGH32.

2001-02-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/tc-m68hc11.h (LISTING_HEADER): Use m68hc11_listing_header
	function to select the header according to the cpu.
	(md_after_pass_hook, md_do_align): Remove.
	(md_cleanup, m68hc11_cleanup): Remove.
	(md_pcrel_from_section): Declare.
	* config/tc-m68hc11.c (build_dbranch_insn): Remove insn_size.
	(build_jump_insn, build_insn): Likewise.
	(m68hc11_listing_header): New function.
	(m68hc11_cleanup): Remove.

2001-02-02  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/tc-m68hc11.c (relaxable_symbol): Relax externally visible
	symbols because there is no support for shared libraries and these
	symbols can't be overridden (unless they are weak).

2001-02-01  Momchil Velikov  <velco@fadata.bg>

	* dwarf2dbg.c (out_debug_abbrev): Terminate the abbreviations
	for the compilation unit with a zero byte.

2001-01-30  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.c (pa_ip): Support 12 bit branches to absolute
	destinations.  Correct range check for 17 and 22 bit branches.

2001-01-25  Nick Clifton  <nickc@redhat.com>

	* config/tc-m68k.c (tc_gen_reloc): Do not abort if tcbit is
	still set.  Issue an error message instead.
	(md_estimate_size_before_relax): Delete unused variable
	'buffer_address'.  Fixup parentheses around if statement.

2001-01-23  Kazu Hirata  <kazu@hxi.com>

	* as.c: Fix formatting.
	* ehopt.c: Likewise.
	* messages.c: Likewise.
	* stabs.c: Likewise.
	* symbols.c: Likewise.

2001-01-23  Ben Elliston  <bje@redhat.com>

	* config/tc-m32r.c (m32r_handle_align): Declare type of fragp.

2001-01-22  Kazu Hirata  <kazu@hxi.com>

	* config/tc-alpha.c: Fix formatting.

2001-01-19  Kazu Hirata  <kazu@hxi.com>

	* config/tc-alpha.c: Fix formatting.

2001-01-18  Kazu Hirata  <kazu@hxi.com>

	* config/tc-alpha.c: Fix formatting.

2001-01-18  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.c (ldm_flags): Remove redundant bit from "fa" and
	"da" flags.
	(stm_flags): Remove redundant bit from "ed" and	"da" flags.

2001-01-18  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (cpu_type, arch): Match i386 too.
	* configure: Rebuilt.

2001-01-16  Kazu Hirata  <kazu@hxi.com>

	* config/tc-i386.c: Fix formatting.

2001-01-16  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.c (tc_gen_reloc): Use SEGREL32 instead of DIR32
	relocs for .PARISC.unwind section.

	* config/tc-hppa.c (pa_build_unwind_subspace): Build unwind
	depending on section flags, not just for .text.

2001-01-15  Jim Wilson  <wilson@redhat.com>

	* config/tc-ia64.c (ia64_flush_insns): Handle unwind directives
	not immediately followed by an instruction.

2001-01-15  Kazu Hirata  <kazu@hxi.com>

	* config/tc-m68hc11.c: Fix formatting.

2001-01-15  Nick Clifton  <nickc@redhat.com>

	* symbols.c (colon): Change 'already defined symbol' from a
	fatal error to an ordinary error.  There is no reason why this
	error should be fatal.

	* message.c (as_fatal): Delete output file, if one has been
	created.

2001-01-14  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.h (TARGET_FORMAT): Add hppa-linux variants.

2001-01-14  Kazu Hirata  <kazu@hxi.com>

	* config/tc-alpha.c: Fix formatting.
	* config/tc-arc.c: Likewise.
	* config/tc-arc.h: Likewise.
	* config/tc-d10v.c: Likewise.
	* config/tc-i370.c: Likewise.
	* config/tc-i386.c: Likewise.
	* config/tc-i960.c: Likewise.
	* config/tc-m68k.c: Likewise.
	* config/tc-ppc.c: Likewise.
	* config/tc-sparc.c: Likewise.
	* config/tc-tahoe.c: Likewise.
	* config/tc-vax.c: Likewise.

	* config/tc-arc.c: Fix formatting.

	* config/tc-arc.c: Fix formatting.

2001-01-14  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.c (pa_build_unwind_subspace): Use SEGREL32 for
	both 32 and 64 bit ELF.

	* config/tc-hppa.c (pa_ip): Store `a' flag in bit zero of operand
	and don't bother storing `m' for "ce" completer.  Tidy handling of
	'J' and 'K' operands to suit.  Handle '<' and '>' operands.

2001-01-14  Jan Hubicka  <jh@suse.cz>

	* config/tc-i386.h (TARGET_MACH): New macro.
	(i386_mach): Declare.
	* config/tc-i386.c (i386_mach): New function.

2001-01-13  Philip Blundell  <philb@gnu.org>

	* doc/as.texinfo: Fix spelling and cross-references.

	* doc/c-arm.texi: Fix typos.  Say that `;' is a line separator
	character for all systems, not just GNU/Linux.  Make it explicit
	that `-k' doesn't affect code generation, just ELF flags.

2001-01-13  Jan Hubicka <jh@suse.cz>

	* config/tc-i386.c (md_assemble): Check cpu_flags even for nullary
	instructions.

2001-01-12  Frank Ch. Eigler  <fche@redhat.com>

	* cgen.c (gas_cgen_finish_insn): Call dwarf2_emit_insn.

2001-01-12  Nick Clifton  <nickc@redhat.com>

	* as.c (print_args): Update copyright date to 2001.

2001-01-12  Peter Targett  <peter.targett@arccores.com>

	* doc/c-arc.texi: New file.
	Some sections to be expanded.

2001-01-12  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-i386.c (md_longopts): Recognize "--64" only for ELF.
	(md_parse_option): Always accept "--32".

2001-01-11  Peter Targett  <peter.targett@arccores.com>

	* as.h (TC_ARC): Ensure struc-symbol.h included.
	* as.c (dwarf2dbg.h): Include to remove implicit declaration
	warnings.
	* struc-symbol.h (SYMBOLS_NEED_BACKPOINTERS): Define.
	(TARGET_SYMBOL_FIELDS) added.

	* doc/Makefile.am (CPU_DOCS): Added c-arc.texi.
	* doc/c-arc.texi: New file.
	Some sections to be expanded.
	* doc/as.texinfo: Update command-line options.
	Removed outdated text for ARC dependant features, instead include
	text from above file.

	* config/obj-elf.h (ELF_TARGET_SYMBOL_FIELDS): Define local flag.
	(TARGET_SYMBOL_FIELDS): Alias to previous definition.
	(targ-cpu.h) header.
	* config/tc-arc.h:
	* config/tc-arc.c: New updated configuration for
	ARC, including selection of core variants, and extensibility of
	instructions, registers etc. through directives.

	* config/tc-arc.c (arc_extinst): Minor corrections for
	error messages.
	(arc_common) Likewise. Make alignment argument optional for local
	symbols also, with default of zero.

2001-01-11  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/tc-m68hc11.c (md_estimate_size_before_relax): Fix
	STATE_INDEXED_OFFSET when the symbol is undefined (16-bit offset).
	(build_indexed_byte): Don't relax indexed byte, use 16-bit offset
	and fix_new_exp() instead.
	(md_convert_frag): For indexed post byte use the symbol value
	rather than the displacement.
	(md_relax_table): Fix indexed offset relax.

2001-01-11  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/tc-m68hc11.c (md_estimate_size_before_relax):Don't
	relax weak symbols.
	(relaxable_symbol): New function.

2001-01-11  Andreas Jaeger  <aj@suse.de>

	* config/tc-i386.h (TC_RELOC_GLOBAL_OFFSET_TABLE): Removed, it's
	not used anywhere.

2001-01-10  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.c (arm_fix_adjustable): Define for OBJ_COFF.
	* config/tc-arm.h (obj_fix_adjustable): Define for OBJ_COFF

2001-01-10  Nick Clifton  <nickc@redhat.com>

	* symbols.c (DOLLAR_LABEL_CHAR): New constant - the magic
	character used to dollar local symbols.
	(LOCAL_LABEL_CHAR): New constant - the magic character used to
	local label symbols.
	(dollar_label_name): Use DOLLAR_LABEL_CHAR.
	(fb_label_name): Prefix local labels with LOCAL_LABEL_PREFIX,
	if defined.
	Use LOCAL_LABEL_CHAR.
	(decode_local_label_name): Skip LOCAL_LABEL_PREFIX.
	Use DOLLAR_LABEL_CHAR and LOCAL_LABEL_CHAR.
	(S_IS_LOCAL): Use DOLLAR_LABEL_CHAR and LOCAL_LABEL_CHAR.

2001-01-08  Bo Thorsen  <bo@suse.de>

	* config/tc-i386.c (i386_immediate, i386_displacement):
	GOTPCREL check fix.

2001-01-07  Ian Lance Taylor  <ian@zembu.com>

	* doc/c-i386.texi (i386-Arch): Remove spaces incorrectly inserted
	in last change.

2001-01-07  Philip Blundell  <philb@gnu.org>

	* doc/as.texinfo (Bug Reporting): Update email address for
	reports.
	* README: Likewise.

2001-01-06  Jan Hubicka  <jh@suse.cz>

	* configure.in: Define DEFAULT_ARCH for i386.
	* config/tc-i386.c (md_assemble): Return after the error message;
	move testing for 64bit operands to proper place.

2001-01-06  Jan Hubicka <jh@suse.cz>, Andreas Jaeger  <aj@suse.de>

	* doc/as.texinfo: Document '#' as comment character for i386 and
	x86_64. Add AMD x86-64 into menu of machine dependent information.

	* doc/c-i386.texi: Document x86_64 extensions.

2001-01-05  Jan Hubicka  <jh@suse.cz>

	* config/tc-i386.c (md_assemble): Handle third byte of the opcode as prefix.

2001-01-04  Jan Hubicka  <jh@suse.cz>

	* config/tc-i386.c (cpu_arch): Add Pentium4 and modify sledgehammer entry.
	* NEWS: Add note about Pentium4 support.

2001-01-04  Jan Hubicka  <jh@suse.cz>

	* config/tc-i387.c (pi, pte, pt): Update.
	(type_names): Add new types.

2001-01-03  Jan Hubicka  <jh@suse.cz>

	* config/tc-i386.h (CpuK6, CpuAthlon, CpuSledgehammer, CpuMMX, Cpu3dnow,
	CpuUnknown): Renumber
	(CpuP4, CpuSSE2): New.
	(CpuUnknownFlags): Add CpuP4 and CpuSSE2

2001-01-03  Philip Blundell  <pb@futuretv.com>

	* config/tc-alpha.c (alpha_force_relocation): Handle vtable
	relocs.
	(alpha_fix_adjustable): Likewise.
	(md_apply_fix): Likewise.

2000-12-31  H.J. Lu  <hjl@gnu.org>

	* listing.c (listing_message): Allocate string only if it is
	used.

	* configure: Rebuild.

2000-12-31  Hans-Peter Nilsson  <hp@bitrange.com>

	* doc/internals.texi (Relaxing with a table) <after relaxation>:
	Point out caveats with generating fixups for the opcode in a frag.

2000-12-30  Jan Hubicka  <jh@suse.cz>

	* configure.in: Add support for x86_64 and x86_64-*-linux-gnu*
	* NEWS: Add x86_64.

2000-12-29  H.J. Lu  <hjl@gnu.org>

	* listing.c (calc_hex): Print the variable part only if the
	fragment type is rs_fill.

2000-12-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* doc/internals.texi (tc_conditional_pseudoop,
	TC_LINKRELAX_FIXUP): Fix typos.

2000-12-28  Richard Henderson  <rth@redhat.com>

	* write.c (subsegs_finish): Fix thinko last change -- don't
	"optimize" the alignment == 0 case.

2000-12-28  Richard Henderson  <rth@redhat.com>

	* as.h (rs_align_test): New.
	* frags.c (NOP_OPCODE): Move default from read.c.
	(MAX_MEM_FOR_RS_ALIGN_CODE): New default.
	(frag_align_code): New.
	* frags.h (frag_align_code): Declare.
	* read.c (NOP_OPCODE): Remove.
	(do_align): Use frag_align_code.
	* write.c (NOP_OPCODE): Remove.
	(get_recorded_alignment): New.
	(cvt_frag_to_fill): Handle rs_align_test.
	(relax_segment): Likewise.
	(subsegs_finish): Align last subseg in section to the
	section alignment.  Use frag_align_code.
	* write.h (get_recorded_alignment): Declare.
	* config/obj-coff.c (size_section): Handle rs_align_test.
	(fill_section, fixup_mdeps): Likewise.
	(write_object_file): Use frag_align_code.

	* config/tc-alpha.c (alpha_align): Use frag_align_code.
	(alpha_handle_align): New.
	* config/tc-alpha.h (HANDLE_ALIGN): New.
	(MAX_MEM_FOR_RS_ALIGN_CODE): New.

	* config/tc-i386.h (md_do_align): Use frag_align_code.
	(MAX_MEM_FOR_RS_ALIGN_CODE): New.

	* config/tc-ia64.c (ia64_md_do_align): Don't do code alignment.
	(ia64_handle_align): New.
	* config/tc-ia64.h (HANDLE_ALIGN): New.
	(MAX_MEM_FOR_RS_ALIGN_CODE): New.

	* config/tc-m32r.c (m32r_do_align): Remove.
	(m32r_handle_align): New.
	(fill_insn): Use frag_align_code.
	* config/tc-m32r.h (md_do_align): Remove.
	(HANDLE_ALIGN, MAX_MEM_FOR_RS_ALIGN_CODE): New.
	* config/tc-m88k.c, config/tc-m88k.h: Similarly.
	* config/tc-mips.c, config/tc-mips.h: Similarly.

	* config/tc-sh.c (sh_cons_align): Use rs_align_test.
	(sh_handle_align): Likewise.  Handle rs_align_code.
	(sh_do_align): Remove.
	* config/tc-sh.h (md_do_align): Remove.
	(MAX_MEM_FOR_RS_ALIGN_CODE): New.

	* config/tc-sparc.c (sparc_cons_align): Use rs_align_test.
	(sparc_handle_align): Likewise.  Handle rs_align_code.
	* config/tc-sparc.h (md_do_align): Remove.
	(MAX_MEM_FOR_RS_ALIGN_CODE): New.

2000-12-22  DJ Delorie  <dj@redhat.com>

	* config/tc-d10v.c (md_assemble): set prev_seg and prev_subseg
	when we assemble the first half of a pair.

2000-12-22  H.J. Lu  <hjl@gnu.org>

	* config/tc-i386.c (reloc): Update the macro for non-bfd
	assembler.
	(BFD_RELOC_X86_64_GOTPCREL): Set to 0 for non-bfd assembler.

2000-12-22  H.J. Lu  <hjl@gnu.org>

	* dwarf2dbg.c (dwarf2_finish): Remove #if BFD_ASSEMBLER.

2000-12-20  Jan Hubicka  <jh@suse.cz>

	* config/tc-i386.h (i386_target_format): Define even for ELFs.
	(QWORD_MNEM_SUFFIX): New macro.
	(CpuK6,CpuAthlon,CpuSledgehammer, Cpu64, CpuNo64, CpuUnknownFlags):
	New macros
	(CpuMMX,CpuSSE,Cpu3dnow, CpuUnknown): Renumber.
	(IgnoreSize, DefaultSize, No_?Suf, FWait, IsString, regKludge, IsPrefix,
	ImmExt): Renumber.
	(Size64, No_qSuf, NoRex64, Rex64): New macros.
	(Reg64, Imm32S, Imm64, Disp32S, Disp64): New macros.
	(Imm8, Imm8S, Imm16, Imm32, Imm1, BaseIndex, Disp8, Disp16, Disp32,
	InOutPortReg,ShiftCount, Control, Debug, Test, FloatReg, FloatAcc,
	SReg2, SReg3, Acc, JumpAbsolute, RegMMX, RegXMM, EsSeg, InvMem):
	Renumber.
	(Reg, WordReg): Add Reg64.
	(Imm): Add Imm32S and Imm64.
	(EncImm): New.
	(Disp): Add Disp64 and Disp32S.
	(AnyMem): Add Disp32S.
	(RegRex, RegRex64): New macros.
	(rex_byte): New type.
	* config/tc-i386.c (set_16bit_code_flag): Kill.
	(fits_in_unsigned_long, fits_in_signed_long): New functions.
	(reloc): New parameter "signed"; support x86_64.
	(set_code_flag): New.
	(DEFAULT_ARCH): New macro; default to "i386".
	(default_arch): New static variable.
	(struct _i386_insn): New fields Operand_PCrel; rex.
	(flag_16bit_code): Kill; All tests replaced to "flag_code == CODE_64BIT"
	(flag_code): New enum and static variable.
	(use_rela_relocations): New static variable.
	(flag_code_names): New static variable.
	(cpu_arch_flags): Default to CpuUnknownFlags|CpuNo64.
	(cpu_arch): Add "sledgehammer"; Add CPUAthlon to Athlon and CpuK6 to
	K6 and Athlon.
	(i386_align_code): Return plain "nop" for x86_64.
	(mode_from_disp_size): Support Disp32S.
	(smallest_imm_type): Support Imm32S and Imm64.
	(offset_in_range): Support size of 8.
	(set_cpu_arch): Do not clobber to Cpu64/CpuNo64.
	(md_pseudo_table): Add "code64"; use set_code_flat.
	(md_begin): Emit sane error message on hash failure.
	(tc_i386_fix_adjustable): Support x86_64 relocations.
	(md_assemble): Support QWORD_MNEM_SUFFIX, REX registers,
	instructions supported on particular arch just partially,
	output of 64bit immediates, handling of Imm32S and Disp32S type.
	(i386_immedaite): Support x86_64 relocations; support 64bit constants.
	(i386_displacement): Likewise.
	(i386_index_check): Cleanup; support 64bit addresses.
	(md_apply_fix3): Support x86_64 relocation and rela.
	(md_longopts): Add "32" and "64".
	(md_parse_option): Add OPTION_32 and OPTION_64.
	(i386_target_format): Call even for ELFs; choose between
	elf64-x86-64 and elf32-i386.
	(i386_validate_fix): Refuse GOTOFF in 64bit mode.
	(tc_gen_reloc): Support rela relocations and x86_64.
	(intel_e09_1): Support QWORD.

2000-12-15  Diego Novillo  <dnovillo@redhat.com>

	* config/tc-i386.c (intel_e09_1): Only flag as a memory operand if
	it's not an offset expression.
	(intel_e10_1): Ditto. Also, if the operand is an offset expression,
	keep the braces '[' and ']' in the output string.
	(intel_e11): Ditto. Also remove comparison intel_parser.op_modifier
	!= FLAT. There is no such op_modifier.

2000-12-14  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* dwarf2dbg.c: If we don't have <limits.h>, try including <sys/param.h>
	if we have it.

2000-12-13  Kazu Hirata  <kazu@hxi.com>

	* as.h: Fix formatting.
	* cgen.h: Likewise.
	* dwarf2dbg.c: Likewise.
	* input-scrub.c: Likewise.
	* read.h: Likewise.

2000-12-13  Mark Elbrecht  <snowball3@bigfoot.com>

	* configure.in (i386-*-msdosdjgpp): Set bfd_gas to yes.
	configure: Regenerate.

2000-12-13  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* dwarf2dbg.c: #include <limits.h> only if it exists.

2000-12-13  Rodney Brown  <RodneyBrown@mynd.com>

	* config/tc-hppa.c (pa_ip): Correct CHECK_FIELD typo.
	(md_apply_fix): Here too.

2000-12-12  Jim Wilson  <wilson@redhat.com>

	* config/tc-ia64.h (ia64_init): Add prototype.

2000-12-12  H.J. Lu  <hjl@gnu.org>

	* dwarf2dbg.c: Enabled only if BFD_ASSEMBLER is defined.

	* read.h (outputting_stabs_line_debug): Change it to int.
	* stabs.c (outputting_stabs_line_debug): Likewise.

2000-12-12  Geoffrey Keating  <geoffk@redhat.com>

	* config/obj-bout.c (obj_crawl_symbol_chain): Don't take
	the address of a function result.

2000-12-12  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* config/tc-ppc.c (md_pseudo_table): Add .file and .loc.
	(md_assemble): Call dwarf2_emit_insn.
	(shlib): Fix typo SHILB -> SHLIB.
	(md_parse_option): Likewise.
	(ppc_elf_validate_fix): Likewise:
	* config/tc-ppc.h (DWARF2_LINE_MIN_INSN_LENGTH): New.

2000-12-12  Nick Clifton  <nickc@redhat.com>

	* cgen.h: Fix formatting.
	* input-scrub.c: Fix formatting.
	* macro.c: Fix formatting.
	* config/tc-mips.c: Fix formatting.
	* doc/c-mips.texi: Fix formatting.

2000-12-11  Jan hubicka  <jh@suse.cz>

	* config/tc-i386.c (md_assemble): Refuse 's' and 'l' suffixes in the intel
	mode; convert 'd' suffix to 's' or 'l'; remove all DWORD_MNEM_SUFFIX
	references.
	(intel_e09_1): Convert QWORD to 'l' suffix for FP operations; refuse
	otherwise.
	* config/tc-i386.h (DWORD_MNEM_SUFFIX): Kill.
	(No_dSuf): Kill.

	* i386.h (*_Suf): Remove No_dSuf.
	(d_suf, wld_Suf,sld_Suf, sldx_Suf, bwld_Suf, d_FP, sld_FP, sldx_FP)
	Remove.
	(i386_optab): Remove 'd' in the suffixes.

2000-12-06  Mark Elbrecht  <snowball3@bigfoot.com>

	* config/tc-i386.c (T_SHORT): Undefine before defining.

2000-12-05  Kazu Hirata  <kazu@hxi.com>

	* config/tc-mips.c: Fix formatting.

2000-12-04  Matthew Hiller  <hiller@redhat.com>

	* config/tc-d10v.c (flag_allow_gstabs_packing): New variable.
	(md_longopts): New options --gstabs-packing, --no-gstabs-packing.
	(md_show_usage): Ditto.
	(md_parse_option): Ditto.
	(d10v_cleanup): Writes pending instruction only if
	! outputting_stabs_line_debug || ! flag_allow_gstabs_packing.
	Fix compile time warning messages.

	* doc/c-d10v.texi: Documents new options.

2000-12-04  Matthew Hiller  <hiller@redhat.com>

	* stabs.c (outputting_stabs_line_debug): New variable.
	(stabs_generate_asm_lineno): Set outputting_stabs_line_debug at
	function entry and unset at function exit.

	* read.h (outputting_stabs_line_debug): New extern declaration.

	* as.c: Include dwarf2dbg.h for definition of dwarf2_finish.

	* dwarf2dbg.c: Fix compile time warning messages.

2000-12-03  Kazu Hirata  <kazu@hxi.com>

	* config/tc-a29k.c: Fix formatting.
	* config/tc-alpha.c: Likewise.
	* config/tc-arm.c: Likewise.
	* config/tc-cris.c: Likewise.
	* config/tc-hppa.c: Likewise.
	* config/tc-i370.c: Likewise.
	* config/tc-i386.c: Likewise.
	* config/tc-i860.c: Likewise.
	* config/tc-i960.c: Likewise.
	* config/tc-ia64.c: Likewise.
	* config/tc-m68hc11.c: Likewise.
	* config/tc-m68k.c: Likewise.
	* config/tc-m88k.c: Likewise.
	* config/tc-pj.c: Likewise.
	* config/tc-ppc.c: Likewise.
	* config/tc-sh.c: Likewise.
	* config/tc-sparc.c: Likewise.
	* config/tc-tahoe.c: Likewise.
	* config/tc-vax.c: Likewise.

2000-12-01  Chris Demetriou  <cgd@sibyte.com>

	* config/tc-mips.c (mips_ip): When calculating offsets,
	don't accept as constant the difference between the
	addresses of symbols in two different sections.

	* config/tc-mips.c (macro_build): Add new 'U' and 'J' operand
	specifiers.
	(validate_mips_insn): Likewise.  Also, update 'B' operand
	specifier to use OP_*_CODE20 constants and delete 'm' operand
	specifier.
	(mips_ip): Remove 'm' operand specifier, add 'U' and 'J'
	operand specifiers.  Change warning generated by 'B' operand
	specifier to reflect its new multi-purpose usage.

	* config/tc-mips.c (mips_set_options): Use ISA_UNKNOWN rather than
	-1, and update comment.
	(file_mips_isa): Likewise.
	(mips_cpu): Use CPU_UNKNOWN rather than -1, and update comment.
	(ISA_HAS_COPROC_DELAYS, ISA_HAS_64BIT_REGS, gpr_interlocks): Use
	ISA_* constants rather than hard-coded numbers.
	(mips_cpu_info): New structure.
	(mips_cpu_info_table): New table describing CPU and ISA names
	and numbers.
	(mips_cpu_info_from_name, mips_cpu_info_from_isa,
	mips_cpu_info_from_cpu): New functions.
	(mips_isa_to_str): New function to get string for ISA name.
	(mips_cpu_to_str): Convert to use mips_cpu_info_from_cpu, and
	return const char *.
	(md_begin): Redo CPU and ISA selection logic, using
	mips_cpu_info_from_*.  Convert to use ISA_* constants rather
	than hard-coded numbers.
	(append_insn, mips_emit_delays, macro, macro2): Convert to use
	ISA_* constants rather than hard-coded numbers.
	(mips_ip): Convert to use mips_isa_to_str to get ISA name.
	(md_longopts): Delete OPTION_NO_MIPS32.
	(md_parse_option): Convert to use ISA_* constants rather than
	hard-coded numbers.  Make OPTIONS_MIPS32 case treat MIPS32
	as an ISA.  Delete OPTION_NO_MIPS32 case.  Convert OPTION_MCPU
	to use strcasecmp to recognize "default" and to use
	mips_cpu_info_from_name to get CPU numbers from argument.
	(md_show_usage): Move -mips32 so it's with the rest of the ISA
	flags.  Change 4Kc, 4Kp and 4Km CPU entries to just be
	mips32-4k.
	(s_mipsset): Accept ISA value 32.
	* doc/as.texinfo: Clean up MIPS options summary slightly,
	remove -no-mips32.  Add note about -mips4 and -mips32
	specifying those ISA levels.  Delete -mips32 and -no-mips32
	cpu flag descriptions.
	* doc/c-mips.texi: Add -mips32 to list of ISA switches.  Clean
	up the supported CPU switch list, and replace 4Kc, 4Km, and
	4Kp entries with a single mips32-4k entry.  Note that you can
	use ".set mips32".

	* config/tc-mips.c (ISA_HAS_64BIT_REGS): Add checks for ISA_MIPS5 and
	ISA_MIPS64.
	(md_longopts, OPTION_MIPS5, OPTION_MIPS64): Add options for
	-mips5 and -mips64.
	(md_parse_option): Add cases for OPTION_MIPS5 and
	OPTION_MIPS64.
	(md_show_usage): Mention -mips5 and -mips64 arguments.
	(s_mipsset): Add cases for MIPS5 and MIPS64.
	(mips_cpu_info_table): Add entries for MIPS5 and MIPS64 ISAs
	and pseudo-CPUs.
	* doc/as.texinfo: Mention -mips5 and -mips64 options
	and their meanings.
	* doc/c-mips.texi: Likewise.  Also update introduction
	and ".set" usage information.

	* config/tc-mips.c (md_show_usage): Add "sb1" to the
	CPU list.
	(mips_cpu_info_table): Add SB-1 entries.
	* doc/c-mips.texi: Add "sb1" to the list of CPUs
	known to the -mcpu option.

	* doc/as.texinfo: Correct description of MIPS -mcpu
	option, by copying some of the text from doc/c-mips.texi.

2000-12-01  Joel Sherrill  <joel@OARcorp.com>

	* configure.in (arm-*-rtems*, a29k-*rtems*, h8300-*-rtems*):
	New targets.
	(sparc*-*-rtemself*, sparc*-*-rtemsaout*): New targets.
	(sparc*-*-rtems*): Switched from a.out to ELF.
	* configure: Regenerate.
	* config.in: Regenerate.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* po/gas.pot: Regenerate.

2000-11-30  Philip Blundell  <pb@futuretv.com>

	* config/obj-coff.c (obj_coff_weak): Use S_SET_WEAK if it exists,
	even in non BFD_ASSEMBLER case.

2000-11-30  Diego Novillo  <dnovillo@redhat.com>

	* config/tc-i386.c (md_assemble): Swap i.disp_relocs when using intel
	syntax.

2000-11-29  Richard Henderson  <rth@redhat.com>

	* dwarf2dbg.c: Rewrite from scratch.  Queue all debugging output
	until dwarf2_finish; use relaxation to get cross-fragment offsets;
	thread multiple subsegments properly; handle multiple code
	sections properly; emit proper compilation unit info for assembler
	generated debugging.

	* as.h (enum _relax_state): Add rs_dwarf2dbg.
	* dwarf2dbg.h (struct dwarf2_line_info): Remove filename.
	(dwarf2dbg_estimate_size_before_relax): Declare.
	(dwarf2dbg_relax_frag, dwarf2dbg_convert_frag): Declare.
	* write.c: Include dwarf2dbg.h.
	(cvt_frag_to_fill): Handle rs_dwarf2dbg.
	(relax_segment): Likewise.

2000-11-28  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/tc-sh.c (md_convert_frag) <undefined symbol, conditional
	jump>: Use as_bad_where	instead of as_bad.  Tweak error message
	accordingly.  Stabilize frag by updating fix part and resetting
	variant part.
	<undefined symbol, unconditional jump>: Ditto.
	(sh_elf_cons): Cast *input_line_pointer to unsigned char when
	indexing is_end_of_line[].
	(md_assemble): Initialize size to 0.
	(md_section_align): Mark parameter seg as unused.
	(parse_reg): Parse names case-insensitively.

2000-11-28  Kazu Hirata  <kazu@hxi.com>

	* config/obj-aout.h: Fix formatting.
	* config/obj-bout.h: Likewise.
	* config/obj-coff.c: Likewise.
	* config/obj-coff.h: Likewise.
	* config/obj-elf.h: Likewise.
	* config/obj-som.h: Likewise.
	* config/obj-vms.c: Likewise.
	* config/obj-vms.h: Likewise.
	* config/tc-h8300.h: Likewise.
	* config/tc-ns32k.h: Likewise.
	* config/tc-sparc.h: Likewise.
	* config/tc-tic54x.h: Likewise.
	* config/tc-z8k.h: Likewise.

2000-11-28  Nick Clifton  <nickc@redhat.com>

	* doc/as.1 (COPYING): Mention that the GNU Free Documentation
	License is present in the sources, but not the output, and
	also available from the GNU website.
	(GNU Free Documentation License): Comment out this section.

2000-11-28  Hans-Peter Nilsson  <hp@axis.com>

	* Makefile.am (CPU_OBJ_VALID): Add case to filter out invalid coff
	targets.  Remove i860 from valid a.out targets.
	* Makefile.in: Regenerate.

	* config/tc-cris.c: Include dwarf2dbg.h.
	(md_pseudo_table): Add .file and .loc.
	(md_assemble): Call dwarf2_emit_insn if generating ELF.
	(s_cris_file, s_cris_loc): New.
	* config/tc-cris.h (DWARF2_LINE_MIN_INSN_LENGTH): Define.
	* Makefile.am: Regenerate dependencies.
	* Makefile.in: Regenerate.

2000-11-28  Alan Modra  <alan@linuxcare.com.au>

	* expr.c (STANDARD_MUL_PRECEDENCE): Correct value.
	(MRI_MUL_PRECEDENCE): Likewise.
	(op_rank): Fix a comment typo.

2000-11-26  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/tc-m68hc11.c (build_indexed_byte): Print the offset in
	the error message.
	(get_operand): Fix analysis for movw/movb instructions.

2000-11-24  Nick Clifton  <nickc@redhat.com>

	* configure.in (xscale-elf): Add target.
	(xscale-coff): Add target.
	* configure: Regenerate.

	* config/tc-arm.c (ARM_EXT_V5E): New ARM architecture
	extenstion.
	(ARM_EXT_XSCALE): New ARM architecture extension.
	(ARM_LONGMUL): Rename to ARM_EXT_LONGMUL.
	(ARM_HALFWORD): Rename to ARM_EXT_HALFWORD.
	(ARM_THUMB): Rename to ARM_EXT_THUMB.
	(ARM_ARCH_V4): Remove processor from architecture.
	(ARM_ARCH_3M): New architecutre definition.
	(ARM_ARCH_V5TE): New architecutre definition.
	(ARM_ARCH_XSCALE): New architecutre definition.
	(CPU_DEFAULT): Allow to be defaulted to XScale.
	(atpcs): New boolean variable.
	(ldr_flags): Support 'd' flag for double word loads.
	(str_flags): Support 'd' flag for double word stored.
	(do_mia): New function.
	(do_mar): New function.
	(do_mra): New function.
	(do_pld): New function.
	(do_ldrd): New function.
	(do_blx): New function.
	(do_bkpt): New function.
	(do_clz): New function.
	(do_lstc2): New function.
	(do_cdp2): New function.
	(do_t_blx): New function.
	(do_t_bkpt): New function.
	(do_smla): New function.
	(do_smlal): New function.
	(do_smul): New function.
	(do_qadd): New function.
	(do_co_reg2c): New function.
	(LONGEST_INSN): Redefine to 7.

	* doc/c-arm.texi: Document -mxscale, -mmarmv5te and -matpcs
	command line switches.

2000-11-22  Jim Wilson  <wilson@redhat.com>

	* config/tc-ia64.c (pseudo_func): Add missing initializers.
	(struct rsrc): Make line unsigned.
	(gr_values): Add missing initializer.
	(SLOT_NUM_NOT_SET): Add unsigned cast.
	(ia64_elf_section_flags, output_vbyte_mem, count_output, dot_radix,
	dot_fframe, dot_vframe, dot_vframesp, dot_vframepsp, dot_save,
	dot_restore, dot_restorereg, dot_restorereg_p, dot_handlerdata,
	dot_unwentry, dot_altrp, dot_saveg, dot_savef, dot_saveb, dot_savegf,
	dot_spill, dot_spillreg, dot_spillreg_p, dot_label_state,
	dot_copy_state, dot_unwabi, dot_personality, dot_proc, dot_body,
	dot_prologue, dot_endp, dot_regstk, dot_psr, dot_alias, dot_ln,
	dot_reg_val, dot_entry, dot_mem_offset, ia64_init, mark_resource,
	md_undefined_symbol, md_apply_fix3, tc_gen_reloc, ia64_md_do_align):
	Add ATTRIBUTE_UNUSED to unused parameters.
	(convert_expr_to_ab_reg): Add parens.
	(convert_expr_to_xy_reg): Add parens.  Comment out >= REG_GR test.
	(dot_prologue): Initialize grsave when declared.
	(md_pseudo_table): Add missing initializers.
	(operand_match): Add casts to bfd_vma.
	(emit_one_bundle): Delete unused local prev.  Make required_template
	unsigned.
	(specify_resource): Cast i to unsigned.
	(note_register_values): Use fprintf_vma.
	(print_dependency): Likewise.

2000-11-21  Jim Wilson  <wilson@redhat.com>

	* config/tc-ia64.c (generate_unwind_image): Call record_alignment
	for unwind info section.
	(dot_endp): Likewise for unwind section.

	* config/tc-ia64.c (emit_one_bundle): Pass size of 8 not 4 to
	fix_new_exp.

2000-11-21  Jakub Jelinek  <jakub@redhat.com>

	* config/tc-sparc.c (md_pseudo_table): Add .file and .loc.
	(output_insn): Call dwarf2_emit_insn.
	* config/tc-sparc.h (DWARF2_LINE_MIN_INSN_LENGTH): New.

2000-11-17  Richard Henderson  <rth@redhat.com>

	* ehopt.c (eh_frame_code_alignment): New arg `in_seg', update all
	callers.  Don't switch segments.  Expect CIE == -1 in .debug_frame.
	(check_eh_frame): Handle .eh_frame and .debug_frame concurrently.

2000-11-17  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.c (md_pseudo_table): Add support for .line and
	.file pseudo ops.

2000-11-17  Richard Henderson  <rth@redhat.com>

	* config/tc-i386.c (md_pseudo_table): Add .file and .loc.

2000-11-17  Richard Henderson  <rth@redhat.com>

	* dwarf2dbg.c (dwarf2_gen_line_info): Early out for no line number.
	* config/obj-elf.h (ECOFF_DEBUGGING) [TC_ALPHA]: Adjust for
	tri-state definition of alpha_flag_mdebug.
	* config/tc-alpha.c (alpha_flag_mdebug): Init to -1.
	(s_alpha_file): Store first .file directive.
	(s_alpha_stab): New.
	(md_pseudo_table): Add stabs and stabn.

2000-11-17  Richard Henderson  <rth@redhat.com>

	* config/tc-i386.c (md_assemble): Call dwarf2_emit_insn.

2000-11-17  Richard Henderson  <rth@redhat.com>

	* as.c (debug_type): Init to DEBUG_UNSPECIFIED.
	(main): Call dwarf2_finish.
	* as.h (debug_type): Clarify documentation of the meaning
	of this variable.
	* dwarf2dbg.c (DWARF2_LINE_MIN_INSN_LENGTH): Default to 1.
	(print_stats): Fix parenthesis problem.
	(now_subseg_size): New.
	(dwarf2_finish): Use it.  If DEBUG_DWARF2, emit bits for .debug_info.
	(dwarf2_directive_file): Don't set debug_type.
	(dwarf2_where): Honor DEBUG_DWARF2 first.
	(dwarf2_emit_insn): Renamed from dwarf2_generate_asm_lineno;
	do nothing if not emitting dwarf2 debug info, or no work.
	* dwarf2dbg.h (dwarf2_emit_insn): Update.
	* ecoff.c (add_file): Turn on DEBUG_ECOFF only if DEBUG_UNSPECIFIED.
	(ecoff_new_file): Likewise.
	* read.c (generate_lineno_debug): Kill ecoff hackery.  Update
	commentary wrt dwarf2.

	* config/tc-alpha.c (alpha_adjust_symtab_relocs): Add
	ATTRIBUTE_UNUSED as needed.
	(emit_insn): Call dwarf2_emit_insn.
	(s_alpha_file): New.
	(s_alpha_loc): New.
	(s_alpha_coff_wrapper): Don't handle them.
	(md_pseudo_table): Update for .file and .loc.
	* config/tc-alpha.h (DWARF2_LINE_MIN_INSN_LENGTH): New.

	* config/tc-arm.c (output_inst): Update for dwarf2_emit_insn;
	don't protect with debug_type.
	* config/tc-hppa.c (md_assemble): Likewise.
	* config/tc-m68hc11.c (m68hc11_new_insn): Likewise.
	* config/tc-mn10300.c (md_assemble): Likewise.
	* config/tc-sh.c (md_assemble): Likewise.
	* config/tc-v850.c (md_assemble): Likewise.

	* config/tc-arm.c (arm_end_of_source): Remove.
	* config/tc-hppa.c (pa_end_of_source): Remove.
	* config/tc-m68hc11.c (m68hc11_end_of_source): Remove.
	* config/tc-mn10300.c (mn10300_finalize): Remove.
	* config/tc-sh.c (sh_finalize): Remove.
	* config/tc-v850.c (sh_finalize): Remove.

	* config/tc-arm.h (md_end): Remove.
	* config/tc-hppa.h (md_end): Remove.
	(DWARF2_LINE_MIN_INSN_LENGTH): New.
	* config/tc-m68hc11.h (md_end): Remove.
	* config/tc-mn10300.h (md_end): Remove.
	* config/tc-sh.h (md_end): Remove.
	* config/tc-v850.h (md_end): Remove.

	* config/tc-ia64.c (emit_one_bundle): Don't protect
	dwarf2 bits with debug_type.
	(md_assemble): Likewise.
	(ia64_end_of_source): Don't call dwarf2_finish.

2000-11-16  Jim Wilson  <wilson@redhat.com>

	* config/tc-ia64.c (errata_nop_necessary_p): Abort if general regno
	>= 128 instead of > 128.  Abort if predicate regno is >= 64 instead of
	> 16.

2000-11-16  H.J. Lu  <hjl@gnu.org>

	* config/obj-elf.c (obj_elf_symver): Don't check the missing
	version name.

2000-11-15  Kazu Hirata  <kazu@hxi.com>

	* config/tc-tic30.c: Fix formatting.
	* config/tc-tic80.c: Likewise.
	* config/tc-v850.c: Likewise.
	* config/tc-vax.c: Likewise.
	* config/tc-w65.c: Likewise.
	* config/tc-z8k.c: Likewise.

2000-11-14  DJ Delorie  <dj@redhat.com>

	* config/tc-v850.c: Support dwarf2.
	* config/tc-v850.h: Ditto.

	* config/tc-v850.c (cons_fix_new_v850): Don't rely on
	parse_cons_expression_v850 to initialize hold_cons_reloc.

2000-11-15  Bernd Schmidt  <bernds@redhat.com>

	* config/tc-ia64.c (struct md): New entries LAST_GROUPS, GROUP_IDX.
	(errata_nops_necessary_p): New function.
	(emit_one_bundle): Call it.  Update the GROUP_IDX field in struct
	md.

2000-11-14  Jim Wilson  <wilson@redhat.com>

	* config/tc-ia64.c (ia64_target_format): If EF_IA_64_BE not set, then
	return little endian bfd formats.

2000-11-14  Kazu Hirata  <kazu@hxi.com>

	* config/aout_gnu.h: Fix formatting.
	* config/atof-vax.c: Likewise.
	* config/m68k-parse.h: Likewise.
	* config/m88k-opcode.h: Likewise.
	* config/obj-elf.c: Likewise.
	* config/tc-arm.c: Likewise.
	* config/tc-cris.c: Likewise.
	* config/tc-i386.c: Likewise.
	* config/tc-ia64.c: Likewise.
	* config/tc-mn10300.c: Likewise.
	* config/te-386bsd.h: Likewise.
	* config/te-hppa.h: Likewise.
	* config/te-nbsd.h: Likewise.
	* config/te-ppcnw.h: Likewise.
	* config/te-sparcaout.h: Likewise.
	* config/te-tmips.h: Likewise.
	* config/vax-inst.h: Likewise.
	* config/vms-conf.h: Likewise.

2000-11-14  Jakub Jelinek  <jakub@redhat.com>

	* config/tc-alpha.c (s_alpha_prologue): Preserve visibility bits.

2000-11-13  H.J. Lu  <hjl@gnu.org>

	* config/obj-elf.c (elf_frob_symbol): Support
	".symver name,name2@@@nodename".
	(elf_frob_file_before_adjust): Likewise.

	* doc/as.texinfo: Updated for ".symver name,name2@@@nodename"
	and ".symver name,name2@@@nodename".
	Fix a typo.

2000-11-12  H.J. Lu  (hjl@gnu.org)

	* config/obj-elf.c (obj_elf_symver): Check missing version
	name.

2000-11-12  H.J. Lu  (hjl@gnu.org)

	* dwarf2dbg.c (dwarf2_generate_asm_lineno): Use addressT
	instead of bfd_vma for non-bfd assemblers.

2000-11-09  Kazu Hirata  <kazu@hxi.com>

	* itbl-ops.c: Fix comment typos.

2000-11-08  Jim Wilson  <wilson@redhat.com>

	* config/tc-ia64.c (struct unw_rec_list): Add slot_frag field.
	(struct unwind): Add next_slot_frag field.
	(slot_index): New parameters slot_frag and first_frag.  Add code
	to add in frag sizes when different.  Add comments.
	(fixup_unw_records): New locals first_frag and last_frag.  Pass new
	arguments to slot_index.
	(emit_one_bundle): Set slot_frag field.  Set next_slot_number after
	loop end.  Set next_slot_frag field.

2000-11-07  H.J. Lu  <hjl@gnu.org>

	* doc/as.texinfo (.symver): Updated for versioned symbol
	reference.

	* obj.h (format_ops): Add the frob_file_before_adjust field.

	* config/obj-aout.c (aout_format_ops): Set the
	frob_file_before_adjust field to 0.
	* config/obj-coff.c (coff_format_ops): Likewise.
	* config/obj-ecoff.c (ecoff_format_ops): Likewise.

	* config/obj-elf.c (obj_elf_symver): Allow duplicated version
	name.
	(elf_frob_file_before_adjust): New function to remove unneeded
	versioned symbols from the symbol table.
	(elf_format_ops): Set the frob_file_before_adjust field to
	elf_frob_file_before_adjust.

	* config/obj-elf.h (obj_frob_file_before_adjust): Defined if
	not defined.

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

2000-11-07  Peter Targett  <peter.targett@arccores.com>

	* config/tc-arc.h: Avoid warnings for LITTLE_ENDIAN and
	BIG_ENDIAN macros.
	* config/tc-arc.c: Use S_IS_LOCAL to test local symbols.
	Fix compile time warning messages.

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

	* stabs.c (generate_asm_file): Increase length of xmalloc'ed
	buffer in order to avoid buffer overflows.

2000-11-06  Steve Ellcey <sje@cup.hp.com>

	* config/tc-ia64.c (md_shortopts, md_parse_option, md_show_usage):
	Change M to m for -milp32 or -mlp64 to match gcc.
	(dot_endp): Use bytes_per_address instead of 8.
	(emit_one_bundle): Use number_to_chars_littleendian instead of
	md_number_to_chars.
	(fix_insn): Likewise.
	(ia64_init): New function.
	(ia64_target_format): New function.
	(md_begin): Set endianness, arch, and machine as appropriate.
	* config/tc-ia64.h: (TARGET_BYTES_BIG_ENDIAN, md_number_to_chars):
	Make these macros depend on TE_HPUX macro.
	(TARGET_FORMAT): Define.
	(HOST_SPECIAL_INIT): Define.
	* config/te-hpux.h: New file.
	* configure.in: Add "ia64-*-hpux*" target to configure.
	* configure: Regenerate.

2000-11-06  Kazu Hirata  <kazu@hxi.com>

	* as.c: Fix formatting.
	* dwarf2dbg.c: Likewise.
	* input-file.c: Likewise.
	* input-file.h: Likewise.
	* input-scrub.c: Likewise.
	* itbl-ops.c: Likewise.
	* listing.c: Likewise.
	* macro.h: Likewise.
	* messages.c: Likewise.
	* read.c: Likewise.
	* subsegs.c: Likewise.
	* subsegs.h: Likewise.
	* write.c: Likewise.

2000-11-06  Nick Clifton  <nickc@redhat.com>

	* doc/as.texinfo: Add GNU Free Documentation License.
	* doc/gasp.texi:  Add GNU Free Documentation License.
	* doc/as.1:  Add GNU Free Documentation License.

2000-11-05  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.c: Add include of "dwarf2dbg.h"

2000-11-02  Per Lundberg  <plundis@chaosdev.org>

	* configure.in: Recognise i[3456]86-chaosdev-storm-chaos.
	* configure: Regenerate.

2000-11-01  Nick Clifton  <nickc@redhat.com>

	* read.c (original_case_string): New global variable.
	(read_a_source_file): Copy opcode string into
	original_case_string if clobbering the case of the opcode.
	* read.h: Export the definition of original_case_string.
	* config/tc-arm.c (md_assembler): When parsing a .req
	directive use the original opcode string, not the case
	clobbered version.

2000-11-02  Nick Clifton  <nickc@redhat.com>

	* config/tc-mn10300.c (debug_line): Remove this static
	variable.
	(md_assemble): Call dwarf2_generate_asm_lineno instead of
	dwarf2_where and dwarf2_gen_line_info.

2000-11-02  Theo Honohan  <th@futuretv.com>

	* config/tc-arm.c (do_msr): Improve error message.

2000-10-31  Eric Christopher  <echristo@redhat.com>

	* config/tc-mn10300.c (md_apply_fix3): Use valuep if fully resolved
	or pc-relative, else use fx_offset.

2000-10-31  Jim Wilson  <wilson@redhat.com>

	* config/tc-ia64.c (struct md): New field tag_fixups.
	(ia64_flush_insns): Handle tag_fixups.  Error if dangling
	qualifying predicate.
	(emit_one_bundle): Delete spurious multiplication by one.  Handle
	tag_fixups.
	(ia64_start_line): Error if dangling qualifying predicate.
	(defining_tag): New static variable.
	(ia64_unrecognized_line, case '['): Parse tags.
	(ia64_frob_label): Create tag_fixups.
	(md_assemble): Reset md.qp.X_op after using it.

2000-10-31  Kaz Kojima <kkojima@rr.iij4u.or.jp>

	* config/tc-sh.c (md_apply_fix [BFD_RELOC_SH_PCDISP12BY2]): Allow 4094.

2000-10-31  Bernd Schmidt  <bernds@redhat.co.uk>

	* config/tc-ia64.c (extra_goodness): Only prefer F in slot 1 and B in slot 2.

2000-10-30  Kazu Hirata  <kazu@hxi.com>

	* expr.c: Fix formatting.
	* flonum-copy.c: Likewise.
	* flonum.h: Likewise.
	* gasp.c: Likewise.
	* hash.c: Likewise.

2000-10-30  Hans-Peter Nilsson  <hp@bitrange.com>

	* as.h (OPTION_MD_BASE): Bump to 190.
	* as.c (parse_args) <std_longopts>: Add comment about the need to
	check OPTION_MD_BASE in as.h.

	* config/tc-sh.c (md_apply_fix): For ELF, do not "adjust back" VAL
	for weak symbols.

2000-10-27  Nick Clifton  <nickc@redhat.com>

	* configure.in (emulations): Add m68hc12.
	* configure: Regenerate.
	* po/gas.pot: Regenerate.

2000-10-27  Aldy Hernandez  <aldyh@redhat.com>

	* config/tc-arm.c (psrs): Remove lowercase versions of spsr* and
	cpsr*.
	(arm_psr_parse): Handle lowercase CPSR and SPSR.

2000-10-25  Nick Clifton  <nickc@redhat.com>

	* dwarf2out.c (dwarf2_generate_asm_lineno): New function: Generate
	a DWARF2 line number information sequence.

	*dwarf2out.h: Add prototype for dwarf2_generate_asm_lineno.

	* read.c (generate_lineno_debug): Update comment describing why
	DWARF2 line number debug information is not generated
	automatically by this function.

	* doc/as.texinfo: Note that --gdwarf2 only works on some targets,
	not all.

	* config/tc-arm.h (md_end): Define.
	(DWARF2_LINE_MIN_INSN_LENGTH): Define.

	* config/tc-arm.c (output_inst): Call dwarf2_generate_asm_lineno
	if generating DWARF2 line numbers.
	(arm_end_of_source): New function.  Call dwarf2_finish if
	necessary.

	* config/tc-hppa.c (md_assemble): Use dwarf2_generate_asm_lineno.
	* config/tc-m68hc11.c (m68hc11_new_insn): Use dwarf2_generate_asm_lineno.
	* config/tc-sh.c (md_assemble): Use dwarf2_generate_asm_lineno.

2000-10-25  Diego Novillo  <dnovillo@cygnus.com>

	* config/tc-i386.c: Fix prototype declarations for functions taking no
	arguments.

2000-10-24  Diego Novillo  <dnovillo@cygnus.com>

	* config/tc-i386.c (i386_operand_modifier): Remove.
	(build_displacement_string): Remove.
	(i386_parse_seg): Remove.
	(i386_intel_memory_operand): Remove.
	(i386_intel_operand): Re-write using recursive descent parser based
	on MASM documentation.
	(struct intel_parser_s): New structure.
	(intel_parser): New static variable.
	(struct intel_token): New structure.
	(cur_token, prev_token): New static variables.
	(T_NIL): Define.
	(T_CONST): Define.
	(T_REG): Define.
	(T_BYTE): Define.
	(T_WORD): Define.
	(T_DWORD): Define.
	(T_QWORD): Define.
	(T_XWORD): Define.
	(T_SHORT): Define.
	(T_OFFSET): Define.
	(T_PTR): Define.
	(T_ID): Define.
	(intel_match_token): New function.
	(intel_get_token): New function.
	(intel_putback_token): New function.
	(intel_expr): New function.
	(intel_e05): New function.
	(intel_e05_1): New function.
	(intel_e06): New function.
	(intel_e06_1): New function.
	(intel_e09): New function.
	(intel_e09_1): New function.
	(intel_e10): New function.
	(intel_e10_1): New function.
	(intel_e11): New function.

2000-10-20  Jakub Jelinek  <jakub@redhat.com>

	* config/tc-sparc.c (sparc_ip): Fix a bug which caused v9_arg_p
	instructions to loose any special insn->architecture mask.

	* config/tc-sparc.c (v9a_asr_table): Add v9b ASRs.
	(sparc_md_end, sparc_arch_types, sparc_arch,
	sparc_elf_final_processing): Handle v8plusb and v9b architectures.
	(sparc_ip): Handle siam mode operands. Support v9b ASRs (and
	request v9b architecture if they are used).

2000-10-18  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* config/tc-m68k.c: Fix the previous misapplied patch.

2000-10-18  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* config/tc-m68k.h (RELAX_RELOC_*): New definitions for both
	BFD_ASSEMBLER and !BFD_ASSEMBLER.
	* config/tc-m68k.c (md_convert_frag_1): Use them instead of
	BFD_RELOC_*.

2000-10-17  Kazu Hirata  <kazu@hxi.com>

	* debug.c: Fix formatting.
	* depend.c: Likewise.
	* dwarf2dbg.c: Likewise.
	* dwarf2dbg.h: Likewise.
	* ecoff.c: Likewise.
	* expr.c: Likewise.
	* expr.h: Likewise.
	* flonum-konst.c: Likewise.
	* frags.h: Likewise.

2000-10-17  Chandrakala Chavva  <cchavva@redhat.com>

	* as.c: New option OPTION_TARGET_HELP. Prints all target specific
	options.
	* doc/as.texinfo: Added notes about this new option.

2000-10-16  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/tc-sh.c (JREG): Remove.
	(md_convert_frag): Remove #if 0:d code using JREG.

2000-10-15  Diego Novillo  <dnovillo@cygnus.com>

	* config/tc-i386.c (i386_operand_modifier): Only match
	modifiers SHORT and FLAT if they are followed by a space.
	(parse_register): When `allow_naked_reg' is set, do not confuse
	identifiers that start with a register name with a register.

2000-10-12  Kazu Hirata  <kazu@hxi.com>

	* app.c: Fix formatting.
	* as.c: Likewise.
	* as.h: Likewise.
	* bit_fix.h: Likewise.
	* cgen.c: Likewise.
	* cgen.h: Likewise.
	* cond.c: Likewise.

2000-10-11  Alan Modra  <alan@linuxcare.com.au>

	* config/obj-elf.c (elf_frob_symbol): Revert 2000-10-07 change.

2000-10-07  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.c (md_apply_fix): Remove plainly wrong assert.
	Re-arrange function a little and improve error message.

	* write.c (write_relocs): Fix a comment.

	* config/obj-elf.c (elf_frob_symbol): Make section syms global on
	link-once sections.

2000-10-05  Jim Wilson  <wilson@cygnus.com>

	* config/tc-ia64.c (resources_match): Handle IA64_RS_PRr.

2000-10-05  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-i386.c: Delete some useless comments, reformat others.

	* config/tc-i386.h (TC_FIX_ADJUSTABLE): Add check to cover
	non-global syms in linkonce sections.

2000-10-04  Ralf Baechle  <ralf@gnu.org>

	* config/tc-ia64.c (operand_match): Don't use // style comments.
	* config/tc-i370.c: Likewise.

2000-09-29  Hans-Peter Nilsson  <hp@axis.com>

	Changes to handle varying register prefix and user symbol prefix.
	* config/tc-cris.c (SYNTAX_RELAX_REG_PREFIX,
	SYNTAX_ENFORCE_REG_PREFIX, SYNTAX_USER_SYM_LEADING_UNDERSCORE,
	SYNTAX_USER_SYM_NO_LEADING_UNDERSCORE, REGISTER_PREFIX_CHAR): New.
	(s_syntax, cris_force_reg_prefix, cris_relax_reg_prefix,
	cris_sym_leading_underscore, cris_sym_no_leading_underscore): New.
	(demand_register_prefix): New variable.
	(md_pseudo_table): New pseudo ".syntax".
	(md_longopts): New options --no-underscore and --underscore.
	(cris_target_format): Return elf32-us-cris or elf32-cris depending
	on symbols_have_leading_underscore.
	(get_gen_reg): Accept or require REGISTER_PREFIX_CHAR.
	(get_spec_reg): Ditto.
	(cris_number_to_imm) <case BFD_RELOC_VTABLE_ENTRY>: Remove FIXME.
	Fix formatting.
	(md_parse_option) <case 'h' 'H'>: Deprecate; add reference to
	--help.
	<case OPTION_NO_US, case OPTION_US>: New.
	(md_show_usage): Be brief and reformat to match continuation of
	--help.
	* po/gas.pot: Regenerate.

2000-09-28  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.c (hppa_force_relocation): If OBJ_SOM, don't
	force relocs for 12 bit branches.
	(md_apply_fix): Similarly, adjust logic here.

2000-09-28  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.c (md_apply_fix): Add fmt assertion.  Don't
	adjust for external and weak syms as we will use a reloc.  Allow
	for +8 offset when calculating limits of branches.
	(hppa_fix_adjustable): Undo 2000-09-23 change.
	(hppa_force_relocation): Likewise.  Add fx_addsy assertion.
	Correct distance calculation.
	(tc_gen_reloc): Print the file name and line number if we can't
	handle a fixup.

	From John David Anglin <dave@hiauly1.hia.nrc.ca>
	* config/tc-hppa.c (nonzero_dibits): Define.
	(arg_reloc_stub_needed): Check each arg and return value
	separately for zero case.
	(pa_align): Declare argument `bytes'.

2000-09-25  Kazu Hirata  <kazu@hxi.com>

	* config/tc-cris.c: Fix formatting.
	* config/tc-d10v.h: Likewise.
	* config/tc-d30v.c: Likewise.
	* config/tc-d30v.h: Likewise.
	* config/tc-fr30.c: Likewise.
	* config/tc-fr30.h: Likewise.
	* config/tc-m68k.c: Likewise.
	* config/tc-m68k.h: Likewise.
	* config/tc-pj.h: Likewise.
	* config/tc-ppc.c: Likewise.
	* config/tc-ppc.h: Likewise.
	* config/tc-sh.c: Likewise.
	* config/tc-sh.h: Likewise.
	* config/tc-sparc.c: Likewise.
	* config/tc-v850.h: Likewise.
	* config/tc-vax.h: Likewise.
	* config/tc-w65.h: Likewise.
	* config/tc-z8k.h: Likewise.

2000-09-23  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.c (hppa_fix_adjustable): Do the external and weak
	checks only for ELF.
	(hppa_force_relocation): Likewise.

2000-09-22  Jim Wilson  <wilson@cygnus.com>

	* config/tc-ia64.c (dv_sem): Add "stop".
	(specify_resource, case IA64_RS_PR): Only handles regs 1 to 15 now.
	(specify_resource, case IA64_RS_PRr): New for regs 16 to 62.
	(specify_resource, case IA64_RS_PR63): Reorder (note == 7) test to
	match above.
	(mark_resources): Check IA64_RS_PRr.

2000-09-22  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* config/tc-m68k.c (md_relax_table, m68k_ip, md_convert_frag_1,
	md_estimate_size_before_relax): Redesign and clean up the
	relaxation mechanism.

2000-09-21  Kazu Hirata  <kazu@hxi.com>

	* config/tc-ns32k.c: Fix formatting.
	* config/tc-ns32k.h: Likewise.

2000-09-20  Kazu Hirata  <kazu@hxi.com>

	* config/tc-m32r.c: Fix formatting.
	* config/tc-m32r.h: Likewise.
	* config/tc-m68851.h: Likewise.
	* config/tc-m68hc11.c: Likewise.
	* config/tc-m68hc11.h: Likewise.
	* config/tc-m88k.c: Likewise.
	* config/tc-mcore.c: Likewise.
	* config/tc-mcore.h: Likewise.
	* config/tc-mips.c: Likewise.
	* config/tc-mips.h: Likewise.
	* config/tc-mn10200.h: Likewise.
	* config/tc-mn10300.h: Likewise.
	* config/tc-tahoe.c: Likewise.
	* config/tc-tahoe.h: Likewise.

2000-09-19  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* config/tc-vax.c (synthetic_votstrs): Remove jbssi and jbcci.
	Likewise in relaxation description comments.

2000-09-18  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.h (TC_FORCE_RELOCATION_SECTION): Allow
	subtraction of two syms without emitting a relocation.

	From  David Huggins-Daines  <dhd@linuxcare.com>
	* config/tc-hppa.c (hppa_force_relocation): Force relocations for
	global or weak symbols.

2000-09-15  Kazu Hirata  <kazu@hxi.com>

	* config/tc-h8300.h: Fix formatting.
	* config/tc-h8500.c: Likewise.
	* config/tc-h8500.h: Likewise.
	* config/tc-hppa.h: Likewise.
	* config/tc-i370.h: Likewise.
	* config/tc-i386.h: Likewise.
	* config/tc-i860.c: Likewise.
	* config/tc-i860.h: Likewise.
	* config/tc-i960.h: Likewise.
	* config/tc-ia64.c: Likewise.
	* config/tc-ia64.h: Likewise.

2000-09-14  Kazu Hirata  <kazu@hxi.com>

	* config/tc-a29k.c: Fix formatting.
	* config/tc-alpha.c: Likewise.
	* config/tc-arc.c: Likewise.
	* config/tc-arc.h: Likewise.
	* config/tc-arm.c: Likewise.
	* config/tc-arm.h: Likewise.
	* config/tc-avr.c: Likewise.
	* config/tc-avr.h: Likewise.
	* config/tc-tic30.c: Likewise.
	* config/tc-tic30.h: Likewise.
	* config/tc-tic54x.c: Likewise.
	* config/tc-tic54x.h: Likewise.
	* config/tc-tic80.c: Likewise.
	* config/tc-tic80.h: Likewise.

2000-09-14  Timothy Wall  <twall@cygnus.com>

	* config/tc-ia64.c (specify_resource): For PR%/PR63, note types of
	parallel comparisons for later use.
	(struct rsrc): Add parallel comparison type.
	(resources_match): Skip special cases of PR usage (non-conflicting
	parallel compares).

2000-09-13  Kazu Hirata  <kazu@hxi.com>

	* config/obj-ecoff.c: Fix formatting.
	* config/obj-elf.c: Likewise.
	* config/obj-elf.h: Likewise.
	* config/obj-evax.h: Likewise.
	* config/obj-generic.h: Likewise.
	* config/obj-hp300.c: Likewise.
	* config/obj-hp300.h: Likewise.
	* config/obj-ieee.h: Likewise.
	* config/obj-vms.c: Likewise.
	* config/obj-vms.h: Likewise.

2000-09-13  Anders Norlander  <anorland@acc.umu.se>

	* config/tc-mips.c (md_begin): Recognize 4Kc, 4Km and 4Kp processors.
	(md_parse_option): Ditto.
	(md_longopts): Add -mips32 option.
	(md_show_usage): Document new options.
	(mips_ip): Assemble sdbbp 20 bit 'm' args for MIPS32.
	(mips_ip): Assemble mfc0 with a sub-selection code.
	(validate_mips_insn): Handle 'H' (OP_*_SEL) and 'm' (OP_*_CODE20).
	(mips_cpu_to_str): New function.
	(mips_ip): Use mips_cpu_to_str instead of printing numeric cpu value.
	Use CPU_* defines instead of hardcoded numbers.

	* doc/as.texinfo: Document new options.
	* doc/c-mips.texi: Ditto.

2000-09-12  Kazu Hirata  <kazu@hxi.com>

	* as.h: Fix formatting.
	* asintl.h: Likewise.
	* bit_fix.h: Likewise.
	* config/obj-aout.c: Likewise.
	* config/obj-aout.h: Likewise.
	* config/obj-bout.c: Likewise.
	* config/obj-bout.h: Likewise.
	* config/obj-coff.c: Likewise.
	* config/obj-coff.h: Likewise.
	* dwarf2dbg.h: Likewise.
	* expr.h: Likewise.
	* flonum.h: Likewise.
	* frags.h: Likewise.
	* itbl-ops.h: Likewise.
	* macro.h: Likewise.
	* read.h: Likewise.
	* sb.h: Likewise.
	* struc-symbol.h: Likewise.
	* subsegs.h: Likewise.
	* symbols.h: Likewise.
	* tc.h: Likewise.
	* write.h: Likewise.

2000-09-11  Kazu Hirata  <kazu@hxi.com>

	* bignum-copy.c: Fix formatting.
	* config/tc-i370.c: Likewise.
	* config/tc-i960.c: Likewise.
	* config/tc-m68k.c: Likewise.
	* ehopt.c: Likewise.
	* flonum-copy.c: Likewise.
	* flonum-konst.c: Likewise.
	* flonum-mult.c: Likewise.
	* literal.c: Likewise.
	* read.c: Likewise.
	* sb.c: Likewise.
	* stabs.c: Likewise.
	* subsegs.c: Likewise.

2000-09-09  Philip Blundell  <philb@gnu.org>

	* configure.in (arm*-*-uclinux*): New target.
	* configure: Regenerate.

2000-09-09  Kazu Hirata  <kazu@hxi.com>

	* input-file.c: Fix formatting.
	* itbl-ops.c: Likewise.
	* messages.c: Likewise.

2000-09-08  Philip Blundell  <philb@gnu.org>

	* config/tc-arm.c (md_apply_fix3): Correct handling of ADRL when
	offset is negative.

2000-09-07  H.J. Lu  <hjl@gnu.org>

	* configure.in (AC_ISC_POSIX): Put after AC_CANONICAL_SYSTEM.
	* configure: Rebuild.

2000-09-07  Kazu Hirata  <kazu@hxi.com>

	* atof-generic.c: Fix formatting.
	* config/tc-mips.c: Likewise.
	* config/tc-vax.c: Likewise.
	* input-scrub.c: Likewise.

2000-09-07  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-sh.h (TARGET_FORMAT): Use sh-linux targets.
	* configure.in (sh-*-linux*): Added.
	* configure: Rebuilt.

2000-09-06  Kazu Hirata  <kazu@hxi.com>

	* config/tc-hppa.c: Fix formatting.

	* ecoff.c: Fix formatting.

2000-09-06  Alexandre Oliva  <aoliva@redhat.com>

	* configure: Rebuilt with new libtool.m4.

2000-09-05  Kazu Hirata  <kazu@hxi.com>

	* cgen.c: Fix formatting.
	* config/tc-ia64.c: Likewise.

2000-09-05  Nick Clifton  <nickc@redhat.com>

	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.
	* po/gas.pot: Regenerate.

2000-09-05  Hans-Peter Nilsson  <hp@axis.com>

	* config/tc-cris.c: Correct comment typos.

2000-09-05  Eric Christopher  <echristo@cygnus.com>

	* config/tc-mn10300.c: Cleanup.
	(md_pcrel_from): Enable.

2000-09-05  Alan Modra  <alan@linuxcare.com.au>

	* expr.c (operand): Fix a comment typo.
	* write.c (write_relocs): Fix a signed/unsigned warning.

	* config/tc-hppa.c (fudge_reg_expressions): New
	(hppa_force_reg_syms_absolute): New.
	(pa_equ): Allow reg_section expressions.
	* config/tc-hppa.c (md_optimize_expr): Define.
	(hppa_force_reg_syms_absolute): Prototype.

	* config/tc-hppa.c (pa_11_fp_reg_struct): Delete.
	(pa_parse_number): Pass in arg to select fp reg parsing.
	Return 1 to indicate format checks pass.  If strict, then only
	accept a register or register symbol.  Return value in...
	(pa_number): New static for pa_parse_number.
	(FP_REG_BASE): Define.
	(FP_REG_RSEL): Define.
	(pre_defined_registers): Apply FP_REG_BASE and FP_REG_RSEL as
	appropriate.  White space changes.
	(need_pa11_opcode): Don't bother passing any params, get them from
	globals instead.
	(pa_ip): Modify all calls to pa_parse_number and need_pa11_opcode.
	Remove extraneous check in case 'Q'.
	(pa_equ): Modify call to pa_parse_number to do strict parsing. If
	reg, set section of resulting symbol to reg_section.
	(pa_parse_space_stmt): Modify call to pa_parse_number.
	(pa_space): Likewise.

	* config/tc-hppa.c: (md_apply_fix): Handle vtable relocs.
	(hppa_force_relocation): Handle vtable relocs.
	(pa_vtable_entry): New.
	(pa_vtable_inherit): New.
	(md_pseudo_table): Add entries for vtable pseudos.
	(hppa_fix_adjustable): Reject reduction of R_PARISC_GNU_VTINHERIT
	and R_PARISC_GNU_VTENTRY relocs.  Reject reduction of relocs
	against weak syms.
	(tc_gen_reloc): Remove ELF_ARG_RELOC_INSN code.
	(pa_type_args): Don't call symbol_get_bfdsym multiple times.
	Set STT_PARISC_MILLICODE for OBJ_ELF when encountering a
	millicode import.
	* config/obj-elf.c (obj_elf_type): Allow md_elf_symbol_type to
	specify a symbol type.

	* config/tc-hppa.h: Reorganize file a little, grouping OBJ_ELF
	dependent things together.
	(md_elf_symbol_type): Define.

	* config/tc-hppa.c (fix_new_hppa): Elide "$PIC_pcrel$0" pseudo
	symbol.
	* config/tc-hppa.h (tc_frob_symbol): Elide "$PIC_pcrel$0" here too.

	* config/obj-elf.h (obj_elf_vtable_inherit): Declare.
	(obj_elf_vtable_entry): Declare.

	* config/obj-elf.c (obj_elf_vtable_inherit): Return struct fix *
	and export function.
	(obj_elf_vtable_entry): Similarly.
	(elf_pseudo_table): Fix the damage with a cast.

2000-09-03  Richard Henderson  <rth@cygnus.com>

	* config/tc-ia64.c (emit_one_bundle): Stop collecting insns
	for template selection when a label is needed.

2000-09-02  Kazu Hirata  <kazu@hxi.com>

	* config/tc-ia64.c: Fix formatting.

2000-09-02  Nick Clifton  <nickc@redhat.com>

	* configure.in: Increase version number to 2.10.91.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* po/gas.pot: Regenerate.
	* Makefile.in: Regenerate.

2000-09-01  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-sh.h [OBJ_ELF] (TC_FIX_ADJUSTABLE): Define.
	* config/tc-sh.c (md_apply_fix): Map 32-bit relocations that
	become PC-relative to BFD_RELOC_32_PCREL.  Reject 16- or 8-bit
	similar relocs.
	(sh_obj_adjustable): Return 1 for PC-relative offsets used in
	branches.

2000-09-01  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>, Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-sh.h (DIFF_EXPR_OK, GLOBAL_OFFSET_TABLE_NAME,
	TC_RELOC_GLOBAL_OFFSET_TABLE, TC_RELOC_RTSYM_LOC_FIXUP): Define.
	* config/tc-sh.c (sh_elf_cons, sh_elf_suffix): New functions.
	[OBJ_ELF] (md_pseudo_table) <long, int, word, short>: Use them.
	(GOT_symbol): New variable.
	(md_undefined_symbol): Set it.

2000-09-01  Richard Henderson  <rth@cygnus.com>

	* config/tc-ia64.c (match): Don't inline.
	(extra_goodness): New.
	(md_begin): Prefer nop.f and nop.b for best_template.

2000-08-31  Kazu Hirata  <kazu@hxi.com>

	* as.c: Fix formatting.
	* cond.c: Likewise.
	* frags.c: Likewise.
	* macro.c: Likewise.

2000-08-31  Eric Christopher  <echristo@cygnus.com>

	* config/tc-mn10300.c:  Cleanup and fix warnings.
	(md_pseudo_table): Add initializers.
	(md_show_usage): Cleanup.
	(md_parse_option): Fix warnings.
	(md_undefined_symbol): Fix warnings.
	(md_conver_frag): Fix warnings.
	(tc_gen_reloc): Fix warnings.
	(md_apply_fix3): Fix warnings.
	(check_operand): Fix warnings.

2000-08-31  Alexandre Oliva  <aoliva@redhat.com>

	* acinclude.m4: Include libtool and gettext macros from the
	top level.
	* aclocal.m4, configure: Rebuilt.

2000-08-30  Mark Hatle  <mhatle@mvista.com>

	* config/tc-ppc.c (md_parse_option): Recognize -m405.

2000-08-31  Kazu Hirata  <kazu@hxi.com>

	* listing.c: Fix formatting.

2000-08-29  Kazu Hirata  <kazu@hxi.com>

	* app.c: Fix a comment typo.  Fix formatting.

2000-08-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>

	* config/tc-vax.c (md_convert_frag): Correctly calculate the pc relative
	offset of the target destination for jmp instructions.
	(md_assemble): Change mode to VAX_ABSOLUTE_MODE as per comments.

2000-08-24  Hans-Peter Nilsson  <hp@axis.com>

	* NEWS: Mention support for CRIS.

2000-08-24  Denis Chertykov  <denisc@overta.ru>

	* config/tc-avr.h (TC_IMPLICIT_LCOMM_ALIGNMENT): New macros.
	Sets `.lcomm' alignment to zero.

2000-08-23  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-i386.h (OBJ_MAYBE_ELF, OBJ_MAYBE_COFF,
	TC_FIX_ADJUSTABLE): Define.

2000-08-23  Jim Wilson  <wilson@cygnus.com>

	* config/tc-ia64.c (output_unw_records): Set U & E flags only if
	unwind.personality_routine is set.

2000-08-23  H.J. Lu  <hjl@gnu.org>

	* write.c (TC_FIX_ADJUSTABLE): Remove the duplicate.

2000-08-23  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-i386.h (TC_FIX_ADJUSTABLE): Do *NOT* define if target
	environment is pe.

2000-08-22  H.J. Lu  <hjl@gnu.org>

	* config.in (STRICTCOFF): New for strict COFF.

	* configure.in: Define STRICTCOFF for i386-*-msdosdjgpp*,
	i386-*-go32* and i386-go32-rtems*.
	* configure: Rebuilt.

	* config/obj-coff.c (obj_coff_endef): Follow the historical
	behavior if STRICTCOFF is not defined.

	* doc/internals.texi: Document STRICTCOFF.

2000-08-22  Alexandre Oliva  <aoliva@redhat.com>

	* write.c (TC_FIX_ADJUSTABLE): Define to 1, if not defined.
	(fixup_segment) Use it instead of TC_DONT_FIX_NON_ADJUSTABLE.
	* config/tc-i386.h (TC_DONT_FIX_NON_ADJUSTABLE): Remove.
	<OBJ_ELF, OBJ_COFF, TE_PE> (TC_FIX_ADJUSTABLE): Define.
	* config/tc-arm.h (TC_DONT_FIX_NON_ADJUSTABLE): Remove.
	<OBJ_ELF> (TC_FIX_ADJUSTABLE): Define.
	* config/tc-i960.h, config/tc-m68k.h, config/tc-v850.h:
	Likewise.

2000-08-22  Eric Christopher  <echristo@cygnus.com>

	* config/tc-mn10300.c: (md_apply_fix): New function.
	(mn10300_force_relocation): New function.
	(mn10300_fix_adjustable): New function.

	* config/tc-mn10300.h: (TC_FORCE_RELOCATION): Define.
	(TC_HANDLES_FX_DONE): Define.
	(obj_fix_adjustable): Define.
	(MD_APPLY_FIX3): Define.
	(TC_LINKRELAX_FIXUP): Define.

	* write.c: (TC_LINKRELAX_FIXUP):  Define if not
	previously defined.
	(fixup_segment): Use TC_LINKRELAX_FIXUP.

	* doc/internals.texi: Document TC_LINKRELAX_FIXUP.

2000-08-21  Jason Eckhardt  <jle@cygnus.com>

	* config/tc-i860.c (md_apply_fix3): Do not insert the immediate
	if the fixup resulted in a relocation.

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

	* config/tc-arm.c (decode_shift): Replace as_tsktsk with as_warn.
	Make reference to first element of shift_names explicit.

2000-08-18  Alexandre Oliva  <aoliva@redhat.com>

	* write.c (fixup_segment) [TC_DONT_FIX_NON_ADJUSTABLE]: Use
	obj_fix_adjustable() and tc_fix_adjustable() to tell whether to
	add a symbol's address.  Removed all target-specific #ifdefs that
	used to accomplished the same.
	* config/tc-v850.h (TC_DONT_FIX_NON_ADJUSTABLE): Define.
	* config/tc-m68k.h (TC_DONT_FIX_NON_ADJUSTABLE): Define.
	* config/tc-arm.h (TC_DONT_FIX_NON_ADJUSTABLE): Define.
	* config/tc-i960.h (TC_DONT_FIX_NON_ADJUSTABLE): Define.
	* config/tc-i386.h (TC_DONT_FIX_NON_ADJUSTABLE): Define.

2000-08-17  Kazu Hirata  <kazu@hxi.com>

	* dwarf2dbg.c: Fix formatting.

2000-08-17  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.c (decode_shift): Allow illegal shifts by zero
	to be recoded as logical shift lefts by zero.

2000-08-16  Jim Wilson  <wilson@cygnus.com>

	* config/tc-ia64.c (specify_resource, case IA64_RS_GR): Handle
	postincrement modified registers.  Handle IA64_OPND_R3_2 addl
	source registers.
	(note_register_values): Handle IA64_OPND_R3_2 operands.

2000-08-16  Jason Eckhardt  <jle@cygnus.com>

	* config/tc-i860.c (md_operand): Silly typo fixed.

2000-08-16  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.c (struct asm_shift): Delete.
	(shift[]): Delete.
	(enum asm_shift_index): New.
	(struct asm_shift_properties): New.
	(struct asm_shift_name): New.
	(shift_properties[]); New.
	(shift_names[]); New.

	(decode_shift): Use new structures.
	Issue a warning is "ROR #0" is used.
	Issue a warning if "ASR #0" or "LSR #0" is used.

	(md_begin): Initialise arm_shift_hsh table from new
	asm_shift_name array.

2000-08-16  Jakub Jelinek  <jakub@redhat.com>

	* config/tc-sparc.c: Kill all warnings.
	(md_parse_option): Set -32/-64 for -xarch=, allow all -A archs
	in -xarch= as well.
	(md_show_usage): Update usage text.

2000-08-16  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.c (do_bx): Warn about "bx px" not being very
	useful.

2000-08-15  Will Cohen  <wcohen@redhat.com>

	* config/tc-sh.h (DWARF2_LINE_MIN_INSN_LENGTH): Defined.

	* config/tc-sh.c (md_assemble): Changed so debug_type
	test performed for ppi_assemble
	* config/tc-sh.c: Included dwarf2dbg.h.
	(debug_line): Defined.
	(md_assemble): Generates dwarf2 line info.
	(sh_finalize): New function.  Finalize dwarf2 info.
	(assemble_ppi): Returns size of code generated.
	(build_Mytes): Returns size of code generated.
	(md_pseudo_table): Added "file" and "loc" psuedo ops.
	* config/tc-sh.h (md_end): Defined.
	(sh_finalize): Declared.

2000-08-15  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-sh.c (md_apply_fix) [BFD_RELOC_32, BFD_RELOC_16]: Use
	md_number_to_chars.

2000-08-14  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.c (do_bx): Allow "bx pc".

2000-08-14  Jim Wilson  <wilson@cygnus.com>

	* config/tc-ia64.c (md_longopts): Add -mconstant-gp and -mauto-pic.
	(md_parse_option):  Add OPTION_MCONSTANT_GP and OPTION_MAUTO_PIC.
	(md_begin): Change assignment to md.flag to OR in the new bit.

2000-08-14  Mark Elbrecht  <snowball3@bigfoot.com>

	* config/obj-coff.c (obj_coff_endef) [BFD_ASSEMBLER]: Set the debug
	flag for storage types C_ARG, C_REGPARM, C_FIELD, C_MOS, C_MOE,
	C_MOU, and C_EOS.

2000-08-14  Jason Eckhardt  <jle@cygnus.com>

	* NEWS: Mention i860 support.

2000-08-14  Jeffrey A Law  (law@cygnus.com)

	* config/tc-mn10300.h (DWARF2_LINE_MIN_INSN_LENGTH): Define.

2000-08-14  Andreas Schwab  <schwab@suse.de>

	* doc/c-arm.texi (ARM Directives): Fix warnings from makeinfo.

2000-08-11  Andreas Schwab  <schwab@suse.de>

	* doc/c-i860.texi (Opcodes for i860): Remove braces from @item
	argument.

2000-08-11  Kazu Hirata  <kazu@hxi.com>

	* expr.c: Fix formatting.
	* config/obj-bout.c: Likewise.

2000-08-10  Jason Eckhardt  <jle@cygnus.com>

	* doc/c-i860.texi: Flesh out the i860 section more.

2000-08-10  Kazu Hirata  <kazu@hxi.com>

	* symbols.c: Fix formatting.
	* expr.c: Likewise.

2000-08-09  Diego Novillo <dnovillo@cygnus.com>

	* config/tc-i386.c (md_assemble): Skip suffix check if the opcode
	modifier has the IgnoreSize bit set.

2000-08-09  Alan Modra  <alan@linuxcare.com.au>

	From  Rodney Brown  <RodneyBrown@mynd.com>
	* configure.in: Use elf on Unixware 7 (i586-sco-sysv5uw7.1.0)
	* configure: Regenerate.

2000-08-09  Kazu Hirata  <kazu@hxi.com>

	* hash.c: Fix formatting.
	* gasp.c: Likewise.

2000-08-08  Jason Eckhardt  <jle@cygnus.com>

	* config/tc-i860.h: Rework completely for BFD_ASSEMBLER.
	(i860_fix_info): New enum.
	(MD_APPLY_FIX3): Define.
	(WORKING_DOT_WORD): Define.
	(TC_HANDLES_FX_DONE): Define.
	(DIFF_EXPR_OK): Define.
	(LISTING_HEADER): Define.
	(TARGET_FORMAT): Select target format based on endian flag.
	(TARGET_BYTES_BIG_ENDIAN): Default to little endian.
	(target_big_endian): Add external declaration.

	* config/tc-i860.c: All existing code reworked completely. Other
	new code shown below.
	(SYNTAX_SVR4): Define.
	(target_warn_expand): New variable.
	(md_shortopts): Declare and define (-Qy, -Qn, and -V options).
	(md_longopts): Declare and define with new options (-EL, -EB,
	and -mwarn-expand).
	(md_show_usage): New function.
	(md_operand): New function.
	(obtain_reloc_for_imm16): New function.
	(md_apply_fix3): New function.
	(tc_gen_reloc): New function.

2000-08-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/tc-m68hc11.c (build_jump_insn): Make sure the
	2 bytes of the jump address are in the same frag.
	(find): Accept 68hc12 register indirect modes.

	* NEWS: Mention 68HC11 & 68HC12 support.

2000-08-07  Richard Henderson  <rth@cygnus.com>

	* config/tc-ia64.c (unwind): Add prologue_mask member.
	(dot_vframe): Elide psp_gr record if it overlaps prologue_gr.
	(dot_save): Likewise for pfs_gr, rp_gr, and preds_gr.
	(dot_body): Clear unwind.prologue_mask.
	(dot_prologue): Set it.  Accept a register second argument.

2000-08-07  Kazu Hirata  <kazu@hxi.com>

	* config/atof-ieee.c: Fix formatting.
	* config/atof-tahoe.c: Likewise.

2000-08-06  Nick Clifton  <nickc@cygnus.com>

	* config/tc-sparc.c (md_begin): Fix typo in recent formatting
	work.

	* doc/as.texinfo (Pseudo Ops): Update to include descriptions
	of .popsection, .previous, .pushsection, .subsection,
	.version, .vtable_entry, .vtable_inherit and .weak.

2000-08-05  Kazu Hirata  <kazu@hxi.com>

	* config/tc-cris.c: Fix formatting.
	* config/tc-i386.c: Likewise.
	* config/tc-sparc.c (sparc_ip): Simplify the code.

2000-08-04  Kazu Hirata  <kazu@hxi.com>

	* config/tc-cris.c: Rearrange code for readability.
	* config/tc-d10v.c: Fix formatting.
	* config/tc-m32r.c: Likewise.
	* config/tc-sparc.c: Likewise.

2000-08-02  Jim Wilson  <wilson@cygnus.com>

	* config/tc-ia64.c (emit_one_bundle): Call ia64_free_opcode
	before ia64_find_opcode.
	(md_assemble): Likewise.

2000-08-01  Nick Clifton  <nickc@cygnus.com>

	* config/tc-arm.c (do_mrs): Fix skip of 'cpsr_all' flag.
	Undo some formatting fixes.

2000-08-01  Kazu Hirata  <kazu@hxi.com>

	* config/obj-som.c: Fix formatting.
	* config/obj-ieee.c: Likewise.
	* config/tc-arm.c: Likewise.
	* config/tc-v850.c: Likewise.

2000-08-01  Nick Clifton  <nickc@redhat.com>

	* doc/c-m68k.texi (section M680x0 Options): Turn into a table
	index by command line option.

2000-08-01  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* doc/c-m68k.texi (@cindex @samp{--pcrel}): Rewrite option description.
	(@node M68K-Branch): Rewrite to match the reality.

2000-07-31  Jason Eckhardt  <jle@cygnus.com>

	* doc/c-i860.texi: New file.
	* doc/Makefile.am (CPU_DOCS): Add c-i860.texi.
	* doc/Makefile.in: Regenerate.
	* doc/all.texi: Add I860 as relevant architecture.
	* doc/as.texinfo: Include i860 dependent file c-i860.texi.

2000-07-31  Kazu Hirata  <kazu@hxi.com>

	* config/tc-d30v.c: Fix formatting.

2000-07-31  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* config/tc-m68k.c (flag_keep_pcrel, OPTION_PCREL): Add --pcrel option.
	(md_convert_frag_1, md_estimate_size_before_relax): When making DBcc
	long emit a long branch if available instead of an absolute jump, never
	emit absolute jumps for anything with --pcrel.

	* doc/c-m68k.texi: Document new command line option.

2000-07-29  Marek Michalkiewicz  <marekm@linux.org.pl>

	* config/tc-avr.c: Use PARAMS macro in function declarations.
	Don't declare md_pcrel_from_section (already in tc-avr.h).
	(avr_operands): Use AVR_UNDEF_P and AVR_SKIP_P macros.
	(avr_operand): Don't set (unsigned) op_mask to -1.

2000-07-28  Jason Eckhardt  <jle@cygnus.com>

	* configure.in: Add bits for i860-stardent-{sysv4, elf}*.
	* configure: Regenerated.
	* config/obj-elf.c (obj_elf_type): Recognize a fifth type
	of operand to the .type directive (.e.g, "type").

2000-07-28  Alan Modra  <alan@linuxcare.com.au>

	* as.h (warn_comment, found_comment, found_comment_file): Declare.
	* app.c (do_scrub_chars): Record where first comment found.
	* read.c (read_a_source_file): Init found_comment on entry, and
	notify whether comments found on exit.
	* config/tc-hppa.c (md_shortopts): Add "c".
	(md_longopts): Add warn-comment.
	(md_parse_option): Handle it.
	(md_show_usage): Show available options.
	* config/tc-hppa.h (WARN_COMMENTS): Define if TE_LINUX

2000-07-27  Andrew Cagney  <cagney@b1.cygnus.com>

	* config/tc-mn10300.c (md_convert_frag): Fix printfs.
	(tc_gen_reloc): Add cast when assigning bfd_abs_symbol to
	sym_ptr_ptr
	(md_estimate_size_before_relax): Don't fall off end of function.

2000-07-27  Kazu Hirata  <kazu@hxi.com>

	* config/tc-avr.c: Fix formatting.
	* config/tc-ns32k.c: Likewise.

2000-07-27  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-d10v.c (find_opcode): Remove extraneous `='.

2000-07-27  Kazu Hirata  <kazu@hxi.com>

	* config/tc-d10v.c: Fix formatting.
	* config/tc-z8k.c: Likewise.
	* config/tc-sparc.c: Likewise.

2000-07-26  Dave Brolley  <brolley@redhat.com>

	* cgen.c (queue_fixup): Declare opinfo.
	(gas_cgen_parse_operand): Mark unused parameters with ATTRIBUTE_UNUSED.
	(gas_cgen_md_operand): Ditto.
	(gas_cgen_md_apply_fix3): Ditto.

2000-07-24  Mark Elbrecht  <snowball3@bigfoot.com>

	* config/obj-coff.c (obj_frob_symbol): Don't merge
	labels. Don't merge if the symbol isn't constant. Return
	immediately if a symbol is merged.

2000-07-22  Alan Modra  <alan@linuxcare.com.au>

	* frags.c (frag_align): Correct absolute section alignment.

2000-07-20  DJ Delorie  <dj@redhat.com>

	* config/obj-coff.c (obj_frob_symbol): revert previous change,
	it breaks linking against DLLs.

2000-07-20  Hans-Peter Nilsson  <hp@axis.com>

	* configure.in: Add CRIS support.
	* configure: Regenerate.
	* Makefile.am: (CPU_TYPES): Add cris.
	(CPU_OBJ_VALID) [aout]: Add cris.
	(MULTI_CPU_TYPES): Add cris.
	(MULTI_CPU_OBJ_VALID) [aout]: Add cris.
	[coff]: Only i386 and mips are valid.
	(TARGET_CPU_CFILES): Add config/tc-cris.c.
	(TARGET_CPU_HFILES): Add config/tc-cris.h.
	(MULTI_CFILES): Add config/e-crisaout.c and config/e-criself.c.
	Regenerate dependencies.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* as.c: Declare crisaout, criself.
	* config/tc-cris.h, config/tc-cris.c: New.
	* config/e-criself.c, config/e-crisaout.c: New.
	* po/POTFILES.in, po/gas.pot: Regenerate.

2000-07-20  Kazu Hirata  <kazu@hxi.com>

	* read.c: Fix formatting.
	* write.c: Fix formatting.

2000-07-19  H.J. Lu  <hjl@gnu.org>

	* sb.c: Include <stdlib.h> if exists for abort ().

2000-07-19  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.c (hppa_fix_adjustable): Correct LR%/RR% comment.
	(arg_reloc_stub_needed): #ifdef OBJ_SOM, not #ifdef SOM.
	(pa_type_args): Same here.

2000-07-17  Mark Elbrecht  <snowball3@bigfoot.com>

	* config/obj-coff.c (obj_frob_symbol): Don't merge labels. Don't
	merge if the symbol isn't constant. Don't call S_SET_EXTERNAL if
	the storage class is already set.

2000-07-17  Kazu Hirata  <kazu@hxi.com>

	* config/tc-m68hc11.c: Fix formatting.
	* config/tc-mn10200.c: Likewise.
	* config/tc-mn10300.c: Likewise.
	* config/tc-pj.c: Likewise.
	* config/tc-tic80.c: Likewise.
	* config/tc-w65.c: Likewise.

2000-07-17  Frank Ch. Eigler  <fche@redhat.com>

	* expr.c (operand): Permit %bin literals if LITERAL_PREFIXPERCENT_BIN
	is defined.

2000-07-15  Ian Lance Taylor  <ian@zembu.com>

	* doc/c-mips.texi (MIPS Opts): Remove erroneous space after
	@code.

2000-07-15  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.c (hppa_fix_adjustable): Use the same checks for
	ELF as are used for SOM (except the 32-bit reloc one) to decide
	whether a symbol can be reduced to a section symbol.  Expand on
	the comment for symbols involved in LR% and RR% expressions.

2000-07-14  Nick Clifton  <nickc@cygnus.com>

	* config/tc-mips.c (mips_disable_float_construction): New
	static variable.  Set to true if doubles should not be
	constructed by loading two single width fp registers with
	halves of the value.
	(mips_ip): Test mips_disable_float_construction.
	(md_longopts): Add command line switches --construct-floats
	and --no-construct-floats.
	(md_parse_option): Parse new command line options.
	(md_show_usage): Describe new command line options.

	* doc/c-mips.texi: Document new command line options.

2000-07-13  Koundinya K  <kk@ddeorg.soft.net>

	* configure.in: Remove the test /usr/dde for mips-*-sysv4*MP*
	* configure: Regenerate.

2000-07-13  Hans-Peter Nilsson  <hp@axis.com>

	* configure.in (DEFAULT_EMULATION setting): Revert part of
	2000-07-01 change that set te_multi=multi unless set to tmips.
	* configure: Regenerate.

2000-07-12  Mark Elbrecht  <snowball3@bigfoot.com>

	* config/obj-coff.c (coff_frob_section): Add padding to the last
	section when aligning it increases its size.

2000-07-11  Kazu Hirata  <kazu@hxi.com>

	* config/tc-tic54x.c: Fix formatting.

2000-07-10  Kazu Hirata  <kazu@hxi.com>

	* config/tc-h8500.c: Fix formatting.
	* config/tc-tic54x.c: Fix formatting.

2000-07-10  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.c (md_apply_fix): Check fmt 12 and 22 pc-rel
	displacements correctly.

	* read.h (s_abort): Add ATTRIBUTE_NORETURN.

2000-07-10  Ryan Bradetich  <rbradetich@uswest.net>

	* hash.c (hash_insert): Add cast to obstruct_alloc to fix
	warning.
	(hash_jam): Ditto.

2000-07-09  Alan Modra  <alan@linuxcare.com.au>

	From  David Huggins-Daines  <dhd@linuxcare.com>
	* config/te-hppalinux64.h: Add a new emulation.
	* configure.in (emulations): Add configure bits to support the
	64-bit Linux/parisc target.
	* configure: Regenerate.

	* config/tc-hppa.c (md_parse_option): Support `-V' for ELF.
	(md_shortopts): Add `V' for ELF.

	* config/tc-hppa.c (arg_reloc_stub_needed): Define as zero except
	when SOM or ELF_ARG_RELOC are defined.
	(pa_type_args): Only set symbol_arg_reloc_info when SOM or
	ELF_ARG_RELOC are defined.
	(pa_stringer_aux): Don't pa_check_current_space_and_subspace here..
	(pa_stringer): ..Do it here instead.  Fix comment typos.
	(hppa_force_relocation): Cast enums to int before comparing with
	ints.

	From  Ryan Bradetich  <rbradetich@uswest.net>
	* config/tc-hppa.c: Removed unneeded libbfd.h to fix macro
	redifinition warning.
	(md_apply_fix): Added cast from enum to int for fixP->fx_r_type.
	(hppa_force_relocation): ditto
	(md_apply_fix): Added cast to buf to fix warnings.

	* config/tc-hppa.h (pa_define_label, parse_cons_expression_hppa,
	cons_fix_new_hppa, hppa_force_relocation): Prototype.

	* config/tc-hppa.c (reloc_type): It's an enum for OBJ_ELF.
	(R_N0SEL, R_N1SEL): Define only for OBJ_SOM.
	(tc_gen_reloc): Make `code' a reloc_type and `codes' a
	reloc_type** to avoid warnings in switch.
	(md_apply_fix): Make insn, val signed.  Zap buf_wd and read insn a
	little earlier instead.

	* config/tc-hppa.c (symbol_arg_reloc_info): Define for both som
	and elf.
	(pa_type_args): Use symbol_arg_reloc_info.
	(struct pa_it): Make arg_reloc unsigned int.
	(struct hppa_fix_struct): Likewise for fx_arg_reloc.
	(pa_text, pa_data, pa_comm): Don't compile for TE_LINUX.
	(pa_code): Delete.  pa_text duplicates this function.
	(md_pseudo_table): Call obj_elf_text for ".code" if TE_LINUX.
	(fix_new_hppa): Argument offset is offsetT, arg_reloc is unsigned
	int.
	(cons_fix_new_hppa): Actually change selector to e_fsel when
	warning about assuming so.
	(tc_gen_reloc): More example elf arg reloc code.
	(md_apply_fix): Use arg_reloc_stub_needed for elf too.
	(hppa_force_relocation): Likewise.

	* config/tc-hppa.h: Use TARGET_ARCH_SIZE to select target include
	files.
	(pa_end_of_source): Prototype.
	(hppa_fix_adjustable): Prototype.
	(LABELS_WITHOUT_COLONS): Move it..
	* config/te-hppa.h: To here.

	* config/te-hppa64.h: New file.

	* config/tc-hppa.c: Use TARGET_ARCH_SIZE to select target reloc
	type.
	(md_apply_fix): Pass stdoutput to bfd_hppa_insn2fmt.  Handle
	format -10, -16, 16 relocs.
	(hppa_elf_mark_end_of_function): Test for null
	last_call_info->start_symbol

	* config/tc-hppa.c (pa_ip): In case 'V', pass `strict' to
	CHECK_FIELD, not INSERT_FIELD_AND_CONTINUE.  Don't pass opcode to
	re_assesmble_* functions.  Delete extraneous statements.  Fix
	typos in comments.
	(md_apply_fix): Compare against 1048575 in case 21.  Don't pass
	insn to re_assemble_*.

2000-07-08  Ulf Carlsson  <ulfc@engr.sgi.com>

	* doc/internals.texi (Expressions): Fix typo.

2000-07-08  Kazu Hirata  <kazu@hxi.com>

	* config/tc-sh.c: Fix formatting.
	* config/tc-tic54x.c: Fix formatting.
	* depend.c: Fix formatting.
	* flonum-konst.c: Likewise.
	* flonum-mult.c: Likewise.

2000-07-07  Kazu Hirata <kazu@hxi.com>

	* config/tc-sh.c: Fix comments.
	* config/obj-vms.c: Fix comments.
	* config/tc-a29k.c: Likewise.
	* config/tc-alpha.c: Likewise.
	* config/tc-h8300.c: Likewise.
	* config/tc-h8500.c: Likewise.
	* config/tc-i370.c: Likewise.
	* config/tc-ia64.c: Likewise.
	* config/tc-m68hc11.c: Likewise.
	* config/tc-m68k.c: Likewise.
	* config/tc-mips.c: Likewise.
	* config/tc-ns32k.c: Likewise.
	* config/tc-ppc.c: Likewise.
	* config/tc-z8k.c: Likewise.

2000-07-06  Mark Elbrecht  <snowball3@bigfoot.com>

	* config/obj-coff.c (TC_COFF_SECTION_DEFAULT_ATTRIBUTES): New.
	Default to '(SEC_LOAD | SEC_DATA)'.
	(obj_coff_section) [BFD_ASSEMBLER]: Use it.

	* doc/internals.texi (CPU Backend): Describe
	TC_COFF_SECTION_DEFAULT_ATTRIBUTES.

2000-06-06  Andrew Cagney  <cagney@b1.cygnus.com>

	* as.c (parse_args): NULL terminate the long option list.

2000-06-04  Andrew Cagney  <cagney@b1.cygnus.com>

	* config/tc-d30v.h: Include "write.h" for fixS.
	(d30v_start_line, md_pcrel_from_section): Add function prototypes.

2000-07-05  Nick Clifton  <nickc@cygnus.com>

	* config/tc-d30v.c (write_2_short): Further changes to warning
	messages produced when combining EITHER_BUT_PREFER_MU attributed
	opcodes.

2000-07-05  DJ Delorie  <dj@redhat.com>

	* MAINTAINERS: new

2000-07-04  Alexandre Oliva  <aoliva@redhat.com>

	* config/tc-arm.c (psrs): Accept combinations of flags.

2000-07-03  Marek Michalkiewicz  <marekm@linux.org.pl>

	* config/tc-avr.c: Change _ () to _() around all strings marked
	for translation (exception from the usual coding style).
	(avr_opt): New struct variable, how the new switches are set.
	(OPTION_MMCU): Define as 'm' and actually use.
	(md_longopts): Add -mall-opcodes, -mno-skip-bug, -mno-wrap.
	(show_mcu_list): New function, display the list of known MCUs.
	(md_show_usage): Document the new switches.  Call show_mcu_list.
	(avr_set_arch): Change 'm' to OPTION_MMCU.
	(md_parse_option): Call show_mcu_list if unknown MCU specified.
	Handle the new switches.
	(avr_operands): Disable warnings for undefined combinations of
	operands if -mall-opcodes.  Disable warnings for skipping two-word
	instructions if enhanced core or -mno-skip-bug.
	(avr_operand): Accept all addressing modes on avr1 if -mall-opcodes.
	(md_apply_fix3): Reject 8K wrap if >8K or -mno-wrap.
	(md_assemble): Accept opcodes not supported by MCU if -mall-opcodes.
	(avr_ldi_expression): Warn about implicit lo8().
	* config/tc-avr.h (md_pcrel_from_section): Add prototype.

2000-07-01  Koundinya K  <kk@ddeorg.soft.net>

	* configure.in: Add entry for mips-*-sysv4*MP*
	* configure: Rebuild
	* config/tc-mips.c (mips_target_format): Return elf32-tradbigmips or
	elf32-tradlittlemips for traditional mips targets.
	* config/tc-mips.c (md_estimate_size_before_relax): Duplicate the
	test for Link Once sections as in adjust_reloc_syms.
	* config/te-tmips.h: New file for traditional mips targets. Define
	TE_TMIPS.

2000-06-29 Mark Elbrecht <snowball3@bigfoot.com>

	* config/obj-coff.c (obj_coff_setcion) [BFD_ASSEMBLER]: If the
	flags argument is not present, don't change an existing section's
	section's attributes. If the flags argument is present, warn if the
	attributes don't match the section's current attributes. When
	long section names are supported, set SEC_LINK_ONCE and
	SEC_LINK_DUPLICATES_DISCARD for a new .gnu.linkonce section.

2000-06-29  Hans-Peter Nilsson  <hp@axis.com>

	* config/obj-aout.c (obj_aout_type): Do not ignore for undefined
	symbols; create them.

2000-06-29 Mark Elbrecht <snowball3@bigfoot.com>

	* write.c (set_segment_vma): New: Set vma and lma for a segment.
	(write_object_file) [BFD_ASSEMBLER && OBJ_COFF && TE_GO32]: Use it.

2000-06-27  Aldy Hernandez  <aldyh@redhat.com>

	* config/tc-mips.c (mips_ip): handle "(foo-.-4)" type of
	expressions.  Ignore the problem when handling 16 bit signed
	immediates, because the assembler will take care of the relocation
	later.

2000-06-27  Nick Clifton  <nickc@cygnus.com>

	* config/tc-d30v.c (write_2_short): Do not allow opcodes with
	the EITHER_BUT_PREFER_MU attribute to be combined into a reverse
	sequential order, and emit warning messages if the input source
	code contains constructs like that, or parallel constructs
	containing such opcodes.

2000-06-26  Marek Michalkiewicz  <marekm@linux.org.pl>

	* config/tc-avr.c (mcu_types): Rename avr4 to avr5, add avr4.
	Add more MCU types for avr4 and avr5.  Replace at94k{10,20,40}
	with just at94k.  Change AVR_ISA_85xx back to AVR_ISA_2xxx.
	(md_show_usage): Update usage message.
	(md_parse_option): Allow redefinition of MCU type within the
	same avr[1-5] bfd machine type.  Show both old and new MCU type
	in the error message.
	(md_apply_fix3): Support 8K wrap if AVR_ISA_MEGA is not set.
	Simplify 8K wrap code.

2000-06-25  Kazu Hirata  <kazu@hxi.com>

	* config/obj-aout.c: Remove all uses of DEFUN.
	* config/obj-ieee.c: Likewise.
	* config/tc-sh.c: Fix comment typos.
	* config/tc-tahoe.c: Likewise.
	* config/tc-vax.c: Likewise.
	* config/tc-w65.c: Likewise.
	* config/tc-z8k.c: Likewise.
	* config/tc-h8300.c (build_bytes): Assemble ldmac correctly.

2000-06-24  DJ Delorie  <dj@cygnus.com>

	* config/tc-i386.c (md_estimate_size_before_relax): Revert
	more changes from Sept 1999
	(tc_i386_fix_adjustable): ditto
	(md_apply_fix3): ditto

2000-06-24  Frank Ch. Eigler  <fche@redhat.com>

	* cgen.c (expr_jmp_buf_p): New validity flag for expr_jmp_buf.
	(gas_cgen_parse_operand): Set it around expression() call.
	(gas_cgen_md_operand): Test for it before longjmp().

2000-06-24  Kazu Hirata  <kazu@hxi.com>

	* config/tc-h8500.c: Remove all uses of DEFUN.
	* config/tc-sh.c: Likewise.
	* config/tc-w65.c: Likewise.
	* config/tc-z8k.c: Likewise.

	* config/tc-h8500.c: Fix typos in comments.

2000-06-23  Frank Ch. Eigler  <fche@redhat.com>

	* expr.c (operand): Permit $hex literals if LITERAL_PREFIXDOLLAR_HEX
	is defined.

2000-06-23  matthew green  <mrg@redhat.com>

	* expr.c (operand): Do not as_bad() if RELAX_PAREN_GROUPING is
	defined.  Fix error message for `[' grouping.

2000-06-22  Kazu Hirata  <kazu@hxi.com>

	* config/tc-h8300.c: Fix formatting and comment typos.

2000-06-22  Timothy Wall  <twall@cygnus.com>

	* config/tc-ia64.c (note_register_values): Move premature QP
	notation clearing into the appropriate place.

2000-06-22  Alan Modra  <alan@linuxcare.com.au>

	* dep-in.sed: Escape literal `.'s on patterns.  Trim off `../'
	first before anything else.  Add bin-bugs.h, emul.h and progress.h
	Sort list of files as for $(OBJS) in Makefile.am.

	* Makefile.am (DEP): grep for leading `/' in DEPA, and fail if we
	find one.  Remake dependencies.
	($(OBJS)): Add bin-bugs.h, emul.h, and progress.h  Sort the list.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.

	* config/tc-i386.c (i386_displacement): Don't assume a constant
	displacement is necessarily 16 bits when in 16 bit code mode.
	(md_assemble): Instead size the displacement here after we know
	for sure that a .code16gcc operand hasn't automatically added
	operand size prefixes.

2000-06-21  H.J. Lu  <hjl@gnu.org>

	* Makefile.am: Rebuild dependency.
	* Makefile.in: Rebuild.

2000-06-21  Kazu Hirata  <kazu@hxi.com>

	* config/tc-h8300.c (parse_reg): Make the function static.
	(parse_exp): Likewise.

2000-06-20  DJ Delorie  <dj@cygnus.com>

	* config/tc-i386.c (tc_i386_fix_adjustable): Revert change from
	Sept 1999; RVA relocs need to be treated more like DIR32 relocs
	for cygwin import libraries to work properly.

2000-06-20  H.J. Lu  <hjl@gnu.org>

	* Makefile.am: Rebuild dependency.
	* Makefile.in: Rebuild.
	* configure: Likewise.
	* doc/Makefile.in: Likewise.

2000-06-20  Timothy Wall  <twall@cygnus.com>

	* doc/internals.texi (CPU backend): Add @itemx for
	TC_START_LABEL_WITHOUT_COLON.
	* doc/c-tic54x.texi: New.
	* doc/as.texinfo: Add tic54x features and include primary tic54x
	documentation file.
	* doc/all.texi: Add C54X.
	* doc/Makefile.am (CPU_DOCS): Add c-tic54x.texi.
	* doc/Makefile.in: Regenerate.
	* configure.in: Add tic54x and define LIBM for tic54x.
	* configure: Regenrate.
	* config/tc-tic54x.[ch]: New.
	* config/obj-coff.h: Add tic54x.
	* Makefile.am: (CPU_TYPES): Add tic54x.
	(TARGET_CPU_CFILES): Add 'tc-tic54x.c'.
	(TARGET_CPU_HFILES): Add 'tc-tic54x.h'.
	(as_new_LDADD): Add $(LIBM).
	* Makefile.in: Regenerate.

2000-06-18  Stephane Carrez  <stcarrez@worldnet.fr>

	* doc/Makefile.am (CPU_DOCS): Added 68hc11 file.
	* doc/c-m68hc11.texi: Document 68HC11 and 68HC12 port.
	* doc/as.texinfo: Likewise.

	* configure, Makefile.in: Regenerate.
	* configure.in (emulations): Recognize m6811 and m6812.
	* Makefile.am (CPU_TYPES, TARGET_CPU_CFILES, TARGET_CPU_HFILES):
	Added files for 68hc11 and 68hc12 assembler.
	* config/tc-m68hc11.c: Assembler for 68hc11 and 68hc12.
	* config/tc-m68hc11.h: Header definition for that assembler.

2000-06-18  Nick Clifton  <nickc@redhat.com>

	* symbols.c (resolve_symbol_value): Use bfd_octets_per_byte
	instead of OCTETS_PER_BYTE.

	* config/tc-v850.c: Fix compile time warnings.
	* config/tc-ppc.c: Fix compile time warnings.

2000-06-18  H.J. Lu <hjl@gnu.org>

	* configure.in: Don't emulate i386-pc-pe-coff with i386coff.
	* configure: Rebuild.

2000-06-17 Mark Elbrecht <snowball3@bigfoot.com>

	* config/obj-coff.c (obj_coff_weak): Typo fix: Change BFD_ASSEMLER
	to BFD_ASSEMBLER.

2000-06-16  Nick Clifton  <nickc@cygnus.com>

	* config/tc-mips.c (md_parse_option): Accept RM5200,RM5230,
	RM5231, RM5261, RM5721 and RM7000 as r5000 cpu variants.

	* doc/c-mips.texi: Document newly accepted cpu variants.

2000-06-15  Ulf Carlsson  <ulfc@engr.sgi.com>

	* config/tc-mips.h: Remove definition of ONLY_STANDARD_ESCAPES.

2000-06-13  Ulf Carlsson  <ulfc@engr.sgi.com>

	* macro.c (getstring): Make it possible to escape the quote
	character.

2000-06-13  Catherine Moore <clm@redhat.com>

	* config/tc-hppa.c (pa_export): Weak symbols can be global.

2000-06-13  H.J. Lu  <hjl@gnu.org>

	* configure: Regenerate.

2000-06-09  Alan Modra  <alan@linuxcare.com.au>

	* app.c (do_scrub_begin): Don't default lex[';'] as a line
	separator.
	* doc/internals.texi (line_separator_chars): Semicolon is no
	longer a default.  Mention null and newline as defaults.

	* read.c (is_end_of_line): Remove ifdef TC_HPPA.

	* config/tc-i386.h (line_separator_chars): Explicitly mention `;'
	* config/tc-i860.h (line_separator_chars): Likewise.
	* config/tc-h8300.c (line_separator_chars): Likewise.
	* config/tc-i960.c (line_separator_chars): Likewise.
	* config/tc-m68k.c (line_separator_chars): Likewise.
	* config/tc-mips.c (line_separator_chars): Likewise.
	* config/tc-ns32k.c (line_separator_chars): Likewise.
	* config/tc-sparc.c (line_separator_chars): Likewise.
	* config/tc-vax.c (line_separator_chars): Likewise.

	* config/tc-h8300.c (comment_chars): Use string initialiser.
	* config/tc-i960.c (line_comment_chars): Likewise.
	* config/tc-z8k.c (comment_chars, line_comment_chars,
	line_separator_chars): Likewise.

	* config/tc-arm.c (line_separator_chars): Always use `;', not just
	for TE_LINUX.

2000-06-08  Nick Clifton  <nickc@cygnus.com>

	* config/tc-arm.c (cons_fix_new_arm): Assign correct reloc value
	for size 1 fixes.

2000-06-08  David O'Brien  <obrien@FreeBSD.org>

	* configure.in (VERSION): Update to show this is the CVS mainline.

2000-06-08  Matthew Jacob  <mjacob@feral.com>

	* config/tc-alpha.c (md_undefined_symbol): Properly understand that
	$at is the integer register $r28, vs. both $r28 and the floating
	point register $f28.

2000-06-08  James E. Wilson  <wilson@cygnus.com>

	* config/tc-ia64.c (generate_unwind_image): Call ia64_flush_insns.
	(dot_endp): Don't call ia64_flush_insns.
	(emit_one_bundle): Don't delete prologue/body records from
	unwind_record list in first loop.  Rewrite second loop to account for
	this.

2000-06-07  David Mosberger  <davidm@hpl.hp.com>

	* config/tc-ia64.c: Add missing prototypes.
	(generate_unwind_image): Cast argument to output_unw_records call.

2000-06-07  Denis Chertykov  <denisc@overta.ru>

	* config/tc-avr.c (avr_operand): fix the formatting of the comment.

2000-06-07  Denis Chertykov  <denisc@overta.ru>

	* config/tc-avr.c (AVR_ISA_???): moved to include/opcode/avr.h
	(REGISTER_P): likewise.
	(avr_opcodes): uses include/opcode/avr.h
	(avr_operand): enable ld r,Z or st r,Z for at90s1200.

2000-06-04  Alan Modra  <alan@linuxcare.com.au>

	* read.c (is_end_of_line): No ';' for TC_HPPA.  Add missing
	initializers too.

2000-06-03  H.J. Lu  <hjl@gnu.org>

	* read.c (is_end_of_line): Put back `;'.

2000-06-03  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-i386.c (md_shortopts): Remove 'm', add 'q' to non-elf.

2000-06-01  Alan Modra  <alan@linuxcare.com.au>

	* expr.c (operand): Test is_end_of_line outside switch to catch
	line separator chars that are also operators.
	(operator): Return O_illegal for line separator chars.

	* read.c (is_end_of_line): Use 1 instead of 99.  Don't set `;'
	entry (or `!' entry for TC_HPPA).

	* config/tc-arm.c (my_get_float_expression): Cast to unsigned char
	before indexing is_end_of_line.  Remove redundant check for '\0'.
	(fp_op2): Likewise.
	* config/tc-h8500.c (md_assemble): Likewise.
	* config/tc-mcore.c (md_assemble): Likewise.
	* config/tc-tic30.c (tic30_find_parallel_insn): Likewise.
	(md_atof): Likewise

	* config/tc-m88k.c (s_bss): Cast to unsigned char before indexing
	is_end_of_line.
	* config/tc-mcore.c (mcore_cons): Likewise.
	(mcore_float_cons): Likewise.
	(mcore_stringer): Likewise.
	* config/tc-tic30.c (tic30_find_parallel_insn): Likewise.

2000-06-01  Scott Bambrough <scottb@netwinder.org>

	* config/tc-arm.c (do_mrs): Allow SPSR_BIT to be set correctly.

2000-05-29  Nick Clifton  <nickc@cygnus.com>

	* config/tc-sh.c: Fix compile time warning messages.

	* config/tc-mips.c: Fix compile time warning messages.

2000-05-29  Philip Blundell  <philb@gnu.org>

	* doc/as.texinfo: Update copyright dates.
	(Local Labels): Delete misplaced mention of ARM.
	* NEWS: Mention ARM ELF support.

2000-05-27  Alexandre Oliva  <aoliva@cygnus.com>

	* config/tc-mn10300.c (md_assemble): Copy size to real_size before
	it is modified, and use the real_size to compute the frag address
	for dwarf2 line info.

2000-05-27  Alan Modra  <alan@linuxcare.com.au>

	* Makefile.am (DEP, DEP1, dep, dep-in, dep-am): Use a better sed
	line-matching scheme to cope with automake moving variables around.
	($(TARG_CPU_O)): Remove dependency on TARG_CPU_DEP_@target_cpu_type@
	* Makefile.in: Regenerate.

2000-05-26  Jakub Jelinek  <jakub@redhat.com>

	* config/tc-sparc.c (sparc_relax): New.
	(md_longopts): Add -relax and -no-relax options.
	(md_parse_options, md_show_usage): Likewise.
	(md_apply_fix3): Optimize tail call into branch always if possible.

2000-05-04  Donald Lindsay  <dlindsay@cygnus.com>

	* config/tc-d10v.c (write_2_short, parallel_ok, md_assemble,
	d10v_cleanup) implement Mitsubishi's newly explained branch-packing
	rules, with warning when a GAS statement specifies a packing that
	will result in an instruction being squashed.
	Added typdef packing_type and enumerals, changed various integer
	literals to use the enumerals.

2000-05-24  David Mosberger  <davidm@hpl.hp.com>

	* config/tc-ia64.c (dot_restorereg_p): New function.
	(md_pseudo_table): Add restorereg.p.
	(output_X3_format): Fix typo: record type should be UNW_X3, not UNW_X1.
	(output_X4_format): Fix typo: record type should be UNW_X4, not UNW_X2.

	* config/tc-ia64.h (unw_record_type): Add unwabi.
	(unw_r_record): Rename member MASK to GRMASK.  Add sub-structure
	called MASK with members for imask, and the masks produced by
	fr_mem, gr_mem, br_mem, and frgr_mem.
	(unw_p_record): Add members ABI and CONTEXT.
	(unw_x_record): Add member AB.
	* config/tc-ia64.c (enum reg_symbol): Add REG_PSP and REG_PRIUNAT
	as pseudo-register for use during unwind info generation.
	(AR_PFS, AR_LC): New macros.
	(enum pseudo_type): Add PSEUDO_FUNC_REG to permit declaring registers
	whose names start with an at sign (as in "@priunat").
	(pseudo_func): Add "svr4", "hpux", "nt" constants and "priunat"
	register.
	(unwind_list, unwind_tail, current_unwind_entry, proc_start,
	proc_end, unwind_info, personality_routine): Consolidate into
	"unwind" structure to reduce offset-table use.  Add member
	NEXT_SLOT_NUMBER to track the slot number for the next instruction
	to be emitted.
	(output_R1_format, output_R3_format, output_P3_format,
	output_P6_format): Initialize R with zero to reduce compiler warnings.
	(output_P7_format): Ditto.  Add `default' branch to switch
	statement to reduce compiler warnings.
	(output_P8_format, output_B1_format, output_B4_format): Ditto.
	(output_P4_format): Rename 2nd & 3rd arg to IMASK and IMASK_SIZE.
	(format_ab_reg): Rename from format_a_b_reg.  Merge A and B args
	into single argument.
	(output_X1_format, output_X3_format): Initialize R with zero to reduce
	compiler warnings.  Merge A and B args into single argument.
	(output_X2_format, output_X4_format): Remove unused variable R.  Merge
	A and B args into single argument.
	(free_record): Removed (wasn't used).
	(free_list_records): Also free imasks in prologue records.
	(output_prologue, output_prologue_gr): Initialize mask bits to zero.
	(output_spill_mask): Remove.
	(output_unwabi): New function.
	(output_epilogue, output_label_state, output_copy_state): Call
	alloc_record.
	(output_spill_psprel, output_spill_sprel, output_spill_psprel_p,
	output_spill_sprel_p, output_spill_reg, output_spill_reg_p): Add AB
	argument.
	(process_one_record): New locals FR_MASK and GR_MASK.  Ignore
	gr_mem, fr_mem, br_mem, and frgr_mem records and instead emit them
	as part of handling the prologue records.  Emit region's imask if
	we have one.  Handle unwabi, epilogue, label_state, copy_state,
	spill_psprel, spill_sprel, spill_reg, spill_psprel_p,
	spill_sprel_p, and spill_reg_p records.
	(set_imask, count_bits, slot_index): New function.
	(fixup_unw_records): Fix region size computation.  Handle
	epilogue, spill_reg, spill_sprel, spill_psprel, spill_reg_p,
	spill_sprel_p, and spill_psprel_p records.  Merge mask bits of
	frgr_mem, fr_mem, gr_mem, br_mem on a per-region basis and
	set_imask accordingly.  Update imask for gr_gr, and br_gr records.
	(convert_expr_to_ab_reg, convert_expr_to_xy_reg): New function.
	(dot_save): Use manifest constants for applicaton registers.
	Handle REG_PR and REG_PRIUNAT.
	(dot_restore): Don't just ignore it.
	(dot_restorereg): New function..
	(generate_unwind_image): Ensure unwind info is a multiple of eight
	bytes, not just four bytes.
	(dot_handlerdata, dot_unwentry): Demand empty rest of line.
	(dot_altrp): Don't just ignore it.
	(dot_savemem): New function.  Replaces dot_savesp() and
	dot_savepsp().  Use manifest constants for applicaton registers.
	Handle REG_PR and REG_PRIUNAT.
	(dot_savef): Simplify.
	(dot_saveb): Support generation of br_gr.
	(dot_spillreg, dot_spillmem, dot_spillreg_p, dot_spillmem_p,
	 dot_label_state, dot_copy_state): New function.
	(dot_unwabi): Don't just ignore it.
	(md_pseudo_table): Add restorereg, spillreg, spillsp, spillpsp,
	spillreg.p, spillsp.p, spillpsp, label_state, copy_state,
	unwabi, vframesp, and vframepsp.  Fix typo alprp->altrp.
	(emit_one_bundle): Set slot number for prologue/body records
	*before* emitting the first insn.
	(emit_one_bundle): Set UNWIND.NEXT_SLOT_NUMBER.
	(md_begin): Declare "psp" pseudo-register.
	(md_operand): Handle PSEUDO_FUNC_REG.  Fix printing of error message
	so we don't get segfault.
	(output_psp_sprel): Output sp/psp relative offsets as 4-byte word
	counts as required per SW Conventions manual
	(output_rp_psprel, output_rp_sprel, output_pfs_psprel,output_pfs_sprel,
	output_preds_psprel, output_preds_sprel, output_spill_base,
	output_unat_psprel, output_unat_sprel, output_lc_psprel,
	output_lc_sprel, output_fpsr_psprel, output_fpsr_sprel,
	output_priunat_psprel, output_priunat_sprel, output_bsp_psprel,
	output_bsp_sprel, output_bspstore_psprel, output_bspstore_sprel,
	output_rnat_psprel, output_rnat_sprel, output_spill_psprel,
	output_spill_sprel, output_spill_psprel_p, output_spill_sprel_p):Ditto.
	(dot_vframe): Implement.
	(dot_vframesp, dot_vframepsp): New function.

2000-05-23  Hans-Peter Nilsson  <hp@axis.com>

	* configure.in (i386-*-freebsd a.out entry): Quote properly.
	* configure: Regenerate.

2000-05-23  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-i386.c (md_assemble): Pass jump reloc in fr_var...
	(md_estimate_size_before_relax): so we can use it here instead of
	old kludges.  Localise vars to blocks.  Comment.

	* frags.c (frag_new): Update fr_var comments.
	* frags.h (struct frag): Ditto.

2000-05-22  Richard Henderson  <rth@cygnus.com>

	* config/tc-ia64.c (FUNC_PC_RELATIVE): New.
	(pseudo_func): Add pcrel.
	(operand_match):  Handle IA64_OPND_TGT64.
	(build_insn): Likewise.
	(md_begin): Initialize pseudo_func[FUNC_PC_RELATIVE].
	(ia64_gen_real_reloc_type): Handle FUNC_PC_RELATIVE.
	(fix_insn): Handle all three 64-bit relocation types.

2000-05-22  Hans-Peter Nilsson  <hp@axis.com>

	* obj.h (struct format_ops): New members begin, app_file,
	s_set_other, s_set_desc, s_get_type, s_set_type,
	separate_stab_sections, init_stab_section.

	* config/obj-multi.h: Update GPL notice to v2.
	(obj_begin): New.
	(obj_app_file): New.
	(S_SET_SIZE): Test s_set_size for NULL before calling.
	(S_SET_ALIGN): Similar for s_set_align.
	(S_SET_OTHER): New.
	(S_SET_DESC): New.
	(S_GET_TYPE): New.
	(S_SET_TYPE): New.
	(SEPARATE_STAB_SECTIONS): New.
	(INIT_STAB_SECTION): New.
	(EMIT_SECTION_SYMBOLS): New.
	(AOUT_STABS) [OBJ_MAYBE_AOUT]: Define.

	* config/obj-elf.h: Update GPL notice to v2.
	Mention that this file is included from obj-multi.h.
	(obj_begin): Wrap definition in ifndef.
	(elf_file_symbol): Constify declaration.
	(obj_app_file): Ditto.
	(SEPARATE_STAB_SECTIONS, INIT_STAB_SECTION, OBJ_PROCESS_STAB):
	Wrap in ifndef SEPARATE_STAB_SECTIONS.

	* config/obj-elf.c (elf_s_set_other): New.
	(elf_file_symbol): Constify argument.
	(elf_separate_stab_sections): New.
	(elf_init_stab_section): New.
	(elf_format_ops): Add new members.  Remove comma at end.

	* config/obj-ecoff.c (ecoff_separate_stab_sections): New.
	(ecoff_format_ops): Add new fields.  Remove comma at end.
	Mention inconsistency for emit_section_symbols.

	* config/obj-coff.h (c_dot_file_symbol): Constify declaration.

	* config/obj-coff.c (c_dot_file_symbol): Constify argument.
	(coff_separate_stab_sections): New.
	(coff_format_ops): Add new members.

	* config/obj-aout.c (obj_aout_sec_sym_ok_for_reloc): New.
	(obj_aout_s_set_other): New.
	(obj_aout_s_set_desc): New.
	(obj_aout_s_get_type): New.
	(obj_aout_s_set_type): New.
	(obj_aout_separate_stab_sections): New.
	(aout_format_ops): New members added.  Use obj_aout_process_stab,
	not 0.  Use obj_aout_sec_sym_ok_for_reloc, not 0.
	(obj_aout_frob_symbol): Add ATTRIBUTE_UNUSED to args as
	appropriate.
	(obj_aout_line, obj_aout_weak, obj_aout_type): Ditto.

2000-05-22  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-i386.c (tc_i386_fix_adjustable): Prevent adjustment
	for OBJ_MAYBE_ELF too.  Use S_IS_EXTERNAL instead of S_IS_EXTERN.
	(md_estimate_size_before_relax): Ensure jumps to weak and
	externally visible symbols are relocatable.

2000-05-20  Hans-Peter Nilsson  <hp@axis.com>

	* stabs.c (aout_process_stab): Make global.
	(s_desc): Add ATTRIBUTE_UNUSED to args as appropriate.
	* read.h (aout_process_stab): Declare.

	* configure.in (EMULATIONS) [i386aout, i386coff, i386elf]:
	Generalize to *aout, *coff *elf.
	* configure: Regenerated.

	* doc/internals.texi (Object format backend): Say
	SEPARATE_STAB_SECTIONS needs to be nonzero, not just defined.

	* Makefile.am (TARG_ENV_HFILES): Delete te-multi.h.
	* Makefile.in: Regenerated.

2000-05-19  Catherine Moore  <clm@cygnus.com>

	* cgen.h (GAS_CGEN_MAX_FIXUPS): Check if already defined.

2000-05-18  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-hppa.c (md_apply_fix): Mask out immediate bits of
	instruction to reflect change in re_assemble_*.

2000-05-18  Jeffrey A Law  (law@cygnus.com)

	* configure.in (hppa-*-hpux11*): If the cpu is hppa*64*, then
	build PA64 ELF tools.
	* configure: Rebuilt.

2000-05-17  Alan Modra  <alan@linuxcare.com.au>

	* Makefile.am: Regenerate dependencies.
	* Makefile.in: Regenerate.

2000-05-15  Nick Clifton  <nickc@cygnus.com>

	* config/tc-arm.c (struct asm_psr): Add boolean field
	distinguishing between CSPR and SPSR.  Rename 'number' field
	to 'field'.
	(psrs): Rearrange contents to match new asm_psr structure.
	(arm_psr_parse): Move next to psr_required_here.  Make it
	return an asm_psr structure.
	(psr_required_here): Use asm_psr structure returned by
	arm_psr_parse.
	(do_msr): Reorganise to allow psr_required_here to be called
	only once.
	(md_undefined_name): Mark 'name' parameter as unused, since
	the COFF target does not use it.

2000-05-14  David O'Brien  <obrien@FreeBSD.org>

	* config/te-386bsd.h:  Clean up comments to adhere to the GNU coding
	standards.
	* config/te-aux.h:  Likewise.
	* config/te-dpx2.h:  Likewise.
	* config/te-go32.h:  Likewise.
	* config/te-hp300.h:  Likewise.
	* config/te-hppa.h:  Likewise.
	* config/te-i386aix.h:  Likewise.
	* config/te-ic960.h:  Likewise.
	* config/te-interix.h:  Likewise.
	* config/te-nbsd532.h:  Likewise.
	* config/te-pc532mach.h:  Likewise.
	* config/te-ppcnw.h:  Likewise.
	* config/te-psos.h:  Likewise.
	* config/te-sparcaout.h:  Likewise.
	* config/te-sun3.h:  Likewise.
	* config/te-sysv32.h:  Likewise.

2000-05-14  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-h8300.c (do_a_fix_imm): Don't rely on `short' being 16
	bits.  Instead explicitly mask and sign extend.  Do the 8 bit mask
	and sign extend without an if statement.
	(build_bytes): Likewise.

2000-05-14  Kazu Hirata  <kazu@hxi.com>

	* config/tc-h8300.c (do_a_fix_imm): Output a reloc for no
	X_add_symbol L_32 case.

2000-05-14  David O'Brien  <obrien@FreeBSD.org>

	* config/te-freebsd.h: New file.

2000-05-13  Alan Modra  <alan@linuxcare.com.au>

	* asintl.h (gettext, dgettext, dcgettext, textdomain,
	bindtextdomain): Replace defines with those from intl/libgettext.h
	to quieten gcc warnings.

	* NEWS: Mention x86 .arch and -q.

	* config/tc-i386.c (quiet_warnings): New.
	(md_assemble): Use quiet_warnings.
	(md_parse_option): Set quiet_warnings from -q.
	(md_show_usage): Mention -q, delete -m.
	(flag_do_long_jump): Delete.
	(md_parse_option): Remove -m.
	(md_show_usage): Remove -m.
	(md_create_long_jump): Remove useless flag_do_long_jump code.

	* as.c (parse_args): In case OPTION_DEFSYM, use a valueT to hold
	the symbol value, and use bfd_scan_vma if BFD_ASSEMBLER.

2000-05-13  Alan Modra  <alan@linuxcare.com.au>
	    Alexander Sokolov <robocop@netlink.ru>

	* doc/c-i386.texi (i386-Arch): New section.
	(i386-Syntax): Mention .intel_syntax and .att_syntax.

	* config/tc-i386.c (cpu_arch_name, cpu_arch_flags): New.
	(smallest_imm_type): Use smallest opcode for shift by one if cpu
	architecture has been given and is not 486.
	(set_cpu_arch): New.
	(md_pseudo_table): Add .arch.
	(md_assemble): Warn if cpu architecture has been given and an
	unsupported instruction.

	* config/tc-i386.h (SMALLEST_DISP_TYPE): Delete.
	Move operand_types bit defines after relevant template field.
	(template): Add cpu_flags.
	(Cpu*): Define.
	(arch_entry): New.

2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>

	* config/tc-mn10300.h (md_end): Define.
	(mn10300_finalize): Declare.
	* config/tc-mn10300.c: Include dwarf2dbg.h.
	(debug_line): Define.
	(md_assemble): Generate dwarf2 line info.
	(mn10300_finalize): New function.  Finalize dwarf2 info.

2000-05-11  Ulf Carlsson  <ulfc@engr.sgi.com>

	* config/tc-mips.c (md_estimate_size_before_relax): Use the
	external version of the relocation for weak symbols.

2000-05-08  David Mosberger  <davidm@hpl.hp.com>

	* config/tc-ia64.c (output_P7_format, case mem_stack_f): Output fixed
	frame size in units of 16 bytes, as required per SW Conventions manual.
	(output_unw_records): Output info-block header as a dword to get
	byte-order right.

2000-05-08  Alan Modra  <alan@linuxcare.com.au>

	* as.h: #include "file", not <file> on files from ../include.
	(as_abort, as_fatal): Add ATTRIBUTE_NORETURN.
	* config/tc-m68k.c (m68k_ip): Fix signed/unsigned warnings.
	(md_convert_frag): Add ATTRIBUTE_UNUSED.
	(tc_coff_symbol_emit_hook): Ditto.
	(OPTCOUNT): Cast to int to avoid compiler warning.
	(md_begin): Fix signed/unsigned warnings.

2000-05-08  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* config/tc-m68k.c (md_convert_frag_1): Abort if we end up in the
	ABRANCH LONG case for a conditional branch on a 68000.
	(md_estimate_size_before_relax): Likewise.  Also handle
	flag_short_refs correctly for ABRANCH, BCC68000, and DBCC.
	(m68k-ip: case ABSL): Relax absolute references to 16-bit
	PC-relative on all CPUs.
	(md_estimate_size_before_relax): Likewise.

2000-05-04  Alan Modra  <alan@linuxcare.com.au>

	* as.c (parse_args): Just mention current year in printed
	copyright message.

2000-05-03  J.T. Conklin  <jtc@redback.com>

	* config/tc-ppc.c (pre_defined_registers): Add entries for vector
	unit registers.
	(md_parse_option): Recognize -m7400.

2000-05-03  Ian Lance Taylor  <ian@zembu.com>

	* config/atof-ieee.c (gen_to_words): When adding carry back in,
	don't permit lp to become less than the words array.

2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>

	config/tc-mcore.c (md_apply_fix3): BFD_RELOC_MCORE_PCREL_IMM11BY2
	Fix little-endian case.

2000-05-03  David O'Brien  <obrien@NUXI.com>

	* as.c (parse_args): Update copyright.

2000-05-03  Mark Elbrecht  <snowball3@bigfoot.com>

	* config/tc-i386.h (SUB_SEGMENT_ALIGN): If TE_GO32, return 4
	for the .bss section too.

2000-05-02  Alan Modra  <alan@linuxcare.com.au>

	* configure.in: Set em=linux for hppa-*-linux.
	* configure: Regenerate.
	* doc/Makefile.in: Regenerate with correct automake.

	* frags.c (frag_grow): Sanity check chunk_size.

	* config/obj-elf.h: #include "bfd.h" not <bfd.h>
	* config/obj-som.h: Likewise.
	* config/obj-ieee.h: Likewise.

	* config/tc-hppa.h: Test BFD_ARCH_SIZE, not BFD64.

	* config/tc-hppa.c (log2): Only compile when OBJ_SOM.
	(md_pseudo_table): Fully initialise OBJ_ELF cases.
	(fix_new_hppa): Add ATTRIBUTE_UNUSED to args as appropriate.
	(pa_ip): low_sign_unext now returns via function value.  Use
	re_assemble_* instead of dis_assemble_* and
	INSERT_FIELD_AND_CONTINUE combination.  Don't call sign_unext
	unnecessarily.
	(md_convert_frag): Add ATTRIBUTE_UNUSED to args as appropriate.
	(md_section_align, md_parse_option, md_show_usage,
	md_undefined_symbol, pa_align, pa_block, pa_brtab, pa_try,
	pa_callinfo, pa_code, pa_comm, pa_end, pa_enter, pa_entry,
	pa_exit, pa_export, pa_import, pa_label, pa_leave, pa_level,
	pa_origin, pa_param, pa_proc, pa_procend, pa_space, pa_spnum,
	pa_version, pa_compiler, pa_copyright, pa_data, pa_fill, pa_lsym,
	pa_text): Likewise.
	(md_apply_fix): Change type of new_val to offsetT.  Delete w1, w2,
	w, resulti.  Add insn, val.  Move bfd_get_32 and bfd_put_32
	outside of switch.  Correct mask and shifting errors in case 10
	and case -11.  In case 21, compare against signed range to suit
	hppa_field_adjust changes.  In case 12, use re_assemble_12.  In
	case 17 and case 22, use offsetT variable to properly check range.
	Use re_assemble_* here too.
	(evaluate_absolute): Change type of value to offsetT.  Call
	hppa_field_adjust to do the work for us.
	(pa_parse_cmpb_64_cmpltr): Delete save_s.
	(pa_parse_cmpib_64_cmpltr): Ditto.
	(pa_build_unwind_subspace): Delete unused var subseg.  Change type
	of i to unsigned int.
	(pa_type_args): Conditionally declare symbol if OBJ_SOM.
	(pa_end_of_source): Return type is void.

2000-05-01  Catherine Moore  <clm@cygnus.com>

	* macro.c (macro_expand_body): Don't prepend macro number with zeroes.

2000-05-01  Denis Chertykov  <denisc@overta.ru>

	* config/tc-avr.c: ATTRIBUTE_UNUSED added to the necessary places.
	More comments added.
	(md_begin): Removed "construct symbols for each register name".
	Because register names conflicts with GCC generated function
	names.
	(avr_operand): Now constant numbers can be used as a register
	identifiers (0 as r0, 31 as r31).
	(md_assemble): use skip_space () before parsing instruction
	operands.

2000-05-01  Alan Modra  <alan@linuxcare.com.au>

	* configure.in: Set bfd_gas=yes on i386-*-pe and i386-*-nt* to
	ensure all pe targets use bfd.  Remove unnecessary bfd_gas=yes on
	arm-*-netbsd* and arm-*-wince as this is set for all arm*.
	* configure: Regenerate.

2000-04-29  Andreas Jaeger  <aj@suse.de>

	* as.h: Correctly check GCC version.

2000-04-26  David O'Brien  <obrien@FreeBSD.org>

	* doc/as.1: Fix unbalanced brackets.

	* config/tc-i386.c (comment_chars): Don't use '/' as comment start if
	TE_FreeBSD.
	(line_comment_chars): Set to '/' if TE_FreeBSD.

2000-04-25  Jeffrey A Law  (law@cygnus.com)

	* configure.in: Configury support for PA64 (currently disabled).
	* configure: Rebuilt.

2000-04-25  Machida Hiroyuki  <machida@sm.sony.co.jp>

	* config/tc-mips.c (s_change_sec): Use record_alignment, not
	bfd_set_section_alignment.

2000-04-25  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-i386.c (offset_in_range): Ensure shift counts are less
	than 32.

2000-04-24  Nick Clifton  <nickc@cygnus.com>

	* doc/c-arm.texi (ARM Directives): Document behaviour of .align 0.
	* doc/as.texinfo (Align): Include arm and strongarm in list of
	targets that have the second form of the behaviour of the .align
	directive.

2000-04-24  Mark Klein <mklein@dis.com>

	* config/obj-som.c: Terminate obj_pseudo_table.

2000-04-24  Clinton Popetz  <cpopetz@cygnus.com>

	* as.c (parse_args): Allow md_parse_option to override -a listing
	option.
	* config/obj-coff.c (add_lineno): Change type of offset parameter
	from "int" to "bfd_vma."
	* config/tc-ppc.c (md_pseudo_table): Add "llong" and "machine."
	(ppc_mach, ppc_subseg_align, ppc_target_format): New.
	(ppc_change_csect): Align correctly for XCOFF64.
	(ppc_machine): New function, which discards "ppc_machine" line.
	(ppc_tc): Cons for 8 when code is 64 bit.
	(md_apply_fix3): Don't check operand->insert.  Handle 64 bit
	relocations.
	(md_parse_option): Handle -a64 and -a32.
	(ppc_xcoff64): New.
	* config/tc-ppc.h (TARGET_MACH): Define.
	(TARGET_FORMAT): Move to function.
	(SUB_SEGMENT_ALIGN): Use ppc_subseg_align.

2000-04-23  Denis Chertykov  <denisc@overta.ru>

	* config/tc-avr.c: New AVR_ISA_ defined.
	(md_assemble): Handle opcodes with optional operands (lpm,elpm).
	(avr_operand): Handle 'a', 'v' and 'z' constraint letters needed
	for `fmul', `movw' and `lpm R,Z' instructions.
	(avr_operands): Warn if current opcode is a two-word instruction
	and previous opcode was cpse/sbic/sbis/sbrc/sbrs.
	(avr_opcodes): New commands added.
	(REGISTER_P): Check 'a' and 'v' constraint letters.
	(mcu_types): New MCU added.

2000-04-22  Timothy Wall  <twall@cygnus.com>

	* config/tc-ia64.c (pseudo_func[]): Add new "nat" entry equivalent
	to "natval".
	(operand_match): Conditionally insert default bit values for IMMU9.

2000-04-14  Matthew Green  <mrg@cygnus.com>

	* configure.in: Add NetBSD/sparc ELF and NetBSD/sparc64 support.
	* configure: Rebuilt.

2000-04-21  Jeffrey A Law  (law@cygnus.com)
	    Jason Eckhardt  <jle@cygnus.com>

	* config/tc-hppa.c (md_apply_fix): Handle new PA2.0 formats.

	* config/tc-hppa.c (CHECK_ALIGN): New macro.
	Added handling of new operand types l,y,&,fe,fE,fx.

2000-04-21  Richard Henderson  <rth@cygnus.com>
	    David Mosberger  <davidm@hpl.hp.com>
	    Timothy Wall <twall@cygnus.com>
	    Andrew MacLeod  <amacleod@cygnus.com>
	    Jim Wilson  <wilson@cygnus.com>

	* Makefile.am (CPU_TYPES): Add ia64.
	(TARGET_CPU_CFILES): Add config/tc-ia64.c.
	(TARGET_CPU_HFILES): Add config/tc-ia64.h.
	* Makefile.in: Rebuild.
	* app.c (do_scrub_chars): Handle DOUBLESLASH_COMMENTS.
	* configure: Rebuild.
	* configure.in: Recognize ia64 as cpu type.  Set bfd_gas.
	(ia64-*-elf*, ia64-*-linux-gnu*): New targets.
	* expr.c (expr): Handle md_optimize_expr.
	* read.c (LEX_HASH): Add comment.
	* config/tc-ia64.c, config/tc-ia64.h: New files.

2000-04-21  Richard Henderson  <rth@cygnus.com>

	* config/tc-d30v.c (write_2_short): Disregard opcode1->ecc when
	bundling a non-delayed branch type instruction.

2000-04-20  Alexandre Oliva  <aoliva@cygnus.com>

	* config/tc-mn10300.c (HAVE_AM30): Define.
	(md_assemble): Use it.

2000-04-19  Alan Modra  <alan@linuxcare.com.au>

	* config/obj-elf.c (obj_elf_change_section): Check for changed
	section attributes.

	* Makefile.am: (CPU_MULTI_VALID): Remove.
	(MULTI_CPU_TYPES): Define.
	(MULTI_CPU_OBJ_VALID): Define.
	(DEPTC): Use the above.
	(DEPOBJ): Same here.
	(DEP2): And here.
	Regenerate dependencies.
	* Makefile.in: Regenerate.

2000-04-19  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* Makefile.am (YACC, LEX): Get them from configure.

2000-04-18  H.J. Lu  (hjl@gnu.org)

	* config/tc-i386.c (offset_in_range): Use addressT instead of
	bfd_vma for non-bfd assemblers.

2000-04-17  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-i386.c (offset_in_range): Sign extend val so BFD64
	doesn't give spurious errors.

2000-04-14  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* as.h (SEEK_SET): Define if undefined.

2000-04-13  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-arm.c (md_apply_fix3): Don't use UL suffix on
	constants, and don't assume offsetT is 32 bits.

2000-04-12  Andrew Cagney  <cagney@b1.cygnus.com>

	* config/tc-d10v.h: Include "write.h" to get definition of fixS.
	(md_pcrel_from_section): Add prototype.
	(d10v_fix_adjustable): Add prototype.
	(d10v_force_relocation): Replace 'struct fix' with 'fixS'.

	* config/tc-d10v.c (md_apply_fix3): Add paren around &&.

2000-04-12  Nick Clifton  <nickc@cygnus.com>

	* config/tc-d10v.c (find_opcode): Correctly calculate position of
	symbol in frag chain.

2000-04-10  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-i386.c (fits_in_signed_byte): Change arg to offsetT.
	(fits_in_unsigned_byte, fits_in_unsigned_word): Ditto.
	(fits_in_signed_word, smallest_imm_type): Ditto.
	(md_assemble): Use an offsetT var to hold offsetT values, not a
	long.
	(offset_in_range): New.
	(md_assemble): Use it.
	(md_convert_frag): Change type of target_address, opcode_address,
	and displacement_from_opcode_start to offsetT.
	(md_create_short_jump): Change type of offset to offsetT.
	(md_create_long_jump): Ditto.
	(md_apply_fix3): Use -4, not 0xfffffffc for BFD_RELOC_386_PLT32.
	(md_chars_to_number): Remove.
	(output_invalid): Remove duplicate prototype.

2000-04-09  Nick Clifton  <nickc@cygnus.com>

	* Makefile.am (CPU_TYPES): Add 'avr'.
	(TARGET_CPU_CFILES): Add 'tc-avr.c'.
	(TARGET_CPU_HFILES): Add 'tc-avr.h'.

	* Makefile.in: Regenerate.

	* doc/as.texinfo: Add M32R documentation.

2000-04-07  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure.in (WARN_CFLAGS): Set to -W -Wall by default.  Add
	--enable-build-warnings option.
	* Makefile.am (AM_CFLAGS, WARN_CFLAGS): Add definitions.
	* Makefile.in, configure: Re-generate.

2000-04-07  Nick Clifton  <nickc@cygnus.com>

	* config/tc-arm.c (md_apply_fix3): Treat BFD_RELOC_ARM_PCREL_BLX
	in the same way as BFD_RELOC_ARM_PCREL_BRANCH, and
	BFD_RELOC_THUMB_PCREL_BLX lie BFD_RELOC_THUMB_PCREL_BRANCH.
	(tc_gen_reloc): Accept BFD_RELOC_{ARM|THUMB}_PCREL_BLX.
	(arm_force_relocation): Force relocations for
	BFD_RELOC_{ARM|THUMB}_PCREL_BLX as well.

2000-04-05  J"orn Rennecke <amylaar@cygnus.co.uk>

	* config/tc-sh.c (get_operands): There's no third operand if the
	first operand is an immediate.

2000-04-05  J"orn Rennecke <amylaar@cygnus.co.uk>

	* config/tc-sh.c (immediate): Delete.
	(sh_operand_info): Add immediate member.
	(parse_reg): Use A_PC for pc.
	(parse_exp): Add second argument 'op'.  All callers changed.
	(parse_at): Expect pc to be coded as A_PC.
	Use immediate field in *op.
	(insert): Add fourth argument 'op'.  All callers changed.
	(build_relax): Add second argument 'op'.  All callers changed.
	(insert_loop_bounds): New function.
	(build_Mytes): Remove DISP_4.
	Split IMM_[48]{,BY[24]} into IMM[01]_[48]{,BY[24]}.  Add REPEAT.
	(assemble_ppi): Use immediate field in *operand.
	(sh_force_relocation): Handle BFD_RELOC_SH_LOOP_{START,END}.
	(md_apply_fix): Likewise.
	(tc_gen_reloc): Likewise.  Check for a pcrel BFD_RELOC_SH_LABEL.

2000-04-05  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* config/tc-sparc.c (sparc_ip): Avoid string pasting.

2000-04-04  Hans-Peter Nilsson  <hp@axis.com>

	* internals.texi (CPU backend): Document
	TC_CHECK_ADJUSTED_BROKEN_DOT_WORD.

2000-04-04  Alan Modra  <alan@linuxcare.com.au>

	* po/gas.pot: Regenerate.

	* as.c (show_usage): Restore translated part of bug string.
	* gasp.c (show_usage): Likewise.

	* Makefile.am (MKDEP): Use gcc -MM rather than ../mkdep.
	(DEP): Quote when passing vars to sub-make.  Use "mv -f" rather
	than move-if-change.
	(DEP1): Modify for "gcc -MM".
	(DEPTC): Likewise.
	(DEPOBJ): Likewise.
	(DEP2): Likewise.
	(CLEANFILES): Add DEPTCA, DEPOBJA, DEP2a, DEPA.
	Update dependencies.
	* Makefile.in: Regenerate.

2000-04-03  Alexandre Oliva  <aoliva@cygnus.com>

	* config/tc-mn10300.c (md_pseudo_table): Use constant names.
	(md_begin): Likewise.
	(HAVE_AM33): New macro.
	(md_assemble): Use it.  Match r_regs and xr_regs only if
	HAVE_AM33.

2000-04-03  Alan Modra  <alan@linuxcare.com.au>

	* as.h: #include "bin-bugs.h"
	* as.c (show_usage): Use REPORT_BUGS_TO.
	* gasp.c: #include "bin-bugs.h"
	(show_usage): Use REPORT_BUGS_TO.

	* config/tc-sparc.c (md_show_usage): Add a trailing newline.

2000-04-03  Hans-Peter Nilsson  <hp@axis.com>

	* write.c (write_object_file) [! WORKING_DOT_WORD]: If defined,
	call TC_CHECK_ADJUSTED_BROKEN_DOT_WORD for each word after
	adjustments.

2000-04-03  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-i386.c (i386_immediate): Don't assume a constant
	immediate is necessarily 16 bits when in 16 bit code mode.
	(md_assemble): Instead set guess_suffix here after we have checked
	registers.

2000-04-02  Richard Henderson  <rth@cygnus.com>

	* config/tc-d30v.c (check_range): Allow signed or unsigned 32-bit
	quantities.  Correct right shift sign extension.
	(build_insn): Make `number' unsigned long.  Mask top 6 bits of
	32-bit value when shifting into place.

2000-04-01  Ian Lance Taylor  <ian@zembu.com>

	* app.c: Add ATTRIBUTE_UNUSED as needed.
	* config/tc-ppc.c: Likewise.
	(ppc_size): Make unsigned long.
	(ppc_insert_operand): Add casts to avoid warnings.

2000-03-31  Nick Clifton  <nickc@cygnus.com>

	* config/tc-d10v.h (md_flush_pending_output): Define.

2000-03-29  Nick Clifton  <nickc@cygnus.com>

	* config/tc-sh.h (SEG_NAME): New macro: return the name of a
	segment.  Works for both BFD_ASSEMBLER and others.
	(SUB_SEGMENT_ALIGN): Use SEG_NAME.

2000-03-29  Nick Clifton <nickc@cygnus.com

	* config/tc-arm.c (tinsns): Add "bal" instruction pattern.

2000-03-28  Alan Modra  <alan@linuxcare.com.au>

	* listing.c (LISTING_LHS_WIDTH): Default depends on
	LISTING_WORD_SIZE.
	(LISTING_LHS_WIDTH_SECOND): Default to LISTING_LHS_WIDTH.

2000-03-27  Ian Lance Taylor  <ian@zembu.com>

	* config/tc-sh.c (md_show_usage): Use backslash before newline in
	string literal.

2000-03-27  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-avr.h (TC_HANDLES_FX_DONE): Define.

	* config/tc-avr.c (mcu_types): Add missing initialiser.
	(md_pcrel_from_section): Add prototype.
	(avr_operand): Remove redundant test of unsigned < 0.
	(avr_cons_fix_new): Ensure exp_mod_pm zero on function exit.

2000-03-27  Denis Chertykov  <denisc@overta.ru>

	* config/tc-avr.c: New file for AVR support.
	* config/tc-avr.h: Likewise.
	* configure.in: Add AVR support.
	* configure: Regenerate.

2000-03-26  Timothy Wall <twall@cygnus.com>

	* gasp.c (macro_op): Add new argument to check_macro call.
	Macro structure definitions moved to macro.h
	* sb.h:  Add argument to prototype for input_scrub_include_sb.
	* input-scrub.c (input_scrub_include_sb): Allow disabling of sb
	nesting checks with an additional flag.
	(struct input_save): Add flag to indicate whether current sb
	should be checked for proper macro/conditional nesting.
	(input_scrub_push/pop): Save/restore nest check flag.
	(input_scrub_next_buffer): Ditto.  Also call end of macro hook if
	defined.
	* macro.c (check_macro):  Allow caller to retrieve parsed macro
	information if a pointer is provided.  This information may be
	used by the new macro hooks.
	* macro.h: Update prototype for check_macro.  Macro struct
	definitions moved here from macro.c/gasp.c.
	* read.c (read_a_source_file): Add parameter to check_macro call,
	and pass macro info to the macro hook, if defined.
	(input_scrub_insert_line): New.  Allow insertion of a line of
	characters into the input stream.
	(input_scrub_insert_file): New.  Allow insertion of an arbitrary
	file into the input stream.
	(s_include): Use input_scrub_insert_file.
	* internals.texi: Document new macro hooks.
	* as.h: New prototypes added.

2000-03-26  Alan Modra  <alan@linuxcare.com.au>

	* config/tc-i386.c: Don't start any as_bad or as_warn message with
	an initial capital letter.
	(i386_index_check): Reindent.

2000-03-19  Nick Clifton  <nickc@cygnus.com>

	* config/tc-arm.c (md_apply_fix3): Fix bug detecting overflow of pc
	relative branches.

2000-03-17 Thomas de Lellis <tdel@windriver.com>

	* config/tc-arm.c (do_t_adr): Flag "adr Rd,label"
	instruction operand bad if Rd > 7 when generating
	thumb instructions. Prevents for example,
	"adr r12,label" from silently failing and generating
	the wrong instruction.

2000-03-17  Nick Clifton  <nickc@cygnus.com>

	* config/tc-arm.c (md_apply_fix3): Handle same-section relocations
	that have a destingation >= 0x400000.
	Fix compile time warning messages.

2000-03-16  J"orn Rennecke <amylaar@cygnus.co.uk>

	* config/tc-sh.c (md_begin): When encountering insn that are
	not supported by the current arch, only change the name if
	its contents are the same as prev_name.
	(get_specific): If the the architecture doesn't match, fail.

2000-03-16  J"orn Rennecke <amylaar@cygnus.co.uk>

	* config/tc-sh.c (IDENT_CHAR): Define.
	(parse_reg): Use it instead of isalnum.  Put r[0..7]_bank operand
	matching back where it came from.

2000-03-16  J"orn Rennecke <amylaar@cygnus.co.uk>

	* config/tc-sh.c (md_show_usage): Add description of -dsp.

2000-03-15  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* config/tc-sh.c (parse_reg): Match r[0..7]_bank operands before
	normal operands.

2000-03-15  Kazu Hirata  <kazu@hxi.com>

	* config/tc-h8300.c: Add ATTRIBUTE_UNUSED as appropriate.

2000-03-13  Hans-Peter Nilsson  <hp@axis.se>

	* expr.c (operand) [case 'f']: When testing if '0f' can start a
	floating-point-number, make sure 'f' is in FLT_CHARS.

2000-03-11  Hans-Peter Nilsson  <hp@axis.se>

	* read.c (TC_IMPLICIT_LCOMM_ALIGNMENT): New default-definition.
	(s_lcomm_internal): Use it.
	* doc/internals.texi (CPU backend): Document it.
	* config/obj-evax.h (TC_IMPLICIT_LCOMM_ALIGNMENT): Set to 2**3
	bytes.

2000-03-10  Geoffrey Keating  <geoffk@cygnus.com>

	* config/tc-mips.c (mips_ip): Don't put stuff in .rodata
	when embedded-pic.

	* config/tc-mips.c (SWITCH_TABLE): The ELF embedded-pic
	implementation doesn't have special handling for switch
	statements.
	(macro_build): Allow for code in sections other than .text.
	(macro): Likewise.
	(mips_ip): Likewise.
	(md_apply_fix): Do pc-relative relocation madness for MIPS ELF.
	Don't perform relocs if we will be outputting them.
	(tc_gen_reloc): For ELF, just use fx_addnumber for pc-relative
	relocations.  Allow BFD_RELOC_16_PCREL_S2 relocs when
	embedded-pic.

2000-03-09  Catherine Moore  <clm@cygnus.com>

	* config/tc-m32r.c (m32r_fix_adjustable):  Look up the
	relocation type based on the entry in the fixup structure.
	Put S_IS_EXTERN processing back in.

2000-03-08  H.J. Lu  (hjl@gnu.org)

	* Makefile.am (install-exec-tooldir): Depend on
	install-exec-bindir for parallel make.
	* Makefile.in: Regenerated.

2000-03-06  Nick Clifton  <nickc@cygnus.com>

	* config/tc-m32r.c (struct md_longopts): Add -m32r command line
	switch.
	(md_parse_option): Parse -m32r command line switch - disable m32rx
	compatability.
	(md_show_usage): Document new option.

	* doc/Makefile.am (CPU_DOCS): Add c-m32r.texi.
	* doc/Makefile.in: Regenerate.
	* doc/c-m32r.texi (M32R-Opts): Document new command line switch.

2000-03-02  Michael Meissner  <meissner@redhat.com>

	* config/tc-d30v.c (check_range): Remove code that incorrectly
	sign extended values where bits < 32.

2000-03-02  H.J. Lu  (hjl@gnu.org)

	* configure.in: Support --enable-targets=all on ia32.
	* configure: Regenerated.

2000-03-01  Nick Clifton  <nickc@cygnus.com>

	* gasp.c (do_align): Remove bogus check of alignment value.

2000-02-27  Thomas de Lellis  <tdel@windriver.com>

	* config/obj-elf.c (elf_frob_symbol): Remove code which when
	TC_PPC was defined forced the type of a symbol with no other type
	to be BSF_OBJECT.

2000-02-27  Hans-Peter Nilsson  <hp@axis.com>

	* doc/internals.texi (CPU backend): Mention that
	line_separator_chars do not break up comments.  Fix typos for
	LEX_AT and LEX_NAME descriptions.  Document operands for
	TC_EQUAL_IN_INSN, md_operand and md_section_align.  Correct
	description of md_create_short_jump usage.  Document argument for
	md_undefined_symbol.

2000-02-27  Jakub Jelinek  <jakub@redhat.com>

	* config/tc-sparc.c (OPTION_UNDECLARED_REGS): New option.
	(md_parse_option): Handle it.
	(md_show_usage): Document it.

2000-02-27  Ian Lance Taylor  <ian@zembu.com>

	* config/tc-alpha.c (md_assemble): Accept `1' and `9' in an
	opcode, for the instruction `pal19'.  From Andrea Arcangeli
	<andrea@suse.de>.

2000-02-26  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* config/tc-i386.c (i386_immediate): Move constant operand sizing
	from here..
	(md_assemble): To here, before template operands are matched.
	Also ensure a constant immediate is sign extended when we know the
	size is at most 16 bits.  This is to catch cases like "add
	$0xffc0,%ax" where we don't know the size, and thus that the
	immediate can be represented as Imm8S until after parsing the
	register operand.
	(i386_displacement): Similarly sign extend 16 bit constant
	displacements.
	(md_assemble): Relax 16-bit jump constant range check to suit sign
	extended displacements.

2000-02-26  Andreas Jaeger  <aj@suse.de>

	* doc/c-mips.texi (MIPS Opts): Fix typo in last patch.

2000-02-25  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* config/tc-i386.c (md_assemble): Don't swap intersegment jmp and
	call operands when intel_syntax.
	(intel_float_operand): Return 2 for "fi...".
	(i386_operand_modifier): Change "DWORD PTR" test to suit above.
	Return SHORT_MNEM_SUFFIX for "WORD PTR" when "fi...".  Revert
	earlier "SHORT" change.
	(md_assemble): When determining suffix from Regs, exclude
	InOutPortReg.

2000-02-24  Nick Clifton  <nickc@cygnus.com>

	* configure: Add arm-wince, mips-pe and sh-pe targets.
	* configure: Regenerate.

	* config/obj-coff.h (COFF_WITH_PE): Define for mips-pe and
	sh-pe targets.
	(TARGET_FORMAT): Set to "pe-shl" for the sh-pe target and to
	"pe-mips" for the mips-pe target.

	* config/tc-arm.c (insns): Change displacement encoded in BL
	and B instructions if the target port is arm-wince.
	(do_ldst): Do not bias the relocation offset if the target
	port is arm-wince.
	(md_pcrel_from): Add in missing relocation offset bias if the
	target os arm-wince.

	* config/tc-mips.c (mips_target_format): Support COFF flavour.
	(md_begin): Disable -G support for mips-pe target.
	(md_apply_fix): Treat BFD_RELOC_RVA reloc as BFD_RELOC_32.
	* config/tc-mips.h (USE_GLOBAL_POINTER_OPT): Add support for
	COFF flavour.

	* config/tc-sh.c (md_begin): sh-pe target is little endian.
	* config/tc-sh.h (SUB_SEGMENT_ALIGN): If using a BFD
	assembler, just set the alignment to 4.

	* config/te-wince-pe.h: New file for WinCE targets.  Define
	TE_WINCE.

2000-02-25  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* config/tc-i386.c (md_assemble): Swap segments too for intel mode
	string instructions.
	(i386_operand_modifier): Set i.suffix = WORD_MNEM_SUFFIX for SHORT.
	(i386_intel_memory_operand): After finding a segment override,
	check again for no `[' before looking for a displacement.  Bomb if
	more than one displacement rather than silently discarding the
	second and subsequent ones.  Free strings malloc'd by
	build_displacement_string.

2000-02-24  Catherine Moore  <clm@cygnus.com>

	* config/obj-som.c (obj_pseudo_table): Add "weak".
	(obj_som_weak): New routine.

2000-02-24  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* config/tc-i386.c (union i386_op): New.
	(struct _i386_insn): Delete disps[], imms[], regs[].  Add op[].
	Throughout file replace occurences of disps[n], imms[n], regs[n]
	with equivalent op[n].disps, op[n].imms, op[n].regs.  Simplify
	intel mode operand swapping.  Add assert in regKludge and
	fake_zero_displacement code.  Test i.types[n] when outputting
	displacements and immediates.  Combine output of Disp16 with
	Disp32.
	(md_assemble): Don't try to fix broken UNIXWARE_COMPAT opcodes
	when in intel mode by (not) reversing fsub and fdiv operands
	before the template search.  This fails for single operand
	shorthand forms of the instruction, and if UNIXWARE_COMPAT is
	undefined.  Instead fix the base_opcode after we've found the
	template.  Move base_opcode xor with found_reverse_match from
	opcode output code to before this fix so we test for the correct
	opcodes.
	(md_assemble): Don't use strcmp when deciding to ignore the suffix
	check in intel mode.  Instead compare opcodes.

	* config/tc-i386.h (TC_RELOC): Delete.
	* config/tc-i386.c (TC_RELOC): Delete.  Replace usage of TC_RELOC
	with equivalent call to reloc.

	* as.h (flag_m68k_mri): Move declaration after target include, and
	only declare when TC_M68K defined.  Define as zero otherwise.
	(LABELS_WITHOUT_COLONS, NO_PSEUDO_DOT): If undefined, define as 0.
	* app.c (scrub_m68k_mri): Declare only when TC_M68K defined.
	Define as zero otherwise.
	(do_scrub_begin): Use m68k_mri parameter only when TC_M68K defined.
	(struct app_save): Declare scrub_m68k_mri only when TC_M68K.
	(app_push, app_pop): Save scrub_m68k_mri only when TC_M68K.
	(do_scrub_chars): Use LABELS_WITHOUT_COLONS directly rather than
	testing whether defined.
	* cond.c (ignore_input): Use NO_PSEUDO_DOT directly.
	* expr.c (operand): #ifdef unused case labels when TC_M68K undefined.
	* read.c: Use LABELS_WITHOUT_COLONS and NO_PSEUDO_DOT directly
	rather than testing whether defined.
	(s_mri): Set flag_m68k_mri only when TC_M68K defined.
	(parse_mri_cons): Declare and use only when TC_M68K.
	* config/tc-hppa.h (LABELS_WITHOUT_COLONS): Define as 1.
	* config/tc-m68k.h (NO_PSEUDO_DOT): Define as 1.
	* config/tc-m88k.h (NO_PSEUDO_DOT): Define as 1.

	* NEWS: Mention IBM 370 support.

2000-02-23  Richard Henderson  <rth@cygnus.com>

	* config/tc-i386.c (md_assemble): When swapping operands for
	intel_syntax, assume everything that's not Imm or Disp is a
	register.

2000-02-23  Linas Vepstas <linas@linas.org>

	* config/tc-i370.c, config/tc-i370.h: New files.
	* Makefile.am: Add support for Linux/IBM 370.
	* configure.in: Likewise.
	* app.c (do_scrub_begin): Don't lex single quote when TC_I370.
	* config/obj-elf.c: Include elf/i370.h
	(obj_elf_section): Don't do anything special for flag_mri if TC_I370.

	* Makefile.in: Regenerate.
	* configure: Regenerate.

	* doc/c-i370.texi: New file.
	* doc/all.texi: Include it.
	* doc/as.texinfo: And here.
	* doc/Makefile.am(CPU_DOCS): Add c-i370.texi.
	* doc/Makefile.in: Regenerate.

2000-02-19  Michael Meissner  <meissner@redhat.com>

	* config/tc-d30v.c (parallel_ok): Use FLAG_NOT_WITH_ADDSUBppp to
	determine if an instruction can be used in parallel with an ADDppp
	or SUBppp instruction.

2000-02-22  Andrew Haley  <aph@cygnus.com>

	* doc/c-mips.texi (MIPS Opts): Document -mgp32 and -mgp64.

2000-02-22  Andrew Haley  <aph@cygnus.com>

	* config/tc-mips.c (mips_gp32): New variable.
	(macro_build) Use mips_gp32.
	(mips_ip): Ditto.
	(md_longopts): Add "-mgp32" and "-mgp64".
	(md_parse_option): Add OPTION_GP32 and OPTION_GP64.

	(OPTION_M7900): Change offset
	(OPTION_NO_M7900): Ditto.

2000-02-22  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* config/obj-coff.c (add_lineno): Accept non-positive lineno with
	warning, and bump it to 1.

2000-02-22  Ian Lance Taylor  <ian@zembu.com>

	From Brad Lucier <lucier@math.purdue.edu>:
	* dwarf2dbg.c (print_stats): Add cast to force printf argument to
	match format.

2000-02-21  Catherine Moore  <clm@cygnus.com>

	* config/tc-mips.c (MF_HILO_INSN): Define.
	(mips_7000_hilo_fix): Declare.
	(append_insn): Conditionally insert nops after an mfhi/mflo insn.
	(md_parse_option): Check for 7000_HILO_FIX options.
	(OPTION_M7000_HILO_FIX): Define.
	(OPTION_NO_M7000_HILO_FIX): Define.
	* doc/c-mips.texi (-mfix7000): Describe.

2000-02-21  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* listing.c (print_lines): Remove unused variable `end'.

	* config/tc-i386.c (md_assemble): Use `reloc()' to select reloc
	type for JumpInterSegment output. Use enum bfd_reloc_code_real for
	reloc_type when BFD_ASSEMBLER.
	(md_estimate_size_before_relax): Use enum bfd_reloc_code_real for
	reloc_type when BFD_ASSEMBLER. Move common code out of switch
	statement and quell signed vs. unsigned comparison warning.

2000-02-18  Nick Clifton  <nickc@cygnus.com>

	* config/tc-d10v.c (find_opcode): Add a symbol's value to
	the computed frag offset, rather than overwriting it.

2000-02-17  J"orn Rennecke <amylaar@cygnus.co.uk>

	* config/tc-sh.c ("elf/sh.h"): Include.
	(sh_dsp, valid_arch, reg_x, reg_y, reg_efg): New static variables.
	(md.begin): Initialize target_arch.
	Only include opcodes in has table that match selected architecture.
	(parse_reg): Recognize register names for sh-dsp.
	(parse_at): Recognize post-modify addressing.
	(get_operands): The leading space is now optional.
	(get_specific): Remove FDREG_N support.  Add support for sh-dsp
	arguments.  Update valid_arch.
	(build_Mytes): Add support for SDT_REG_N.
	(find_cooked_opcode): New function, broken out of md_assemble.
	(assemble_ppi, sh_elf_final_processing): New functions.
	(md_assemble): Use find_cooked_opcode and assemble_ppi.
	(md_longopts, md_parse_option): New option: -dsp.
	* config/tc-sh.h (elf_tc_final_processing): Define.
	(sh_elf_final_processing): Declare.

2000-02-11  Jeffrey A Law  (law@cygnus.com)

	* config/tc-hppa.c (pa_build_unwind_subspace): Use subseg_new to create
	the unwinder subspace.  Save the current seg/subseg before creating
	the new seg/subseg.

2000-02-10  Nick Clifton  <nickc@cygnus.com>

	* config/tc-mcore.c (INST_BYTE0): Redefine to handle big and
	little endian targets.
	(INST_BYTE1): Redefine to handle big and little endian
	targets.
	(cpu_type): New type: Select between M340 and M210.
	(parse_psrmod): New function: Parse the PSRCLR and PSRSET
	instructions of the M340.
	(md_assemble): Add support for the MULSH and OPSR classes of
	instructions.
	(md_atof): Add support for little endian targets.
	(md_parse_option): Add support for -EL, -EB and -mcpu command
	line switches.
	(md_convert_frag): Add support for little endian targets.
	(md_apply_fix3): Add support for little endian targets.
	(md_number_to_chars): Add support for little endian targets.

2000-02-10  Timothy Wall  <twall@redhat.com>

	* read.c (read_a_source_file): If TC_START_LABEL_WITHOUT_COLON is
	defined, use it to verify the symbol just read should be a label.

2000-02-10  Timothy Wall  <twall@redhat.com>

	* app.c (do_scrub_chars): Handle "||" for parallel instructions
	when DOUBLEBAR_PARALLEL is defined.  Avoid stripping whitespace
	around colons when KEEP_WHITE_AROUND_COLON is defined.
	* doc/internals.texi (CPU backend): Document DOUBLEBAR_PARALLEL
	and KEEP_WHITE_AROUND_COLON.

2000-02-08  Timothy Wall  <twall@redhat.com>

	* read.c (s_rept): Call do_repeat, which abstracts the repeat
	logic.
	(do_repeat): New.  Abstract repeat logic so that a "break" can be
	implemented.
	(end_repeat): New.  Provide support for a "break" out of the
	repeat loop.
	* read.h: Add prototypes for new functions.

2000-02-08  Timothy Wall  <twall@redhat.com>

	* doc/internals.texi: Document NUMBERS_WITH_SUFFIX macro.
	* as.h: Provide a default NUMBERS_WITH_SUFFIX definition (zero).
	* expr.c: Handle numbers with suffixes if NUMBERS_WITH_SUFFIX is
	non-zero.

2000-02-08  Timothy Wall  <twall@redhat.com>

	* read.c: Added elseif to directives table.
	* read.h: Added prototype for s_elseif.
	* doc/as.texinfo: Added description for elseif.
	* cond.c (s_elseif): New function

2000-02-04  Timothy Wall  <twall@redhat.com>

	* listing.c (print_lines): Remove conditionals causing bug in
	listings.

2000-02-03  Timothy Wall  <twall@cygnus.com>

	* as.h: Define OCTETS_PER_BYTE and OCTETS_PER_BYTE_POWER
	default	values.
	* frags.c (frag_new): Calculate fr_fix in octets
	(frag_now_fix) Return offset as target address offset (bytes).
	(frag_now_fix_octets) New - Return offset in octets (8-bit
	quantities).
	* frags.h: Added prototype for frag_now_fix_octets().
	Distinguish between octets and bytes in field descriptions.
	* listing.c (calc_hex): Account for octets vs bytes when
	printing addresses/offsets.
	(print_lines) Ditto.  Also, if LISTING_WORD_SIZE is not 1, and
	target is little-endian, print the octets in a word in big-endian
	order so that the display looks like a proper hexadecimal number,
	instead of having the octets reversed.
	* read.c (do_align): When recording alignment, alignment power
	should be in terms of target bytes (minimum addressible unit)
	instead of octets.
	(do_org) Convert ORG target address (byte) argument into an
	octet offset when generating a variable fragment.
	* symbols.c (resolve_symbol_value): Symbol final value
	converted to a target address offset (bytes) from its octet offset.
	* config/obj-coff.c (coff_frob_symbol): Symbol target address
	offset (bytes) is adjusted by the frag offset (octets) converted
	to bytes.
	(coff_frob_section) Section alignment power is in terms of bytes;
	convert it to an octet alignment power when calculating size (and
	size mask) in octets.  Don't modify the section size in order to
	"align" it for TI COFF, since that format has a different method
	for storing alignment information.

2000-02-01  Timothy Wall  <twall@cygnus.com>

	* stabs.c (generate_asm_file): Escape backslashes in stabs file
	entries, matching the way GCC generates them.  If not escaped, the
	filename is encoded incorrectly.

2000-01-31  Nick Clifton  <nickc@cygnus.com>

	* config/tc-arm.c (reg_table): Add support for ATPCS register
	naming conventions.

2000-01-31  Geoff Keating  <geoffk@cygnus.com>

	* config/obj-coff.h (OBJ_COPY_SYMBOL_ATTRIBUTES): Don't define if
	already defined.
	* config/tc-ppc.h [OBJ_XCOFF] (OBJ_COPY_SYMBOL_ATTRIBUTES):
	New macro.
	* config/tc-ppc.c (ppc_fix_adjustable): Don't look at the frag
	of a symbol when we really care about its value.

2000-01-19  Chandra Chavva  <cchavva@cygnus.com>

	* config/tc-mcore.c (md_assemble): Give warning message if
	operands passes to instruction are more than the spec.

2000-01-27  Thomas de Lellis <tdel@windriver.com>

	* config/tc-arm.c (armadjust_symtab): If the assembler is in
	Thumb mode but the label seen was not declared as '.thumb_func'
	then set the ST_INFO type to STT_ARM_16BIT mode.  This allows
	correct disassembly of Thumb code bounded by non function labels.

2000-01-27  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* Makefile.am (MULTI_CFILES): Add config/e-i386aout.c
	Add dependencies for e-i386aout.o.  Fix 2 comment lines.

	* Makefile.in: Same here.
	Update copyright.

	* configure.in: Set bfd_gas for i386-aout when primary target
	is bfd.  Handle i386aout emulation.  Don't use te_file=multi, as
	we may need the primary te_file.  Remove incorrect comment.

	* configure: Regenerate.

	* config/e-i386aout.c: New file.

	* as.c (USE_EMULATIONS): Move to before print_version_id.
	(struct emulation): Add i386aout.
	(show_usage): Split text strings.  Reformat -a text.  Add --em
	help.
	Update copyright.

	* obj.h (struct format_ops): Add s_get_other and s_get_desc.
	(aout_format_ops): New.
	Update copyright.

	* read.c (s_lcomm_internal): Rewrite OBJ_AOUT,OBJ_BOUT
	preprocessor conditional and add aout USE_EMULATIONS tests.
	(read_a_source_file): Don't pass error strings to printf as
	format arg.
	Update copyright.

	* gasp.c (exp_get_abs): Don't pass error strings to printf as
	format arg.
	(do_data): Same here.
	(process_file): And here.
	Update copyright.

	* symbols.c (colon): Rewrite "already defined" fatal message
	code for aout with USE_EMULATIONS.
	Update copyright.

	* config/obj-aout.c (OBJ_HEADER): Define.
	(obj_pseudo_table): Rename to aout_pseudo_table.  Init all
	fields of sentinel.
	(obj_aout_frob_symbol): Expand S_GET_DESC, S_GET_TYPE,
	S_GET_OTHER, S_SET_TYPE macros since we don't need obj-multi
	forms here.
	(obj_aout_type): Expand S_SET_OTHER here too.
	(obj_read_begin_hook): Remove.
	(aout_pop_insert): New.
	(obj_aout_s_get_other): New.
	(obj_aout_s_get_desc): New.
	(aout_format_ops): New.
	Update copyright.

	* config/obj-aout.h (obj_pop_insert): Define so non-multi usage
	gets aout_pseudo_table.
	(aout_pseudo_table): Declare.
	(obj_read_begin_hook): Define.
	Update copyright.

	* config/obj-coff.c (obj_pseudo_table): Rename to
	coff_pseudo_table.
	(coff_pop_insert): Use coff_pseudo_table.
	(coff_sec_sym_ok_for_reloc): Remove.
	(coff_format_ops): Add 0 entries for s_get_size, s_set_size,
	and comment all zero entries and remove #if 0 code.
	Update copyright.

	* config/obj-coff.h (obj_pop_insert): Define.
	(coff_pseudo_table): Declare.
	Update copyright.

	* config/obj-ecoff.c (ecoff_format_ops): Add 0 entries for
	s_get_size, s_set_size.  Comment all zero entries.
	Update copyright.

	* config/obj-elf.c (elf_s_get_other): New function.
	(obj_read_begin_hook): Rename to elf_obj_read_begin_hook.
	(obj_symbol_new_hook): Rename to elf_obj_symbol_new_hook.
	(elf_format_ops): Add elf_s_get_other, 0 s_get_size entry, and
	comment.
	(obj_elf_parse_section_letters): Don't pass error strings to
	printf as format arg.
	Update copyright.

	* config/obj-elf.h (ECOFF_DEBUGGING): Define when
	OBJ_MAYBE_ECOFF.
	(elf_s_get_other): Declare.
	(S_GET_OTHER) Define as elf_s_get_other if not already
	defined.
	(S_SET_OTHER): Only define when not already defined.
	(elf_obj_read_begin_hook): Declare.
	(obj_read_begin_hook): Define.
	(elf_obj_symbol_new_hook): Declare.
	(obj_symbol_new_hook): Define.
	Update copyright.

	* config/obj-multi.h: Add copyright header and protect against
	multiple inclusion.  Add * to all function pointers.
	(OBJ_HEADER): If defined, include it rather than other defines
	in this file.
	(obj_frob_file_after_relocs): Test for NULL.
	(obj_symbol_new_hook): Here too.
	(obj_sec_sym_ok_for_reloc): And here.
	(S_GET_OTHER): Define.
	(S_GET_DESC): Define.
	(ECOFF_DEBUGGING): Remove as it's done in obj-elf.h
	(OBJ_MAYBE_ELF): Update comment.

	* config/tc-i386.c (i386_immediate): Add OBJ_MAYBE_AOUT to
	OBJ_AOUT preprocessor conditional and handle emulation by
	testing OUTPUT_FLAVOR.
	(i386_displacement): Here too.
	(md_section_align): Similarly here.
	(i386_target_format): Conditionally compile when more than one
	of OBJ_MAYBE_{ELF,COFF,AOUT} defined.  Add aout case.
	(i386_immediate): Fix error message for aout BFD_ASSMBLER.
	(i386_displacement): Here too.
	Update copyright.

	* config/tc-i386.h (AOUT_TARGET_FORMAT): Define for each TE_*.
	Define TARGET_FORMAT for aout only when not multi.
	Update copyright.

	* config/te-multi.h: Delete file as it's identical to te-generic.h

2000-01-15  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* config/tc-i386.h (DWORD_MNEM_SUFFIX): Delete.
	* config/tc-i386.c (DWORD_MNEM_SUFFIX): Rename all occurrences to
	LONG_MNEM_SUFFIX.

	* config/tc-i386.h (INTEL_DWORD_MNEM_SUFFIX): Rename to
	DWORD_MNEM_SUFFIX.
	* config/tc-i386.c (INTEL_DWORD_MNEM_SUFFIX): Here too.  Fix some
	comments.

2000-01-13  Clinton Popetz  <cpopetz@cygnus.com>

	* config/tc-mips.c (mips_do_align): New function.
	* config/tc-mips.h (md_do_align): Define.

2000-01-10  Philip Blundell  <philb@gnu.org>

	* doc/c-arm.texi (ARM Options): Fix typo.
	(ARM-Chars): Correct description of `#'.  Mention  that `;' is a
	line separator for Linux.
	* doc/as.texinfo (Comments): Mention the ARM.

2000-01-10  Philip Blundell  <pb@futuretv.com>

	* configure.in (arm*-*-conix*): New target.
	(arm*-*-linux-gnu*): Match instead of arm-*-linux* and
	armv*-*-linux-gnu.
	* configure: Regenerate.

2000-01-03  Martin v. Loewis  <loewis@informatik.hu-berlin.de>

	* config/obj-elf.c (elf_pseudo_table): Define visibility pseudos.
	(obj_elf_visibility): New function.

	* doc/as.texinfo (Visibility): New node: document visibility
	pseudo ops.

For older changes see ChangeLog-9899

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
