[PATCH, libgcc/ARM 1a/6] Fix Thumb-1 only == ARMv6-M & Thumb-2 only == ARMv7-M assumptions

Ramana Radhakrishnan ramana.gcc@googlemail.com
Wed Jul 6 16:21:00 GMT 2016


On Fri, Jun 17, 2016 at 6:21 PM, Thomas Preudhomme
<thomas.preudhomme@foss.arm.com> wrote:
> On Wednesday 01 June 2016 10:00:52 Ramana Radhakrishnan wrote:
>> Please fix up the macros, post back and redo the test. Otherwise this
>> is ok from a quick read.
>
> What about the updated patch in attachment? As for the original patch, I've
> checked that code generation does not change for a number of combinations of
> ISAs (ARM/Thumb), optimization levels (Os/O2), and architectures (armv4,
> armv4t, armv5, armv5t, armv5te, armv6, armv6j, armv6k, armv6s-m, armv6kz,
> armv6t2, armv6z, armv6zk, armv7, armv7-a, armv7e-m, armv7-m, armv7-r, armv7ve,
> armv8-a, armv8-a+crc, iwmmxt and iwmmxt2).
>
> Note, I renumbered this patch 1a to not make the numbering of other patches
> look strange. The CLZ part is now in patch 1b/7.
>
> ChangeLog entries are now as follow:
>
>
> *** gcc/ChangeLog ***
>
> 2016-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>
>         * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
>         decide whether to prevent some libgcc routines being included for some
>         multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
>         link between this condition and the one in
>         libgcc/config/arm/lib1func.S.
>
>
> *** gcc/testsuite/ChangeLog ***
>
> 2015-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>
>         * lib/target-supports.exp (check_effective_target_arm_cortex_m): Use
>         __ARM_ARCH_ISA_ARM to test for Cortex-M devices.
>
>
> *** libgcc/ChangeLog ***
>
> 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>
>         * config/arm/bpabi-v6m.S: Clarify what architectures is the
>         implementation suitable for.
>         * config/arm/lib1funcs.S (__prefer_thumb__): Define among other cases
>         for all Thumb-1 only targets.
>         (NOT_ISA_TARGET_32BIT): Define for Thumb-1 only targets.
>         (THUMB_LDIV0): Test for NOT_ISA_TARGET_32BIT rather than
>         __ARM_ARCH_6M__.
>         (EQUIV): Likewise.
>         (ARM_FUNC_ALIAS): Likewise.
>         (umodsi3): Add check to __ARM_ARCH_ISA_THUMB != 1 to guard the idiv
>         version.
>         (modsi3): Likewise.
>         (clzsi2): Test for NOT_ISA_TARGET_32BIT rather than __ARM_ARCH_6M__.
>         (clzdi2): Likewise.
>         (ctzsi2): Likewise.
>         (L_interwork_call_via_rX): Test for __ARM_ARCH_ISA_ARM rather than
>         __ARM_ARCH_6M__ in guard for checking whether it is defined.
>         (final includes): Test for NOT_ISA_TARGET_32BIT rather than
>         __ARM_ARCH_6M__ and add comment to indicate the connection between
>         this condition and the one in gcc/config/arm/elf.h.
>         * config/arm/libunwind.S: Test for __ARM_ARCH_ISA_THUMB and
>         __ARM_ARCH_ISA_ARM rather than __ARM_ARCH_6M__.
>         * config/arm/t-softfp: Likewise.
>
>
> Best regards,
>
> Thomas

OK - thanks for your patience and sorry about the delay.

Ramana



More information about the Gcc-patches mailing list