r249743 - in /trunk/gcc: ChangeLog config/arm/a...

rearnsha@gcc.gnu.org rearnsha@gcc.gnu.org
Wed Jun 28 15:02:00 GMT 2017


Author: rearnsha
Date: Wed Jun 28 15:02:38 2017
New Revision: 249743

URL: https://gcc.gnu.org/viewcvs?rev=249743&root=gcc&view=rev
Log:
[arm] Fix incorrect __ARM_ARCH_PROFILE for -march=armv7

ACLE explicitly states that when targetting the common subset of
ARMv7-A, ARMv7-R and ARMv7-M, the __ARM_ARCH_PROFILE macro should not
be set.  We currently set it to 'M' which is clearly erroneous.

The logic for creating this is very convoluted and also somewhat
fragile, so I've taken the opportunity to use the new CPU and
architecture definition infrastructure to record the profile for each
architecture explicitly rather than try to reconstruct it from other
data.  I think this results in a much more robust solution.

2017-06-28  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/parsecpu.awk (profile): Parse new keyword in an arch
	context.
	(gen_comm_data): Emit architectural setting of arch_prof.
	* config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
	profile.
	(armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
	(armv8-m.base, armv8-m.main): Likewise.
	* arm-protos.h (arm_build_target): Add profile field.
	(arch_option): Likewise.
	* config/arm/arm.c (arm_configure_build_target): Copy the profile to
	the active target.
	* config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
	arm_active_target.profile.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/arm/arm-cpu-cdata.h
    trunk/gcc/config/arm/arm-cpus.in
    trunk/gcc/config/arm/arm-protos.h
    trunk/gcc/config/arm/arm.c
    trunk/gcc/config/arm/arm.h
    trunk/gcc/config/arm/parsecpu.awk



More information about the Gcc-cvs mailing list