From: Thomas Preud'homme Date: Mon, 11 Apr 2016 13:31:14 +0000 (+0100) Subject: Add missing ChangeLog.arm entries for ARMv8-M work X-Git-Tag: users/ARM/embedded-gdb-2_26-branch-2016q1~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bc4bac86c6f4466a18c1efbf567d29d4d41b8513;p=thirdparty%2Fbinutils-gdb.git Add missing ChangeLog.arm entries for ARMv8-M work --- diff --git a/bfd/ChangeLog.arm b/bfd/ChangeLog.arm index 5c7a08844de..5b2d3e34acd 100644 --- a/bfd/ChangeLog.arm +++ b/bfd/ChangeLog.arm @@ -188,7 +188,7 @@ 2016-03-29 Thomas Preud'homme - (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 @@ -196,10 +196,30 @@ Revert 2015-12-17 Thomas Preud'homme - (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 + + Merge ARMv8-M support code from master as part of merge commit + 2015-12-24 Thomas Preud'homme + + * 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 (elf32_arm_merge_eabi_attributes): Add merging logic for Tag_DSP_extension. + +2015-12-17 Thomas Preud'homme + + * 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. diff --git a/binutils/ChangeLog.arm b/binutils/ChangeLog.arm index 0eaa646b6f7..15fc9f8051a 100644 --- a/binutils/ChangeLog.arm +++ b/binutils/ChangeLog.arm @@ -15,3 +15,15 @@ * 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 + + * readelf.c (arm_attr_tag_CPU_arch): Add ARMv8-M Baseline Tag_CPU_arch + value. + +2015-12-17 Thomas Preud'homme + + * 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. diff --git a/gas/ChangeLog.arm b/gas/ChangeLog.arm index 3e2f33a3a40..b4416605b98 100644 --- a/gas/ChangeLog.arm +++ b/gas/ChangeLog.arm @@ -78,11 +78,26 @@ Mainline with DSP extension. (arm_convert_symbolic_attribute): Define Tag_DSP_extension. -2016-03-07 Andre Vieira +2016-03-29 Andre Vieira * config/tc-arm.c (arm_cpus): Add cortex-r8. * doc/c-arm.texi: Add cortex-r8. +2016-03-29 Thomas Preud'homme + + Merge ARMv8-M support code from master as part of merge commit + 2015-12-24 Thomas Preud'homme + + * 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 * config/tc-arm.c (arm_ext_dsp): New feature for Thumb DSP @@ -110,3 +125,58 @@ * config/tc-arm.c (insns): Add ARMv8-M security extensions instructions. + +2015-12-17 Thomas Preud'homme + + * 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 + + * 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 + + * 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. diff --git a/gas/testsuite/ChangeLog.arm b/gas/testsuite/ChangeLog.arm index 0e586d720bc..c53d4da2779 100644 --- a/gas/testsuite/ChangeLog.arm +++ b/gas/testsuite/ChangeLog.arm @@ -65,3 +65,43 @@ * 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 + + * 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 + + * 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 + + * 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. diff --git a/include/elf/ChangeLog.arm b/include/elf/ChangeLog.arm index 1392b89b039..6472f542eb5 100644 --- a/include/elf/ChangeLog.arm +++ b/include/elf/ChangeLog.arm @@ -20,6 +20,23 @@ * arm.h (Tag_DSP_extension): Define. +2016-03-29 Thomas Preud'homme + + Merge ARMv8-M support code from master as part of merge commit + 2015-12-24 Thomas Preud'homme + + * arm.h (TAG_CPU_ARCH_V4T_PLUS_V6_M): set back to MAX_TAG_CPU_ARCH + 1. + 2015-12-17 Thomas Preud'homme * arm.h (Tag_DSP_extension): Define. + +2015-12-17 Thomas Preud'homme + + * arm.h (TAG_CPU_ARCH_V8M_BASE): Declare. + +2015-12-17 Thomas Preud'homme + + * 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. diff --git a/include/opcode/ChangeLog.arm b/include/opcode/ChangeLog.arm index f329eb9261d..9f712641d06 100644 --- a/include/opcode/ChangeLog.arm +++ b/include/opcode/ChangeLog.arm @@ -18,7 +18,67 @@ * arm.h (ARM_CPU_HAS_FEATURE): Add comment. (ARM_FSET_CPU_SUBSET): Define macro. +2016-03-29 Thomas Preud'homme + + * arm.h (ARM_EXT_V8): Remove mention of legacy use for that bit. + 2015-12-17 Thomas Preud'homme * arm.h (ARM_CPU_HAS_FEATURE): Add comment. (ARM_FSET_CPU_SUBSET): Define macro. + +2015-12-17 Thomas Preud'homme + + * 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 + + * 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 + + * arm.h (ARM_ARCH_THUMB2): Add comment explaining its meaning and + remove extension bit not including any Thumb-2 instruction. diff --git a/ld/testsuite/ChangeLog.arm b/ld/testsuite/ChangeLog.arm index 598ee9cdbc1..1ad82f502d2 100644 --- a/ld/testsuite/ChangeLog.arm +++ b/ld/testsuite/ChangeLog.arm @@ -53,3 +53,21 @@ * ld-arm/attr-merge-10b-dsp.s: New file. * ld-arm/attr-merge-10-dsp.attr: Likewise. + +2015-12-17 Thomas Preud'homme + + * 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. diff --git a/opcodes/ChangeLog.arm b/opcodes/ChangeLog.arm index 8ab50679342..e4a1722d772 100644 --- a/opcodes/ChangeLog.arm +++ b/opcodes/ChangeLog.arm @@ -31,3 +31,16 @@ extensions instructions. (thumb32_opcodes): Add entries for wide ARMv8-M security extensions instructions. + +2015-12-17 Thomas Preud'homme + + * 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 + + * 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.