diff options
author | Thomas Preud'homme <thopre01@gcc.gnu.org> | 2017-07-06 14:37:28 +0000 |
---|---|---|
committer | Thomas Preud'homme <thopre01@gcc.gnu.org> | 2017-07-06 14:37:28 +0000 |
commit | 9296dd9ba3106f5190eeeaf16dfa2b91a3ad318f (patch) | |
tree | d8bad12359e620dab86bd7db84a80946579cda92 /gcc/config | |
parent | d87f00baa2444a85a43c3a532eba40b3b3fa4918 (diff) | |
download | gcc-9296dd9ba3106f5190eeeaf16dfa2b91a3ad318f.zip gcc-9296dd9ba3106f5190eeeaf16dfa2b91a3ad318f.tar.gz gcc-9296dd9ba3106f5190eeeaf16dfa2b91a3ad318f.tar.bz2 |
Add support for ARMv8-R architecture
2017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
* config/arm/arm-cpus.in (armv8-r): Add new entry.
* config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
* config/arm/arm-tables.opt: Regenerate.
* config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
enumerator.
* doc/invoke.texi: Mention -march=armv8-r and its extensions.
gcc/testsuite/
* lib/target-supports.exp: Generate
check_effective_target_arm_arch_v8r_ok, add_options_for_arm_arch_v8r
and check_effective_target_arm_arch_v8r_multilib.
libgcc/
* config/arm/lib1funcs.S: Defined __ARM_ARCH__ to 8 for ARMv8-R.
From-SVN: r250025
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/arm/arm-cpus.in | 16 | ||||
-rw-r--r-- | gcc/config/arm/arm-isa.h | 1 | ||||
-rw-r--r-- | gcc/config/arm/arm-tables.opt | 7 | ||||
-rw-r--r-- | gcc/config/arm/arm.h | 3 |
4 files changed, 24 insertions, 3 deletions
diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in index 946d543..f35128a 100644 --- a/gcc/config/arm/arm-cpus.in +++ b/gcc/config/arm/arm-cpus.in @@ -380,6 +380,22 @@ begin arch armv8-m.main option nodsp remove bit_ARMv7em end arch armv8-m.main +begin arch armv8-r + tune for cortex-r4 + tune flags CO_PROC + base 8R + profile R + isa ARMv8r + option crc add bit_crc32 +# fp.sp => fp-armv8 (d16); simd => simd + fp-armv8 + d32 + double precision +# note: no fp option for fp-armv8 (d16) + double precision at the moment + option fp.sp add FP_ARMv8 + option simd add FP_ARMv8 NEON + option crypto add FP_ARMv8 CRYPTO + option nocrypto remove ALL_CRYPTO + option nofp remove ALL_FP +end arch armv8-r + begin arch iwmmxt tune for iwmmxt tune flags LDSCHED STRONG XSCALE diff --git a/gcc/config/arm/arm-isa.h b/gcc/config/arm/arm-isa.h index c0c2cce..0d66a04 100644 --- a/gcc/config/arm/arm-isa.h +++ b/gcc/config/arm/arm-isa.h @@ -127,6 +127,7 @@ enum isa_feature #define ISA_ARMv8_2a ISA_ARMv8_1a, isa_bit_ARMv8_2 #define ISA_ARMv8m_base ISA_ARMv6m, isa_bit_ARMv8, isa_bit_cmse, isa_bit_tdiv #define ISA_ARMv8m_main ISA_ARMv7m, isa_bit_ARMv8, isa_bit_cmse +#define ISA_ARMv8r ISA_ARMv8a /* List of all cryptographic extensions to stripout if crypto is disabled. Currently, that's trivial, but we define it anyway for diff --git a/gcc/config/arm/arm-tables.opt b/gcc/config/arm/arm-tables.opt index 5e2df9d..51678c2 100644 --- a/gcc/config/arm/arm-tables.opt +++ b/gcc/config/arm/arm-tables.opt @@ -455,10 +455,13 @@ EnumValue Enum(arm_arch) String(armv8-m.main) Value(30) EnumValue -Enum(arm_arch) String(iwmmxt) Value(31) +Enum(arm_arch) String(armv8-r) Value(31) EnumValue -Enum(arm_arch) String(iwmmxt2) Value(32) +Enum(arm_arch) String(iwmmxt) Value(32) + +EnumValue +Enum(arm_arch) String(iwmmxt2) Value(33) Enum Name(arm_fpu) Type(enum fpu_type) diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index c803d44..3156222 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -384,7 +384,8 @@ enum base_architecture BASE_ARCH_7EM = 7, BASE_ARCH_8A = 8, BASE_ARCH_8M_BASE = 8, - BASE_ARCH_8M_MAIN = 8 + BASE_ARCH_8M_MAIN = 8, + BASE_ARCH_8R = 8 }; /* The major revision number of the ARM Architecture implemented by the target. */ |