[arm] Introduce arm_active_target.
authorRichard Earnshaw <rearnsha@arm.com>
Thu, 15 Dec 2016 15:41:26 +0000 (15:41 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Thu, 15 Dec 2016 15:41:26 +0000 (15:41 +0000)
commit8341f8c4a5ff74c482ceed872fe2e0d92a335f41
tree9f850e8c307c6acb3d34262c622dfaccf3a95531
parent00d1c28c7b63b35558b3b239d20fec812fbf30a7
[arm] Introduce arm_active_target.

This patch creates a new data structure for carrying around the data
relating to the current compilation target.  The idea behind this is
that this data structure can be updated to reflect the overall
compilation target as new information is gathered (from command line
options) or architectural extensions.  We will no-longer have to grub
around looking in multiple places for this information.

There are some small behaviour changes around how we handle selecting
a default CPU if thumb or interworking are specified on the command
line and the default CPU does not support thumb, but I believe the
existing code was broken in that respect.  This code will go away once
we obsolete pre-armv4t devices.

* arm-protos.h (arm_build_target): New structure.
(arm_active_target): Declare it.
* arm.c (arm_active_target): New variable.
(bitmap_popcount): New function.
(feature_count): Delete.
(arm_initialize_isa): New function.
isa_fpubits): New variable.
(arm_configure_build_target): New function.
(arm_option_override): Initialize isa_fpubits and arm_active_target.isa.
Use arm_configure_build_target.

From-SVN: r243698
gcc/ChangeLog
gcc/config/arm/arm-protos.h
gcc/config/arm/arm.c