2009-05-26  Catherine Moore  <clm@codesourcery.com>

	* config/tc-mips.c (check_for_24k_errata): Remove.
	(md_mips_end): Remove call to check_for_24k_errata.
	(start_noreorder): Likewise.
	(s_change_sec): Likewise.
	(s_change_section): Likewise.
	(insns_between): Add 24k errata checks.
	(append_insn): Remove declaration and references to nhdx_24k.
	Remove calls to check_for_24k_errata.
	    
2009-05-26  Nick Clifton  <nickc@redhat.com>

	* po/id.po: Updated Indonesian translation.
	* po/gas.pot: Updated template file.

2009-05-26  Nick Clifton  <nickc@redhat.com>

	PR 10143
	* config/bfin-parse.y (error): Use "%s" as format string for error
	message.

2009-05-26  Alan Modra  <amodra@bigpond.net.au>

	* dep-in.sed: Output one filename per line with all lines having
	continuation backslash.  Prefix first line with "A", following
	lines with "B".
	* Makefile.am (DEP): Don't use dep.sed here.
	(DEP1): Run $MKDEP on single files, use dep.sed here on dependencies,
	sort and uniq.
	(DEPTC, DEPOBJ, DEP2): Use dep.sed on dependencies, sort and uniq.
	Emit multi dependencies on one line.
	* Makefile.in: Regenerate.

2009-05-25  Tristan Gingold  <gingold@adacore.com>

	* makefile.vms: New file to compile gas on VMS.

	* configure.com: New file to do configuration on VMS with DCL.

2009-05-23  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/tc-mips.c (nops_for_vr4130): Don't check noreorder_p.
	(nops_for_insn): Likewise.

2009-05-22  H.J. Lu  <hongjiu.lu@intel.com>

	* symbols.c (COPIED_SYMFLAGS): Add BSF_GNU_INDIRECT_FUNCTION.

2009-05-22  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* config/tc-i386.c (process_drex): Delete. Remove SSE5 support.
	(build_modrm_byte): Remove DREX handling support.
	(DREX_*): Delete.
	(drex_byte): Delete.
	(md_assemble): Remove DREX handling support.
	(process_operands): Remove DREX, SSE5 support.
	(i386_insn): Remove DREX.
	
2009-05-22  Alan Modra  <amodra@bigpond.net.au>

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

2009-05-20  Kai Tietz  <kai.tietz@onevision.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* config/obj-coff.h: Include "coff/x86_64.h" for x86 pe-coff.
	(TARGET_FORMAT): Removed for x86 pe-coff.
	(COFF_TARGET_FORMAT): Likewise.

	* config/tc-i386.c (md_longopts): Allow --64 for x86 pe-coff.
	(md_parse_option): Likewise.
	(md_show_usage): Show option --32/--64 for x86 pe-coff.
	(i386_target_format): Use also for x86 pe-coff.

	* config/tc-i386.h (TARGET_FORMAT): Defined as i386_target_format
	for x86 pe-coff.

2009-05-19  DJ Delorie  <dj@redhat.com>

	* config/tc-mep.c (mep_machine): Only check CPU flags, not COP flags.
	(mep_process_saved_insns): Remove debugging printfs.

2009-05-19  Dave Korn  <dave.korn.cygwin@gmail.com>

	* NEWS:  Mention new feature.
	* config/obj-coff.c (obj_coff_common_parse):  New function.
	(obj_coff_comm):  Likewise.
	(coff_pseudo_table):  Override default ".comm" definition on PE.
	* doc/as.texinfo:  Document new feature.

2009-05-17  Kai Tietz  <kai.tietz@onevision.com>

	* config/obj-coff.c (obj_coff_section): Add 'y' as
	specifier for SEC_COFF_NOREAD section flag.
	* doc/as.texinfo: Add documentation about .section flag 'y'.

2009-05-13  DJ Delorie  <dj@redhat.com>

	* cgen.c (gas_cgen_parse_operand): Guard against NULL pointers.

2009-05-13  Andrew Jenner  <andrew@codesourcery.com>

	* config/tc-arm.c: Move as.h to start of file.

2009-05-05 Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/tc-arm.h: Fix typo in comment.
	(ARM_IS_FUNC): New macro.
	(MD_APPLY_SYM_VALUE): Define.

	* config/tc-arm.c (do_blx): Retain BFD_RELOC_ARM_PCREL_BLX for
	all versions of EABI.
	(relax_branch): Do not relax for branches to ARM functions.
	(md_pcrel_from_section): Set up base correctly for
	BFD_RELOC_THUMB_PCREL_BLX, BFD_RELOC_THUMB_PCREL_CALL,
	BFD_RELOC_THUMB_PCREL_BRANCH23, BFD_RELOC_ARM_PCREL_BLX
	BFD_RELOC_ARM_PCREL_CALL.
	(md_apply_fix): Flip bl to blx where possible.
	Flip blx to bl where possible.
	(arm_force_relocation): Force relocations for
	BFD_RELOC_ARM_PCREL_JUMP, BFD_RELOC_ARM_PCREL_JUMP,
	BFD_RELOC_ARM_PCREL_BLX, BFD_RELOC_THUMB_PCREL_BLX,
	BFD_RELOC_THUMB_PCREL_BRANCH20, BFD_RELOC_THUMB_PCREL_BRANCH23,
	BFD_RELOC_THUMB_PCREL_BRANCH25.
	(arm_apply_sym_value): New function.
	
2009-05-04  Tristan Gingold  <gingold@adacore.com>

	* config/tc-alpha.c: Also declare alpha_prologue_label for OBJ_EVAX.

2009-05-01  Nathan Sidwell  <nathan@codesourcery.com>

	* config/tc-armlinux-eabi.h (FPU_DEFAULT): Default to plain VFP.
	* config/tc-armeabi.h (FPU_DEFAULT): Likewise.
	* config/tc-arm.c (md_begin): If FPU_DEFAULT is set, don't infer
	the default FPU from the processor.

2009-05-01  Julian Brown  <julian@codesourcery.com>

	* config/tc-arm.c (do_t_blx): Always use BFD_RELOC_THUMB_PCREL_BLX.
	(md_pcrel_from_section): Align address for BLX.
	(tc_gen_reloc): Change BFD_RELOC_THUMB_PCREL_BLX relocations to
	BFD_RELOC_THUMB_PCREL_BRANCH23 for EABI v4+.

2009-04-29  DJ Delorie  <dj@redhat.com>

	* config/tc-mep.c (md_begin): Check coprocessor type.
	(md_check_parallel64_scheduling): Use memset to initialize the buffer.
	(md_check_parallel32_scheduling): Likewise.
	(slot_ok): New.
	(mep_check_ivc2_scheduling): New.
	(mep_check_parallel_scheduling): Call it.
	(mep_process_saved_insns): Add IVC2 slot support.
	(md_assemble): Likewise.

2009-04-30  Nick Clifton  <nickc@redhat.com>

	* config/obj-elf.c (obj_elf_type): Add support for a
	gnu_indirect_function type.
	* config/tc-i386.c (tc_i386_fix_adjustable): Do not adjust fixups
	against indirect function symbols.
	* doc/as.texinfo (.type): Document the support for the
	gnu_indirect_function symbol type.
	* NEWS: Mention the new feature.

2009-04-24  Cary Coutant  <ccoutant@google.com>

	* NEWS: Add item about discriminator support.
	* dwarf2dbg.h (struct dwarf2_line_info): Add discriminator field.
	* dwarf2dbg.c (current): Add discriminator field.
	(dwarf2_where): Copy discriminator value.
	(dwarf2_consume_line_info): Set discriminator to 0.
	(dwarf2_directive_loc): Process discriminator sub-op.
	(out_leb128): New function.
	(process_entries): Output DW_LNE_set_discriminator.
	* doc/as.texinfo: Add discriminator operand to .loc directive.

2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>

	* config/tc-mips.c (macro_end, md_convert_frag): Use '%s' for
	as_bad calls to silence compiler warning.

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

	* config/tc-i386-intel.c (O_XXX): Reorder.

2009-04-20  Jan Beulich  <jbeulich@novell.com>

	* Makefile.am: Add explicit dependency of tc-i386.o on
	tc-i386-intel.c.
	* Makefile.in: Likewise.
	* config/tc-i386.c (i386_finalize_immediate): Declare, broken
	out from i386_immediate.
	(i386_immediate): Slightly re-arrange, call
	i386_finalize_immediate.
	(i386_finalize_displacement): Declare, broken out from
	i386_displacement.
	(i386_displacement): Slightly re-arrange, call
	i386_finalize_displacement.
	(i386_intel_simplify, i386_intel_parse_name): Declare.
	(this_operand): Initialize to -1.
	(set_intel_syntax): Set expression rank for O_full_ptr.
	(md_assemble): Set this_operand back to -1 after parsing
	operands.
	(x86_cons): Negate intel_syntax to indicate state. Call
	i386_intel_simplify.
	(md_operand): Convert if to switch. Handle '[' for Intel
	syntax.
	(i386_intel_operand): Delete, including all helper functions
	and data.
	* config/tc-i386-intel.c: New file, all new code.
	* config/tc-i386.h (i386_operator): Declare.
	(md_operator): Define to i386_operator.
	(i386_need_index_operator): Declare.
	(md_need_index_operator): Define to i386_need_index_operator.
	(O_full_ptr): Define.

2009-04-20  Jan Beulich  <jbeulich@novell.com>

	* expr.c (operand): Call md_need_index_operator() and
	md_operator() if defined. Add unary label.
	(operator): Call md_operator() if defined.
	(expr): Adjust assertions on range and rank of op_left and
	op_right. Don't abort on unhandled operators when reducing
	expressions with both operands being constant.
	(expr_set_rank): New.
	* expr.h (expr_set_rank): Declare.

2008-04-15  Anthony Green  <green@moxielogic.com>

	* config/tc-moxie.h: New file.
	* config/tc-moxie.c: New file.
	* configure: Add support for moxie.
	* configure.tgt: Add support for moxie.

2009-04-16  Jan Beulich  <jbeulich@novell.com>

	* expr.c: Include limits.h if available, and #define CHAR_BITS
	otherwise.
	(expr): Check range of shift count when evaluating a constant
	expression.

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

	* config/tc-i386.c (process_operands): Print operands in
	correct order depending on intel_syntax.

2009-04-09  Catherine Moore  <clm@codesourcery.com>

	* config/tc-mips.c (mips_fix_24k): Declare.
	(check_for_24k_errata): New.
	(mips_cleanup): Call check_for_24k_errata.
	(start_noreorder): Likewise.
	(md_mips_end): Likewise.
	(s_change_sec): Likewise.
	(s_change_section): Likewise.
	(append_insn): Call check_for_24k_errata.  Prevent
	ERET/DERET instructions from being moved into delay
	slots.
	(OPTION_FIX_24K): New.
	(OPTION_NO_FIX_24k) New.
	(md_longopts): Add "mfix-24k" and "mno-fix-24k".
	(md_parse_option): Handle fix-24k options.
	(md_show_usage): Display fix-24k options.
	* doc/c-mips.texi: Document.

2009-04-09  Adam Nemet  <anemet@caviumnetworks.com>

	* config/tc-mips.c (mips_dwarf2_addr_size): Use HAVE_64BIT_OBJECTS
	instead of HAVE_64BIT_SYMBOLS.

2009-04-07  DJ Delorie  <dj@redhat.com>

	* config/tc-mep.c: Add UCI/DSP instruction support.  Add C5 support.
	(md_show_usage): Change default endian to little.
	* config/tc-mep.h (TARGET_BYTES_BIG_ENDIAN): Change default to little.

2009-04-06  DJ Delorie  <dj@redhat.com>

	* tc-h8300.c (do_a_fix_imm): Pass the insn, force relocs for MOVA
	immediates.
	(build_bytes): Pass insn to do_a_fix_imm.

2009-04-02  Daniel Gutson <dgutson@codesourcery.com>

	* config/tc-arm.c (arm_cpus): Add entry for ARM Cortex-M0.
	* doc/c-arm.texi: Added codes for processors ARM Cortex-M0 and
	Cortex-M1.

2009-04-01  Matt Thomas	<matt@netbsd.org>

	* config/tc-vax.c (synthetic_votstrs): add "jbbcci" and "jbbssi"
	(md_assemble): emit symbol name when used as immediate in PIC mode.
	(md_assemble): fix LP64 bug (use sizeof (valueT) instead 4).

2009-04-01  Sterling Augustine  <sterling@jaw.hq.tensilica.com>

	* config/tc-xtensa.c (parse_arguments): call demand_empty_rest_of_line

2009-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/tc-arm.c (arm_validate_fix): Define only for OBJ_COFF.
	(find_real_start): Likewise.
	* config/tc-arm.h (TC_VALIDATE_FIX): Likewise

2009-04-01  Nathan Sidwell  <nathan@codesourcery.com>

	* config/tc-arm.c (do_nop): Generate v6k nops whenever possible.
	(arm_handle_align): Generate v6k ARM, thumb2 wide & narrow nops
	whenever possible.

2009-03-31  Peter Bergner  <bergner@vnet.ibm.com>

	* config/tc-ppc.c (ppc_handle_align): Handle power7's group ending nop.

2009-03-31  Dave Korn  <dave.korn.cygwin@gmail.com>

	* doc/internals.texi:  Fix trivial syntax errors.

2009-03-26  Alan Modra  <amodra@bigpond.net.au>

	PR 10005
	* config/tc-i386.c (reloc): Don't abort on lack of required
	reloc type.

2009-03-25  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (parse_insn): Use default_arch on unsupported
	arch.

2009-03-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR gas/9966
	* listing.c (listing_newline): Properly handle `\\"' and ';'.

	* read.c (is_end_of_line): Update comments for line separator.
	(read_begin): Set line separator in is_end_of_line to 2.

2009-03-19  David S. Miller  <davem@davemloft.net>

	* config/tc-sparc.c (md_parse_option): If the user gives
	us '--64' make sure max_architecture is at least V9.

2009-03-18  Andrew Stubbs  <ams@codesourcery.com>

	* config/tc-arm.c (md_apply_fix): Check BFD_RELOC_ARM_IMMEDIATE and
	BFD_RELOC_ARM_ADRL_IMMEDIATE value is in the correct section.
	Check BFD_RELOC_ARM_ADRL_IMMEDIATE has a defined symbol.

2009-03-18  Alan Modra  <amodra@bigpond.net.au>

	* as.h: Include alloca-conf.h instead of config.h and remove
	existing #if's handling alloca.
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* config/tc-ppc.c (ppc_frob_symbol): Add csect information for
	C_AIX_WEAKEXT too.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* config/tc-ppc.c (md_apply_fix): On COFF targets, always reread
	"value" from fx_offset.  Manually resubtract md_pcrel_from_section
	where necessary.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* configure.tgt: Extend AIX 5 behavior to AIX 6 and above.
	* configure.in: Likewise.
	* configure: Regenerate.

2009-03-11  Hans-Peter Nilsson  <hp@axis.com>

	* config/tc-cris.c (cris_create_short_jump): Remove prototype.
	Rename, changing all callers, to...
	(md_create_short_jump): Adjust head comment.  Assert
	word-sized-branch distance for v32.  Bail out calling as_fatal for
	compatibility mode here.
	(md_create_long_jump): ...not here.
	* config/tc-cris.h (md_create_short_jump): Do not define.

2009-03-10  Hans-Peter Nilsson  <hp@axis.com>

	* write.c (write_object_file) [!WORKING_DOT_WORD]: When patching
	the jump table for multiple overflowing entries with the same
	target, handle base symbols being different.
	(relax_segment) <case rs_broken_word, second loop>: Whenever a
	single entry overflows, arrange to redirect all entries with the
	same target.

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

	* config/tc-ppc.c (parse_cpu): Delete.
	(md_parse_option, ppc_machine): Use ppc_parse_cpu.

2009-03-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR gas/9915
	* config/tc-i386.h (LOCAL_LABELS_DOLLAR): New.  Defined as 0.
	(LOCAL_LABELS_FB): Undefine befoe define.

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

	* po/es.po: Updated Spanish translation.

2009-03-05  Joseph Myers  <joseph@codesourcery.com>

	* read.c (s_fill, s_space, s_float_space, float_cons, stringer,
	s_incbin): Call md_cons_align (1).

2009-03-04  Nick Clifton  <nickc@redhat.com>

	* config/tc-alpha.c (alpha_prologue_label): Only define for ELF
	based targets.
	(s_alpha_comm): Only define "temp" and "log_align" local variables
	for EVAX targets.

2009-03-04  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-ppc.c (ppc_elf_suffix): Error if ppc32 tls got relocs
	have non-zero addend.
	(md_assemble): Parse args of __tls_get_addr calls.
	(md_apply_fix): Handle BFD_RELOC_PPC_TLSGD and BFD_RELOC_PPC_TLSLD.

2009-03-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	binutils/3807
	* config/tc-hppa.h (tc_frob_symbol): Don't frob absolute symbols with
	local scope for ELF targets.

2009-03-04  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-ppc.c (md_assemble): APUinfo only for e500.

2009-03-03  Tristan Gingold  <gingold@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>
	    Douglas B Rupp  <rupp@gnat.com>

	* doc/as.texinfo (Overview): Mention -replace/-noreplace options
	for Alpha.
	* doc/c-alpha.texi (Alpha Options): Document -replace/-noreplace.
	* config/tc-alpha.h (TC_VALIDATE_FIX_SUB): Define to 1 (evax).
	(OBJ_SYMFIELD_TYPE): Remove.
	(tc_canonicalize_symbol_name): Define to evax_shorten_name.
	(TC_IMPLICIT_LCOMM_ALIGNMENT): For alignment to 3 on evax.
	(tc_frob_file_before_fix): Do not defined on evax.
	* config/tc-alpha.c: Always includes dwarf2dbg.h.
	Include vms.h if OBJ_EVAX.
	(struct alpha_fixup): Add xtrasym and procsym (evax only).
	(enum alpha_macro_arg): Remove trailing comma.
	(md_longopts): Add replace and noreplace arguments (evax only).
	(alpha_evax_proc_hash): New variable.
	(alpha_link_section): Make it global.
	(alpha_ctors_section, alpha_dtors_section): Removed.
	(alpha_ctors_symbol, alpha_dtors_symbol): Ditto.
	(alpha_lit8_section): Ifndef'ed on evax.
	(alpha_lit8_symbol): Ditto.
	(alpha_prologue_label): New variable.
	(alpha_linkage_symbol): New variable (evax only).
	(alpha_flag_replace): Ditto.
	(struct alpha_evax_procs): Add handler and handler_data field.
	(alpha_evax_proc): Now of type pointer.
	(alpha_linkage_fixup_root, alpha_linkage_fixup_tail): New variables.
	(struct alpha_reloc_tag): Add sym and psym fields (evax only).
	(get_alpha_reloc_tag): Initialize sym and psym fields (evax only).
	(alpha_adjust_relocs): Ifndef'ed on evax.
	(load_expression): Add opname argument.
	Implement LDA/BSR optimization for evax.
	(emit_lda): Adjust for new prototype of load_expression.
	(emit_ir_load): Ditto. Do not nothing for GP if ..lk symbols.
	(emit_loadstore): Likewise.
	(emit_ldXu): Likewise.
	(emit_stX): Likewise.
	(emit_jsrjmp): Likewise.  Implement LDA/BSR optimization for evax.
	(emit_ldgp): Avoid warning in evax case.
	(add_to_link_pool): Make it static.  Return symbolic expression rather
	than number expression for the offset.
	(s_alpha_text): Create .text symbol for evax if not already created.
	(s_alpha_comm): Do not create specific section for common symbol.
	Fill common area with zeros for evax.
	(s_alpha_prologue): Create alpha_prologue_label.
	(s_alpha_section_name): New function (evax).
	(s_alpha_section_word): Likewise.
	(section_name): New static variabke moved out from ...
	(s_alpha_section): ... here.  Create new sections on demand.
	(s_alpha_literals): New function (evax).
	(s_alpha_ent): Create alpha_evax_proc instance and insert it in the
	alpha_evax_proc_hash table.
	(s_alpha_handler): New function (evax).
	(s_alpha_frame): Adjust for new type of alpha_evax_proc.
	(s_alpha_prologue): New function (evax).
	(s_alpha_pdesc): Adjust for new type of alpha_evax_proc and new
	handling of procedures with hash table.
	Add support for condition handlers.
	(s_alpha_linkage): Create linkage_fixup instance and chain it.
	(s_alpha_fp_save): Adjust for new type of alpha_evax_proc.
	(s_alpha_mask): Likewise.
	(s_alpha_fmask): Likewise.
	(s_alpha_end): Clear alpha_evax_proc.
	(s_alpha_align): Increase max_alignment to 16.
	(alpha_print_token): Call print_expr_1 instead of print_expr.
	(md_pseudo_table): Add "section", "literals", "handler" and
	"handler_data" (evax).  Do not ignore "prologue" on evax.
	Fix indentation.
	(md_begin): Create hash table for alpha_evax_proc_hash.
	(md_parse_option): Handle OPTION_REPLACE and OPTION_NOREPLACE.
	(md_show_usage): Mention -replace/-noreplace for evax.
	(md_apply_fix): Handle evax relocs (_NOP, _LDA, _BSR and _BOH).
	(alpha_force_relocation): Likewise.
	(alpha_fix_adjustable): Likewise. Add BFD_RELOC_16 case.
	(tc_gen_reloc): Likewise.  Add BFD_RELOC_ALPHA_LINKAGE for evax.
	(emit_insn): New cases for evax specific relocs.
	(assemble_insn): Fix indentation.
	Take care of -MDISP in operand table.
	* config/obj-evax.h (struct alpha_linkage_fixups): New struct.
	(OBJ_SYMFIELD_TYPE): New macro.
	(obj_symbol_new_hook): Define.
	(obj_frob_symbol, obj_frob_file_before_adjust): Ditto.
	(obj_frob_file_before_fix): Ditto.
	(PDSC_S_M_HANDLER_VALID): New macro.
	(PDSC_S_M_HANDLER_DATA_VALID): Ditto.
	(TC_IMPLICIT_LCOMM_ALIGNMENT): Remove.
	Add prototypes for functions declared in obj-evax.c
	* config/obj-evax.c: Include subsegs.h, struc-symbol.h, safe-ctype.h.
	(s_evax_weak): Convert to ansi-C.
	(evax_symbol_new_hook): New function.
	(evax_frob_symbol): Ditto.
	(evax_frob_file_before_adjust): Ditto.
	(evax_frob_file_before_fix): Ditto.
	(evax_shorten_name): Ditto.
	(crc32): Ditto.
	(encode_32): Ditto.
	(encode_16): Ditto.
	(decode_16): Ditto.
	(shorten_identifier): Ditto.
	(is_truncated_identifier): Ditto.
	* dwarf2dbg.c (out_debug_info): Do not append trailing slash on	VMS.
	* as.c (close_output_file): Remove #ifndef OBJ_VMS.
	(main): Ditto.

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

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

2009-03-02  Nick Clifton  <nickc@redhat.com>

	PR 9874
	* config/tc-ia64.c (fix_insn): Fix warning reported by
	-Wformat-security.

2009-03-02  Qinwei  <qinwei@sunnorth.com.cn>

	* config/tc-score7.c: New file.
	* doc/c-score.texi: New file.
	* Makefile.am: Update dependencies for tc-score.c.
	* Makefile.in: Regenerate.
	* NEWS: Mention support for Score7 architecture.
	* config/tc-score.c: Add support for Score7 architecture.
	* config/tc-score.h: Likewise.
	* doc/Makefile.am: Add c-score.texi.
	* doc/Makefile.in: Regenerate.
	* doc/all.texi: Add Score7.
	* doc/as.texinfo: Add Score7.

2009-03-01  Mark Mitchell  <mark@codesourcery.com>

	* config/tc-arm.c (md_assemble): Allow barrier instructions on
	ARMv6-M cores.

2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2009-02-26  Peter Bergner  <bergner@vnet.ibm.com>

	* config/tc-ppc.c (pre_defined_registers): Add "f32" to "f63",
	"f.32" to "f.63", "vs0" to "vs63" and "vs.0" to "vs.63".
	(parse_cpu): Extend -mpower7 to accept power7 and isel instructions.

2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (fits_in_imm4): Removed.

2009-02-24  Helge Deller <deller@gmx.de>

	* config/tc-hppa.c (pa_ip): Add check of immediate values.
	(SAVE_IMMEDIATE): New define.

2009-02-23  Mark Mitchell  <mark@codesourcery.com>

	* config/tc-arm.c (warn_deprecated_sp): New macro.
	(do_t_mov_cmp): Permit R13 as the second
	argument to "cmp.n".

2009-02-23  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (type_names): Add OPERAND_TYPE_REGYMM.
	(pt): Replace UINTS_ALL_ZERO with operand_type_all_zero.

2009-02-23  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (type_names): Remove OPERAND_TYPE_VEX_IMM4.

2009-02-23  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (vex_imm4): Removed.
	(VEX_check_operands): Likewise.
	(match_template): Updated.

2009-02-23  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* doc/all.texi: Set S390.
	* doc/as.texinfo: Add S390 support and pull in c-s390.texi.
	* doc/Makefile.am (CPU_DOCS): Add c-s390.texi.
	* doc/Makefile.in: Likewise.
	* doc/c-s390.texi: New.

2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>

	* config/tc-m68k.c (mcf51qe_ctrl): Add CPUCR.
	(mcf52259_ctrl, mcf52277_ctrl, mcf53017_ctrl): New.
	(mcf5307_ctrl): Add VBR.
	(no_mac): New variable.
	(m68k_extensions): Refer to no_mac mask.
	(m68k_cpus): Add 51, 51ac, 51cn, 51em, 51jm, 52274, 52277,
	52252..52259, 53011..53017.
	(m68k_ip): Process CPUCR.
	(init_table): Add cpucr entry.
	(m68k_set_extension): Allow negated mask to refer to a variable.
	(md_show_usage): Use '%s' to silence fprintf warning.
	* config/m68k-parse.h (CPUCR): New control register.

2009-02-10  Nathan Sidwell  <nathan@codesourcery.com>

	* config/tc-ppc.c (ppc_insert_operand, md_assemble): Use '%s' for
	as_bad calls to silence compiler warning.

2009-02-06  Nick Clifton  <nickc@redhat.com>

	PR 9814
	* config/tc-arm.c (MODE_RECORDED): New define.
	(output_inst): Record the thumb_mode in the current frag.
	(arm_handle_align): Ignore the MODE_RECORDED bit in tc_frag_data.
	(arm_init_frag): Only set the tc_frag_data field if it has not
	already been set.

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

	AVX Programming Reference (January, 2009)
	* config/tc-i386.c (CPU_FLAGS_PCLMUL_MATCH): New.
	(CPU_FLAGS_AVX_MATCH): Updated.
	(CPU_FLAGS_32BIT_MATCH): Likewise.
	(cpu_flags_match): Likewise.

2009-02-03  Sandip Matte  <sandip@rmicorp.com>

	* config/tc-mips.c (macro): Handle M_MSGSND, M_MSGLD, M_MSGLD_T,
	M_MSGWAIT and M_MSGWAIT_T.
	(mips_cpu_info_table): Add XLR entry.
	* doc/c-mips.texi (-march): Document xlr.

2009-02-03  Eric B. Weddington  <eric.weddington@atmel.com>

	* config/tc-avr.c (mcu_types): Add ata6289.
	* doc/c-avr.texi: Likewise.

2009-02-03  Carlos O'Donell  <carlos@codesourcery.com>

	* configure.in: AC_SUBST pdfdir.
	* Makefile.am: Add install-pdf, install-pdf-am,
	and install-pdf-recursive targets.
	* doc/Makefile.am: Define pdf__strip_dir. Add
	install-pdf and install-pdf-am targets.
	* po/Make-in: Add install-pdf target.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.

2009-02-03  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k-parse.h (enum pic_relocation): Add values for TLS
	relocations.
	* config/m68k-parse.y (yylex): Parse TLS relocations.
	* config/tc-m68k.c (m68k_elf_cons): New static function.
	(md_pseudo_table): Use it.
	(get_reloc_code, tc_m68k_fix_adjustable, tc_gen_reloc): Handle TLS
	relocations.
	(md_apply_fix): Fix to set thread local flag.
	(m68k_elf_suffix): New static function; helper for m68k_elf_cons.

2009-02-03  Vince Weaver <vince@csl.cornell.edu>

	PR 9779
	* config/tc-pdp11.c (parse_op_no_deferred): Fix handling of
	indexed addressing for symbolic expressions.

2009-01-29  Mark Mitchell  <mark@codesourcery.com>

	* config/tc-arm.c (BAD_SP): Define.
	(s_arm_unwind_fnstart): Use REG_SP.
	(s_arm_unwind_setfp): Likewise.
	(reject_bad_reg): New macro.
	(do_co_reg): Check for bad registers.
	(do_co_reg2c): Likewise.
	(do_srs): Use REG_SP.
	(do_t_add_sub): Check for bad registers.
	(do_t_adr): Likewise.
	(do_t_arit3): Likewise.
	(do_t_arit3c): Likewise.
	(do_t_bfc): Likewise.
	(do_t_bfi): Likewise.
	(do_t_bfx): Likewise.
	(do_t_blx): Likewise.
	(do_t_bx): Likewise.
	(do_t_bxj): Likewise.
	(do_t_clz): Likewise.
	(do_t_div): Likewise.
	(do_t_mla): Likewise.
	(do_t_mlal): Likewise.
	(do_t_mov_cmp): Likewise.
	(do_t_mov16): Likewise.
	(do_t_mvn_tst): Likewise.
	(do_t_mrs): Likewise.
	(do_t_msr): Likewise.
	(do_t_mul): Likewise.
	(do_t_mull): Likewise.
	(do_t_orn): Likewise.
	(do_t_pkhbt): Likewise.
	(do_t_pld): Likewise.
	(do_t_rbit): Likewise.
	(do_t_rev): Likewise.
	(do_t_rrx): Likewise.
	(do_t_rsb): Likewise.
	(do_t_shift): Likewise.
	(do_t_simd): Likewise.
	(do_t_ssat): Likewise.
	(do_t_ssat16): Likewise.
	(do_t_sxtah): Likewise.
	(do_t_sxth): Likewise.
	(do_t_tb): Likewise.
	(do_t_usat): Likewise.
	(do_t_usat16): Likewise.
	(nysn_insert_sp): Use REG_SP.

2009-01-29  Mark Mitchell  <mark@codesourcery.com>

	* config/tc-arm.c (do_t_orn): New function.
	(do_t_rrx): Likewise.
	(insns): Add orn and rrx.

2009-01-29  Mark Mitchell  <mark@codesourcery.com>

	* config/tc-arm.c (insns): Add qasx, qsax, shasx, shsax, ssax,
	uasx, uhasx, uhsx, uqasx, uqsax, usax.

2009-01-29  Mark Mitchell  <mark@codesourcery.com>

	* config/tc-arm.c (insns): Correct encoding of qadd, qdadd, qsub,
	qdsub in Thumb-2 mode.

2009-01-29  Paul Brook  <paul@codesourcery.com>
	    Mark Mitchell  <mark@codesourcery.com>

	* config/tc-arm.c (do_t_mul): In Thumb-2 mode, use 16-bit encoding
	of MUL when possible.

2009-01-29  Nick Clifton  <nickc@redhat.com>

	* config/tc-mep.h (DIFF_EXPR_OK): Do not define.

2009-01-29  Nathan Sidwell  <nathan@codesourcery.com>
	    Catherine Moore <clm@codesourcery.com?

	* doc/c-arm.texi (ARM Directives): Alphabetize. Document .2byte,
	.4byte, .8byte, .bss, .even, .extend, .ldouble, .packed, .secrel32
	directives.

2009-01-27  Nick Clifton  <nickc@redhat.com>

	* config/tc-mips.c (append_insn): Cope with a complex reloc
	sequence containing an unsupported reloc type.
	(enum options): Replace computed #define's constants for option
	numbers with this enum.
	(struct md_longopts): Use the enum.  Allow OPTION_32 in a non-ELF
	environment.
	(md_parse_option): Allow -32 in a non-ELF environment.

2009-01-26  Andrew Stubbs  <ams@codesourcery.com>

	* config/tc-arm.c (attributes_set_explicitly): New array.
	(s_arm_eabi_attribute): Check return value from s_vendor_attribute.
	(cpu_arch): Add ARM_ARCH_V5T.
	(aeabi_set_attribute_int): New function.
	(aeabi_set_attribute_string): New function.
	(aeabi_set_public_attributes): Set attributes according to the user's
	intentions, rather than the actual state of the binary.
	Use aeabi_set_attribute_int and aeabi_set_attribute_string instead of
	bfd_elf_add_proc_attr_int and bfd_elf_add_proc_attr_string.
	Support WMMXv2. Use attribute names instead of numbers.
	* read.c (s_vendor_attribute): Change return type to int.
	Return the tag number that was set.
	* read.h (s_vendor_attribute): Change return type to int.

2009-01-26  Eric B. Weddington  <eric.weddington@atmel.com>

	PR 9789
	* config/tc-avr.c (mcu_types): Fix typo in atmega128rfa1 name.
	* doc/c-avr.texi: Likewise.

2009-01-23  Nathan Sidwell  <nathan@codesourcery.com>

	* doc/c-arm.texi (): Document -mwarn-deprecated.
	* config/tc-arm.c (WARN_DEPRECATED): Remove.  Replace with ...
	(warn_on_deprecated): ... this.
	(opcode_lookup, md_assemble): Check it before warning.
	(arm_opts): Add m[no-]warn-deprecated.
	(md_parse_option): Replace WARN_DEPRECATED with
	warn_on_deprecated.

2009-01-23  Andreas Schwab  <schwab@suse.de>

	* config/tc-mips.c (macro) [M_DINS, M_SEQ_I, M_SNE_I]: Cast
	arguments to macro_build to match format.

	* config/obj-elf.h (LOCAL_LABEL_PREFIX): Conditionally define.
	* config/tc-s390.h (LOCAL_LABEL_PREFIX): Don't define.

2009-01-19  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.h (CONVERT_SYMBOLIC_ATTRIBUTE): Only define for
	ELF format ARM targets.
	* config/tc-arm.c (arm_convert_symbolic_attribute): Likewise.

2009-01-19  Nick Clifton  <nickc@redhat.com>

	* configure.tgt: Restore alpha sorting to object format switch
	statement.

2009-01-19  Andrew Stubbs  <ams@codesourcery.com>

	* read.c (s_vendor_attribute): Allow for unknown flag bits in type.

2009-01-16  Mark Shinwell  <shinwell@codesourcery.com>

	* config/te-armeabi.h (EABI_DEFAULT): Use EF_ARM_EABI_VER5.
	* config/te-armlinuxeabi.h (EABI_DEFAULT): Likewise.

2009-01-16  Andrew Stubbs  <ams@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* config/tc-arm.c (arm_copy_symbol_attributes): New function.
	* config/tc-arm.h (arm_copy_symbol_attributes): New prototype.
	(CONVERT_SYMBOLIC_ATTRIBUTE): New define.
	* read.c (s_vendor_attribute): Add support for symbolic tag names.
	Improve string parser.
	* doc/c-arm.texi (ARM Machine Directives): Document
	.eabi_attribute symbolic tag names.

2009-01-16  Alan Modra  <amodra@bigpond.net.au>

	* configure.in (commonbfdlib): Delete.
	* configure: Regenerate.
	* po/POTFILES.in: Regenerate.

2009-01-15  Andrew Stubbs  <ams@codesourcery.com>
	    Julian Brown   <julian@codesourcery.com>

	* config/tc-arm.c (cpu_arch): Change ARM_ARCH_V6M to 11.

2009-01-15  Andrew Stubbs  <ams@codesourcery.com>

	* read.c (s_vendor_attribute): bfd_elf_add_obj_attr_compat ->
	bfd_elf_add_obj_attr_int_string.

2009-01-15  Douglas B Rupp  <rupp@gnat.com>

	* configure.tgt(ia64-*-*vms*): New target.
	* dwarf2dbg.h (dwarf2_loc_mark_labels): Make extern.
	* tc.h (md_number_to_chars): Declare iff undefined.
	* config/obj-elf.c (obj_elf_change_section): Change type of arg
	attr to bfd_vma.
	(obj_elf_parse_section_letters): Return a bfd_vma. Change type of
	variables attr, md_attr to bfd_vma.
	(obj_elf_section_word): Likewise.
	(obj_elf_section): Change type of variable attr to bfd_vma
	* config/obj-elf.h (obj_elf_change_section): Change type of arg
	attr to bfd_vma.
	* config/tc-ia64.c (bfdver.h,time.h): Include.
	(ia64_elf_section_letter): Now returns a bfd_vma.
	Handle VMS specific attributes.
	(ia64_elf_section_flags): Arg attr now a bfd_vma.
	(ia64_init): Don't turn on dependency checking for VMS.
	(ia64_target_format): Check for VMS flag bit.
	(do_alias): Hande decc$ functions.
	(get_vms_time): New function.
	(ia64_vms_note): New function.
	* config/tc-ia64.h (ia64_elf_section_letter): Now returns a bfd_vma.
	(ia64_elf_section_flags): Arg attr now a bfd_vma.
	(tc_init_after_args): Define for VMS.
	* config/tc-alpha.c (alpha_elf_section_letter): Return a bfd_vma.
	(alpha_elf_section_flags): Change type of arg attr to bfd_vma.
	* config/tc-alpha.h: Likewise.
	* config/tc-i386.c (x86_64_section_letter): Return a bfd_vma.
	(x86_64_section_word): Return a bfd_vma.
	* config/tc-i386.h: Likewise.
	* config/tc-ip2k.c (ip2k_elf_section_flags): Change type of arg
	attr to bfd_vma.
	* config/tc-ip2k.h: Likewise.
	* config/tc-mep.c (mep_elf_section_letter): Return a bfd_vma.
	(mep_elf_section_flags): Change type of arg attr to bfd_vma.
	* config/tc-mep.h: Likewise.
	* config/tc-ppc.c  (ppc_section_letter): Return a bfd_vma.
	(ppc_section_word): Return a bfd_vma.
	(ppc_section_flags): Change type of arg attr to bfd_vma.
	* config/tc-ppc.h: Likewise.
	* config/tc-frv.h: Provide a prototype for frv_md_number_to_chars.
	* config/te-vms.h (DWARF2_DIR_SHOULD_END_WITH_SEPARATOR,
	DWAR2_FILE_TIME_NAME, DWARF2_FILE_SIZE_NAME, DWARF2_FILEN_NAME):
	New file with new macros
	* dwarf2dbg.c (get_filenum, out_file_list): Default and call new
	macros.

2009-01-15  Nick Clifton  <nickc@redhat.com>

	PR 9722
	* config/tc-arm.c (do_t_nop): Check for availability of Thumb2
	instructions before generating a Thumb2 nop.

2009-01-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/tc-s390.h: Define LOCAL_LABEL_PREFIX.

2009-01-12  Alan Modra  <amodra@bigpond.net.au>

	* config/tc-spu.c (md_pseudo_table): Add "brinfo".
	(brinfo): New var.
	(md_assemble): Poke brinfo into branch instructions.
	(spu_brinfo): New function.
	(md_apply_fix): Don't assume insn fields start off at zero, mask
	them to remove possible brinfo.

2009-01-10  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/c-i386.texi: Reformat.

2009-01-10  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (cpu_arch): Add corei7, .clflush and
	.syscall.
	(i386_align_code): Handle PROCESSOR_COREI7.
	(md_show_usage): Add corei7, clflush and syscall.
	(i386_target_format): Replace cpup4 with cpuclflush.

	* config/tc-i386.h (processor_type): Add PROCESSOR_COREI7.

	* doc/c-i386.texi: Document corei7, clflush and syscall.

2009-01-09  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (cpu_arch): Add .rdtscp.
	(md_show_usage): Display rdtscp.

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

2009-01-09  Peter Bergner  <bergner@vnet.ibm.com>

	* config/tc-ppc.c (ppc_setup_opcodes): Remove PPC_OPCODE_NOPOWER4 test.
	Test the new "deprecated" opcode field.

2009-01-07  Sterling Augustine  <sterling@tensilica.com>

	* config/tc-xtensa.c (produce_flix): New.
	(option_flix, optoin_no_generate_flix, option_no_flix) Define.
	(md_longopts): Add support for them.
	(md_parse_option): Likewise.
	(md_show_usage): Add help message.
	(finish_vinsn): Don't allow multi-slot flix when produce_flix
	option is set to FLIX_NONE.
	* config/xtensa-relax.c (transition_applies): Only relax to
	flix branches when produce_flix equals FLIX_ALL.
	* config/xtensa-relax.h (flix_level, FLIX_ALL, FLIX_NO_GENERATE
	FLIX_NONE): New.
	(produce_flix): Declare.

2009-01-06  Chao-ying Fu  <fu@mips.com>

	* config/tc-mips.c (mips_ip): Set lastregno to 0xffffffff.
	Use strncmp to match jalr and jalr.hb.
	Fix a typo.

2009-01-05  H.J. Lu  <hongjiu.lu@intel.com>

	AVX Programming Reference (December, 2008)
	* config/tc-i386.c (build_modrm_byte): Remove 5 operand instruction
	support.  Don't swap REG and NDS for FMA.

2009-01-02  Matthias Klose  <doko@ubuntu.com>

	* itbl-ops.c (itbl_disassemble): Don't rely on undefined sprintf
	behaviour.

For older changes see ChangeLog-2008

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
