2016-09-26  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	Backport from mainline
	2016-02-16  Nick Clifton  <nickc@redhat.com>

	* doc/as.texinfo (Section): Fix up texinfo snafus in previous
	update.

2016-09-25  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	Backport from mainline
	2016-02-15  Nick Clifton  <nickc@redhat.com>

	* doc/as.texinfo (.section): Document that numeric values can now
	be used for the flags and type fields of the ELF target's .section
	directive.  Add notes about the restrictions on setting flags and
	types.
	* config/obj-elf.c (obj_elf_change_section): Allow known sections
	to be given processor specific section types.  Allow processor and
	application specific flags of a section to be set after
	definition.
	(obj_elf_parse_section_letters): Handle parsing numeric values.
	(obj_elf_section_type): Handle parsing numeric values.
	(obj_elf_section): Allow numeric type values.
	* config/obj-elf.h (obj_elf_change_section): Update prototype.
	* NEWS: Mention the new feature.

2016-08-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Backport from mainline
	2016-08-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (v7m_psrs): Add MSPLIM, PSPLIM, MSPLIM_NS,
	PSPLIM_NS, PRIMASK_NS, BASEPRI_NS, FAULTMASK_NS, CONTROL_NS, SP_NS and
	their lowecase counterpart special registers.  Write register
	identifier in hex.
	* testsuite/gas/arm/archv8m-cmse-msr.s: Reorganize tests per
	operation, special register and then case.  Use different register for
	each operation.  Add tests for new special registers.
	* testsuite/gas/arm/archv8m-cmse-msr-base.d: Adapt expected result
	accordingly.
	* testsuite/gas/arm/archv8m-cmse-msr-main.d: Likewise.
	* testsuite/gas/arm/archv8m-main-dsp-4.d: Likewise.

2016-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Backport from mainline
	2016-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (v7m_psrs): Remove msp_s, MSP_S, psp_s and PSP_S
	special registers.
	* testsuite/gas/arm/archv8m-cmse-msr.s: Remove test for above special
	registers.
	* testsuite/gas/arm/archv8m-cmse-msr-base.d: Likewise.
	* testsuite/gas/arm/archv8m-cmse-msr-main.d: Likewise.
	* testsuite/gas/arm/archv8m-main-dsp-4.d: Likewise.

2016-05-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* NEWS: Document support for ARMv8-M and its DSP and Security
	Extensions.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (arm_adjust_symtab): Use ARM_SET_SYM_BRANCH_TYPE to
	set branch type of a symbol.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (arm_ext_dsp): New feature for Thumb DSP
	instructions.
	(arm_extensions): Add dsp extension for ARMv8-M Mainline.
	(aeabi_set_public_attributes): Memorize the feature bits of the
	architecture selected for Tag_CPU_arch.  Use it to set
	Tag_DSP_extension to 1 for ARMv8-M Mainline with DSP extension.
	(arm_convert_symbolic_attribute): Define Tag_DSP_extension.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c
	(struct arm_option_extension_value_table): Make allowed_archs an array
	with 2 entries.
	(ARM_EXT_OPT): Adapt to only fill the first entry of allowed_archs.
	(ARM_EXT_OPT2): New macro filling the two entries of allowed_archs.
	(arm_extensions): Use separate entries in allowed_archs when several
	archs are allowed to use an extension and change ARCH_ANY in
	ARM_ARCH_NONE in allowed_archs.
	(arm_parse_extension): Check that, for each allowed_archs entry, all
	bits are set in the current architecture, ignoring ARM_ANY entries.
	(s_arm_arch_extension): Likewise.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (arm_ext_m): Add feature bit ARM_EXT2_V8M_MAIN.
	(arm_ext_v8m_main): New feature set for bit ARM_EXT2_V8M_MAIN.
	(arm_ext_v8m_m_only): New feature set for instructions in ARMv8-M not
	shared with a non M profile architecture.
	(do_rn): New function.
	(known_t32_only_insn): Check opcode against arm_ext_v8m_m_only rather
	than arm_ext_v8m.
	(v7m_psrs): Add ARMv8-M security extensions new special registers.
	(insns): Add ARMv8-M Security Extensions instructions.
	(aeabi_set_public_attributes): Use arm_ext_v8m_m_only instead of
	arm_ext_v8m_m to decide the profile and the Thumb ISA.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Revert
	2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (insns): Add ARMv8-M security extensions
	instructions.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Revert
	2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c
	(struct arm_option_extension_value_table): Make allowed_archs an array
	with 2 entries.
	(ARM_EXT_OPT): Adapt to only fill the first entry of allowed_archs.
	(ARM_EXT_OPT2): New macro filling the two entries of allowed_archs.
	(arm_extensions): Use separate entries in allowed_archs when several
	archs are allowed to use an extension and change ARCH_ANY in
	ARM_ARCH_NONE in allowed_archs.
	(arm_parse_extension): Check that, for each allowed_archs entry, all
	bits are set in the current architecture, ignoring ARM_ANY entries.
	(s_arm_arch_extension): Likewise.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Revert
	2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (arm_ext_dsp): New feature for Thumb DSP
	instructions.
	(arm_extensions): Add dsp extension for ARMv8-M Mainline.
	(aeabi_set_public_attributes): Set Tag_DSP_extension to 1 for ARMv8-M
	Mainline with DSP extension.
	(arm_convert_symbolic_attribute): Define Tag_DSP_extension.

2016-03-29  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/tc-arm.c (arm_cpus): Add cortex-r8.
	* doc/c-arm.texi: Add cortex-r8.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Merge ARMv8-M support code from master as part of merge commit
	2015-12-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>

        * config/tc-arm.c (non_v6t2_wide_only_insn): Rename into ...
	(t1_isa_t32_only_insn): This.  Clarify what instructions are catched by
	the first conditional block.
	(wide_insn_ok): Rename into ...
	(t32_insn_ok): This.
	(aeabi_set_public_attributes): Use TAG_CPU_ARCH_V7 instead of 10,
	TAG_CPU_ARCH_V7E_M instead of 13, TAG_CPU_ARCH_V8 instead of 14,
	TAG_CPU_ARCH_V8M_BASE instead of 16 and TAG_CPU_ARCH_V8M_MAIN instead
	of 17.

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (arm_ext_dsp): New feature for Thumb DSP
	instructions.
	(arm_extensions): Add dsp extension for ARMv8-M Mainline.
	(aeabi_set_public_attributes): Set Tag_DSP_extension to 1 for ARMv8-M
	Mainline with DSP extension.
	(arm_convert_symbolic_attribute): Define Tag_DSP_extension.

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c
	(struct arm_option_extension_value_table): Make allowed_archs an array
	with 2 entries.
	(ARM_EXT_OPT): Adapt to only fill the first entry of allowed_archs.
	(ARM_EXT_OPT2): New macro filling the two entries of allowed_archs.
	(arm_extensions): Use separate entries in allowed_archs when several
	archs are allowed to use an extension and change ARCH_ANY in
	ARM_ARCH_NONE in allowed_archs.
	(arm_parse_extension): Check that, for each allowed_archs entry, all
	bits are set in the current architecture, ignoring ARM_ANY entries.
	(s_arm_arch_extension): Likewise.

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (insns): Add ARMv8-M security extensions
	instructions.

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (arm_ext_v6t2_v8m): New feature for instructions
	shared between ARMv6T2 and ARMv8-M.
	(move_or_literal_pool): Check mov.w/mvn and movw availability against
	arm_ext_v6t2 and arm_ext_v6t2_v8m respectively instead of checking
	arm_arch_t2.
	(do_t_branch): Error out for wide conditional branch instructions if
	targetting ARMv8-M Baseline.
	(non_v6t2_wide_only_insn): Add the logic for new wide-only instructions
	in ARMv8-M Baseline.
	(wide_insn_ok): New function.
	(md_assemble): Use wide_insn_ok instead of non_v6t2_wide_only_insn and
	adapt error message for unsupported wide instruction to ARMv8-M
	Baseline.
	(insns): Reorganize instructions shared by ARMv8-M Baseline and
	ARMv6t2 architecture.
	(arm_cpus): Set feature bit ARM_EXT2_V6T2_V8M for marvell-pj4 and
	marvell-whitney cores.
	(arm_archs): Define armv8-m.base architecture.
	(cpu_arch_ver): Define ARM_ARCH_V8M_BASE architecture version.
	(aeabi_set_public_attributes): Add logic to set Tag_CPU_arch to 17 for
	ARMv8-M Mainline.  Set Tag_DIV_use for ARMv8-M Baseline as well.

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (arm_ext_m): Include ARMv8-M.
	(arm_ext_v8m): New feature for ARMv8-M.
	(arm_ext_atomics): New feature for ARMv8 atomics.
	(do_tt): New encoding function for TT* instructions.
	(insns): Add new entries for ARMv8-M specific instructions and
	reorganize the ones shared by ARMv8-M Mainline and ARMv8-A.
	(arm_archs): Define armv8-m.main architecture.
	(cpu_arch_ver): Define ARM_ARCH_V8M_MAIN architecture version and
	clarify the ordering rule.
	(aeabi_set_public_attributes): Add logic to keep setting Tag_CPU_arch
	to ARMv8-A for -march=all.  Also set Tag_CPU_arch_profile to 'A' if
	extension bit for atomic instructions is set, unless it is ARMv8-M.
	Set Tag_THUMB_ISA_use to 3 for ARMv8-M.  Set Tag_DIV_use to 0 for
	ARMv8-M Mainline.

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (move_or_literal_pool): Check mov.w, mvm and movw
	availability against arm_ext_v6t2 instead of checking arm_arch_t2,
	fixing comments along the way.
	(handle_it_state): Check arm_ext_v6t2 instead of arm_arch_t2 to
	generate IT instruction.
	(non_v6t2_wide_only_insn): New function.
	(md_assemble): Use above new function to check for invalid wide
	instruction for CPU Thumb ISA and to determine what Thumb extension
	bit is necessary for that instruction.
	(md_apply_fix): Use arm_ext_v6t2 instead of arm_arch_t2 to decide if
	branch is out of range.
