[arm] auto-generate arm-isa.h from CPU descriptions
commit789753f17ebe7b14922b641c790576763c9497d0
authorvp <vp@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Sep 2017 16:17:11 +0000 (22 16:17 +0000)
committervp <vp@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Sep 2017 16:17:11 +0000 (22 16:17 +0000)
treea1fab0206841b50b224939c5d560fefc8f42f7d6
parent5d78d423a5f7a1d135c7bb678e82007678d1313c
[arm] auto-generate arm-isa.h from CPU descriptions

This patch autogenerates arm-isa.h from new entries in arm-cpus.in.
This has the primary advantage that it makes the description file more
self-contained, but it also solves the 'array dimensioning' problem
that Tamar recently encountered.  It adds two new constructs to
arm-cpus.in: features and fgroups.  Fgroups are simply a way of naming
a group of feature bits so that they can be referenced together.  We
follow the convention that feature bits are all lower case, while
fgroups are (predominantly) upper case. This is helpful as in some
contexts they share the same namespace. Most of the minor changes in
this patch are related to adopting this new naming convention.

2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>

* config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
* config/arm/arm-isa.h: Delete.  Move definitions to ...
* arm-cpus.in: ... here.  Use new feature and fgroup values.
* config/arm/arm.c (arm_option_override): Use lower case for feature
bit names.
* config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
(TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
* config/arm/parsecpu.awk (END): Add new command 'isa'.
(isa_pfx): Delete.
(print_isa_bits_for): New function.
(gen_isa): New function.
(gen_comm_data): Use print_isa_bits_for.
(define feature): New keyword.
(define fgroup): New keyword.
* config/arm/t-arm (TM_H): Remove.
(GTM_H): Add arm-isa.h.
(arm-isa.h): Add rule to generate file.
* common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
case for feature bit names.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253097 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/common/config/arm/arm-common.c
gcc/config.gcc
gcc/config/arm/arm-cpus.in
gcc/config/arm/arm-isa.h [deleted file]
gcc/config/arm/arm.c
gcc/config/arm/arm.h
gcc/config/arm/parsecpu.awk
gcc/config/arm/t-arm