]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Add missing ChangeLog.arm entries for ARMv8-M work
authorThomas Preud'homme <thomas.preudhomme@arm.com>
Mon, 11 Apr 2016 13:31:14 +0000 (14:31 +0100)
committerThomas Preud'homme <thomas.preudhomme@arm.com>
Mon, 11 Apr 2016 13:31:14 +0000 (14:31 +0100)
bfd/ChangeLog.arm
binutils/ChangeLog.arm
gas/ChangeLog.arm
gas/testsuite/ChangeLog.arm
include/elf/ChangeLog.arm
include/opcode/ChangeLog.arm
ld/testsuite/ChangeLog.arm
opcodes/ChangeLog.arm

index 5c7a08844dec4742fc91dc588f3e01411c2674e7..5b2d3e34acd8e591eabbf6df96628066dc00ddd2 100644 (file)
 
 2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
 
-       (elf32_arm_merge_eabi_attributes): Add merging logic for
+       * elf32-arm.c (elf32_arm_merge_eabi_attributes): Add merging logic for
        Tag_DSP_extension.
 
 2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
        Revert
        2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
 
-       (elf32_arm_merge_eabi_attributes): Add merging logic for
+       * elf32-arm.c (elf32_arm_merge_eabi_attributes): Add merging logic for
        Tag_DSP_extension.
 
+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>
+
+       * elf32-arm.c (using_thumb_only): Test again against specific
+       Tag_CPU_arch value in case Tag_CPU_arch_profile is empty.
+       (tag_cpu_arch_combine): Remove comma for last entry of each table.
+       Adjust v4t_plus_v6_m and comb array to account for new
+       TAG_CPU_ARCH_V4T_PLUS_V6_M value.  Deal with NULL values in comb
+       array.
+
 2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
 
        (elf32_arm_merge_eabi_attributes): Add merging logic for
        Tag_DSP_extension.
+
+2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * elf32-arm.c (using_thumb_only): Only check that profile is 'M'.
+       (tag_cpu_arch_combine): Define v8m_baseline and v8m_mainline and update
+       v4t_plus_v6_m and comb to deal with ARMv8-M Tag_CPU_arch merging logic.
+       (elf32_arm_merge_eabi_attributes): Add Tag_CPU_name values for
+       ARMv8-M.
index 0eaa646b6f73d63a21d08aa30eedc0f159f406cd..15fc9f8051a50e1ff61b73aa94ad61df7eda3f27 100644 (file)
 
        * readelf.c (display_arm_attribute): Add output for Tag_DSP_extension.
        (arm_attr_public_tags): Define DSP_extension attribute.
+
+2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * readelf.c (arm_attr_tag_CPU_arch): Add ARMv8-M Baseline Tag_CPU_arch
+       value.
+
+2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * readelf.c (arm_attr_tag_CPU_arch): Add ARMv8-M Mainline Tag_CPU_arch
+       value.
+       (arm_attr_tag_THUMB_ISA_use): Add ARMv8-M Mainline Tag_THUMB_ISA_use
+       value.
index 3e2f33a3a40973916017b2b7c8769f2e30503b87..b4416605b9861309765a9906d12ad7ac115a68a0 100644 (file)
        Mainline with DSP extension.
        (arm_convert_symbolic_attribute): Define Tag_DSP_extension.
 
-2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+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
 
        * 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.
index 0e586d720bccdac4236db43fb312241f4eb04788..c53d4da27798db0d0f7f97f9477a6aa4f7f23edd 100644 (file)
        * gas/arm/archv8m-cmse.s: New file.
        * gas/arm/archv8m-cmse-base.d: Likewise.
        * gas/arm/archv8m-cmse-main.d: Likewise.
+
+2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * gas/arm/archv8m-base.d: New file.
+       * gas/arm/attr-march-armv8m.base.d: Likewise.
+       * gas/arm/armv8m.base-idiv.d: Likewise.
+       * gas/arm/any-armv8m.d: Adapt to deal with ARMv8-M Baseline.
+
+2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * gas/arm/archv8m.s: New file.
+       * gas/arm/archv8m-main.d: Likewise.
+       * gas/arm/attr-march-armv8m.main.d: Likewise.
+       * gas/arm/any-armv8m.s: Likewise.
+       * gas/arm/any-armv8m.d: Likewise.
+
+2016-12-17  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+       * gas/arm/automatic-bw.d: New.
+       * gas/arm/automatic-bw.s: New.
+       * gas/arm/automatic-cbz.d: New.
+       * gas/arm/automatic-cbz.s: New.
+       * gas/arm/automatic-clrex.d: New.
+       * gas/arm/automatic-clrex.s: New.
+       * gas/arm/automatic-lda.d: New.
+       * gas/arm/automatic-lda.s: New.
+       * gas/arm/automatic-ldaex.d: New.
+       * gas/arm/automatic-ldaex.s: New.
+       * gas/arm/automatic-ldaexb.d: New.
+       * gas/arm/automatic-ldaexb.s: New.
+       * gas/arm/automatic-ldrex.d: New.
+       * gas/arm/automatic-ldrex.s: New.
+       * gas/arm/automatic-ldrexd.d: New.
+       * gas/arm/automatic-ldrexd.s: New.
+       * gas/arm/automatic-movw.d: New.
+       * gas/arm/automatic-movw.s: New.
+       * gas/arm/automatic-sdiv.d: New.
+       * gas/arm/automatic-sdiv.s: New.
+       * gas/arm/automatic-strexb.d: New.
+       * gas/arm/automatic-strexb.s: New.
index 1392b89b0394f2ed4ae5e5d8cf8379bc3c9397ea..6472f542eb5eda217b8891e96252fa8ae7388329 100644 (file)
 
        * arm.h (Tag_DSP_extension): Define.
 
+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>
+
+       * arm.h (TAG_CPU_ARCH_V4T_PLUS_V6_M): set back to MAX_TAG_CPU_ARCH + 1.
+
 2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
 
        * arm.h (Tag_DSP_extension): Define.
+
+2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * arm.h (TAG_CPU_ARCH_V8M_BASE): Declare.
+
+2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * arm.h (TAG_CPU_ARCH_V8M_MAIN): Declare.
+       (MAX_TAG_CPU_ARCH): Define to TAG_CPU_ARCH_V8M_MAIN.
+       (TAG_CPU_ARCH_V4T_PLUS_V6_M): Define to unused value 15.
index f329eb9261dc99610c9ca036c3b965c240940b64..9f712641d0613cf67ba9877608fc59ad2316770e 100644 (file)
        * arm.h (ARM_CPU_HAS_FEATURE): Add comment.
        (ARM_FSET_CPU_SUBSET): Define macro.
 
+2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * arm.h (ARM_EXT_V8): Remove mention of legacy use for that bit.
+
 2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
 
        * arm.h (ARM_CPU_HAS_FEATURE): Add comment.
        (ARM_FSET_CPU_SUBSET): Define macro.
+
+2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+        * arm.h (ARM_EXT2_V6T2_V8M): New extension bit.
+        (ARM_AEXT2_V8A): New architecture extension bitfield.
+        (ARM_AEXT2_V8_1A): Use ARM_AEXT2_V8A instead of ARM_EXT2_ATOMICS.
+        (ARM_AEXT_V8M_BASE): New architecture extension bitfield.
+        (ARM_AEXT2_V8M): Add extension bit ARM_EXT2_V6T2_V8M.
+        (ARM_ARCH_V6T2): Use ARM_EXT2_V6T2_V8M for the second extension
+        bitfield.
+        (ARM_ARCH_V6KT2): Likewise.
+        (ARM_ARCH_V6ZT2): Likewise.
+        (ARM_ARCH_V6KZT2): Likewise.
+        (ARM_ARCH_V7): Likewise.
+        (ARM_ARCH_V7A): Likewise.
+        (ARM_ARCH_V7VE): Likewise.
+        (ARM_ARCH_V7R): Likewise.
+        (ARM_ARCH_V7M): Likewise.
+        (ARM_ARCH_V7EM): Likewise.
+        (ARM_ARCH_V8A): Likewise.
+        (ARM_ARCH_V8M_BASE): New architecture bitfield.
+        (ARM_ARCH_THUMB2): Include instructions shared by ARMv6t2 and ARMv8-M.
+        (ARM_ARCH_V7A_SEC): Use ARM_EXT2_V6T2_V8M for the second extension
+        bitfield and reindent.
+        (ARM_ARCH_V7A_MP_SEC): Likewise.
+        (ARM_ARCH_V7R_IDIV): Likewise.
+        (ARM_ARCH_V8A_FP): Use ARM_AEXT2_V8A instead of ARM_EXT2_ATOMICS.
+        (ARM_ARCH_V8A_SIMD): Likewise.
+        (ARM_ARCH_V8A_CRYPTOV1): Likewise.
+
+2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * arm.h (ARM_EXT2_ATOMICS): New extension bit.
+       (ARM_EXT2_V8M): Likewise.
+       (ARM_EXT_V8): Adjust comment with regards to atomics.
+       (ARM_AEXT2_V8_1A): New architecture extension bitfield.
+       (ARM_AEXT2_V8_2A): Likewise.
+       (ARM_AEXT_V8M_MAIN): Likewise.
+       (ARM_AEXT2_V8M): Likewise.
+       (ARM_ARCH_V8A): Use ARM_EXT2_ATOMICS for features in second bitfield.
+       (ARM_ARCH_V8_1A): Likewise with ARM_AEXT2_V8_1A.
+       (ARM_ARCH_V8_2A): Likewise with ARM_AEXT2_V8_2A.
+       (ARM_ARCH_V8M_MAIN): New architecture feature bitfield.
+       (ARM_ARCH_V8A_FP): Use ARM_EXT2_ATOMICS for features in second bitfield
+       and reindent.
+       (ARM_ARCH_V8A_SIMD): Likewise.
+       (ARM_ARCH_V8A_CRYPTOV1): Likewise.
+       (ARM_ARCH_V8_1A_FP): Use ARM_AEXT2_V8_1A to set second bitfield of
+       feature bits.
+       (ARM_ARCH_V8_1A_SIMD): Likewise.
+       (ARM_ARCH_V8_1A_CRYPTOV1): Likewise.
+
+2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * arm.h (ARM_ARCH_THUMB2): Add comment explaining its meaning and
+       remove extension bit not including any Thumb-2 instruction.
index 598ee9cdbc19576cea3e5de69d122c2926139320..1ad82f502d2a5087f2f2403471e83c002452ea64 100644 (file)
 
        * ld-arm/attr-merge-10b-dsp.s: New file.
        * ld-arm/attr-merge-10-dsp.attr: Likewise.
+
+2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * ld-arm/arm-elf.exp (armeabitests_common): Run new tests
+       "Thumb-Thumb farcall v8-M", "EABI attribute merging 8",
+       "EABI attribute merging 9" and "EABI attribute merging 10".
+       (Thumb-Thumb farcall v8-M): Renamed to ...
+       (Thumb-Thumb farcall v8-M Mainline): This.
+       (Thumb-Thumb farcall v8-M Baseline): New test.
+       * ld-arm/attr-merge-8a.s: New file.
+       * ld-arm/attr-merge-8b.s: Likewise.
+       * ld-arm/attr-merge-8.attr: Likewise.
+       * ld-arm/attr-merge-9a.s: Likewise.
+       * ld-arm/attr-merge-9b.s: Likewise.
+       * ld-arm/attr-merge-9.out: Likewise.
+       * ld-arm/attr-merge-10a.s: Likewise.
+       * ld-arm/attr-merge-10b.s: Likewise.
+       * ld-arm/attr-merge-10.attr: Likewise.
index 8ab50679342197dfee79f0007096507567e11598..e4a1722d772cdb6519406ffe2e95a6a1d1d6411b 100644 (file)
        extensions instructions.
        (thumb32_opcodes): Add entries for wide ARMv8-M security extensions
        instructions.
+
+2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+        * arm-dis.c (arm_opcodes): Guard movw, movt cbz, cbnz, clrex, ldrex,
+        ldrexb, ldrexh, strex, strexb, strexh shared by ARMv6T2 and ARMv8-M by
+        ARM_EXT2_V6T2_V8M instead of ARM_EXT_V6T2.
+
+2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * arm-dis.c (arm_opcodes): Guard lda, ldab, ldaex, ldaexb, ldaexh, stl,
+       stlb, stlh, stlex, stlexb and stlexh by ARM_EXT2_ATOMICS instead of
+       ARM_EXT_V8.
+       (thumb32_opcodes): Add entries for wide ARMv8-M instructions.