From 4f2ab1e6300b82d1d7a432f1a5dbe148224e48be Mon Sep 17 00:00:00 2001 From: Matthew Wahab Date: Wed, 4 Feb 2015 13:34:58 +0000 Subject: [PATCH] [ARM] Add support for -mcpu=cortex-a72 and -mcpu=cortex-a72.cortex-a53 gcc/ * config/arm/arm-cores.def: Add cortex-a72 and cortex-a72.cortex-a53. * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise. * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise. * config/arm/arm-tune.md: Regenerate. * config/arm/arm-tables.opt: Add entries for "cortex-a72" and "cortex-a72.cortex-a53". * doc/invoke.texi (ARM Options/-mtune): Likewise. From-SVN: r220399 --- gcc/ChangeLog | 11 +++++++++++ gcc/config/arm/arm-cores.def | 2 ++ gcc/config/arm/arm-tables.opt | 6 ++++++ gcc/config/arm/arm-tune.md | 4 ++-- gcc/config/arm/bpabi.h | 4 ++++ gcc/config/arm/t-aprofile | 2 ++ gcc/doc/invoke.texi | 6 ++++-- 7 files changed, 31 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7a6963577ac..e01618e1437 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2015-02-04 Matthew Wahab + + * config/arm/arm-cores.def: Add cortex-a72 and + cortex-a72.cortex-a53. + * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise. + * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise. + * config/arm/arm-tune.md: Regenerate. + * config/arm/arm-tables.opt: Add entries for "cortex-a72" and + "cortex-a72.cortex-a53". + * doc/invoke.texi (ARM Options/-mtune): Likewise. + 2015-02-04 Nick Clifton * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more diff --git a/gcc/config/arm/arm-cores.def b/gcc/config/arm/arm-cores.def index f24fefd2a80..d7e730d77f3 100644 --- a/gcc/config/arm/arm-cores.def +++ b/gcc/config/arm/arm-cores.def @@ -167,7 +167,9 @@ ARM_CORE("cortex-a17.cortex-a7", cortexa17cortexa7, cortexa7, 7A, FL_LDSCHED | /* V8 Architecture Processors */ ARM_CORE("cortex-a53", cortexa53, cortexa53, 8A, FL_LDSCHED | FL_CRC32, cortex_a53) ARM_CORE("cortex-a57", cortexa57, cortexa57, 8A, FL_LDSCHED | FL_CRC32, cortex_a57) +ARM_CORE("cortex-a72", cortexa72, cortexa57, 8A, FL_LDSCHED | FL_CRC32, cortex_a57) ARM_CORE("xgene1", xgene1, xgene1, 8A, FL_LDSCHED, xgene1) /* V8 big.LITTLE implementations */ ARM_CORE("cortex-a57.cortex-a53", cortexa57cortexa53, cortexa53, 8A, FL_LDSCHED | FL_CRC32, cortex_a57) +ARM_CORE("cortex-a72.cortex-a53", cortexa72cortexa53, cortexa53, 8A, FL_LDSCHED | FL_CRC32, cortex_a57) diff --git a/gcc/config/arm/arm-tables.opt b/gcc/config/arm/arm-tables.opt index 1392429d74f..3450e5b62af 100644 --- a/gcc/config/arm/arm-tables.opt +++ b/gcc/config/arm/arm-tables.opt @@ -309,12 +309,18 @@ Enum(processor_type) String(cortex-a53) Value(cortexa53) EnumValue Enum(processor_type) String(cortex-a57) Value(cortexa57) +EnumValue +Enum(processor_type) String(cortex-a72) Value(cortexa72) + EnumValue Enum(processor_type) String(xgene1) Value(xgene1) EnumValue Enum(processor_type) String(cortex-a57.cortex-a53) Value(cortexa57cortexa53) +EnumValue +Enum(processor_type) String(cortex-a72.cortex-a53) Value(cortexa72cortexa53) + Enum Name(arm_arch) Type(int) Known ARM architectures (for use with the -march= option): diff --git a/gcc/config/arm/arm-tune.md b/gcc/config/arm/arm-tune.md index dcd505423f6..d459f27c98c 100644 --- a/gcc/config/arm/arm-tune.md +++ b/gcc/config/arm/arm-tune.md @@ -32,6 +32,6 @@ cortexr4f,cortexr5,cortexr7, cortexm7,cortexm4,cortexm3, marvell_pj4,cortexa15cortexa7,cortexa17cortexa7, - cortexa53,cortexa57,xgene1, - cortexa57cortexa53" + cortexa53,cortexa57,cortexa72, + xgene1,cortexa57cortexa53,cortexa72cortexa53" (const (symbol_ref "((enum attr_tune) arm_tune)"))) diff --git a/gcc/config/arm/bpabi.h b/gcc/config/arm/bpabi.h index 8e164340ac7..c62130d7919 100644 --- a/gcc/config/arm/bpabi.h +++ b/gcc/config/arm/bpabi.h @@ -71,6 +71,8 @@ |mcpu=cortex-a53 \ |mcpu=cortex-a57 \ |mcpu=cortex-a57.cortex-a53 \ + |mcpu=cortex-a72 \ + |mcpu=cortex-a72.cortex-a53 \ |mcpu=xgene1 \ |mcpu=cortex-m1.small-multiply \ |mcpu=cortex-m0.small-multiply \ @@ -93,6 +95,8 @@ |mcpu=cortex-a53 \ |mcpu=cortex-a57 \ |mcpu=cortex-a57.cortex-a53 \ + |mcpu=cortex-a72 \ + |mcpu=cortex-a72.cortex-a53 \ |mcpu=xgene1 \ |mcpu=cortex-m1.small-multiply \ |mcpu=cortex-m0.small-multiply \ diff --git a/gcc/config/arm/t-aprofile b/gcc/config/arm/t-aprofile index 6a280bdf54a..e8b2aa36cbb 100644 --- a/gcc/config/arm/t-aprofile +++ b/gcc/config/arm/t-aprofile @@ -89,6 +89,8 @@ MULTILIB_MATCHES += march?armv7ve=mcpu?cortex-a17.cortex-a7 MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a53 MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a57 MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a57.cortex-a53 +MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a72 +MULTILIB_MATCHES += march?armv8-a=mcpu?cortex-a72.cortex-a53 # Arch Matches MULTILIB_MATCHES += march?armv8-a=march?armv8-a+crc diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index ba81ec7a7d8..0aae1873740 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -12962,7 +12962,8 @@ Permissible names are: @samp{arm2}, @samp{arm250}, @samp{arm1136j-s}, @samp{arm1136jf-s}, @samp{mpcore}, @samp{mpcorenovfp}, @samp{arm1156t2-s}, @samp{arm1156t2f-s}, @samp{arm1176jz-s}, @samp{arm1176jzf-s}, @samp{cortex-a5}, @samp{cortex-a7}, @samp{cortex-a8}, @samp{cortex-a9}, -@samp{cortex-a12}, @samp{cortex-a15}, @samp{cortex-a53}, @samp{cortex-a57}, +@samp{cortex-a12}, @samp{cortex-a15}, @samp{cortex-a53}, +@samp{cortex-a57}, @samp{cortex-a72}, @samp{cortex-r4}, @samp{cortex-r4f}, @samp{cortex-r5}, @samp{cortex-r7}, @samp{cortex-m7}, @samp{cortex-m4}, @@ -12981,7 +12982,8 @@ Permissible names are: @samp{arm2}, @samp{arm250}, Additionally, this option can specify that GCC should tune the performance of the code for a big.LITTLE system. Permissible names are: -@samp{cortex-a15.cortex-a7}, @samp{cortex-a57.cortex-a53}. +@samp{cortex-a15.cortex-a7}, @samp{cortex-a57.cortex-a53}, +@samp{cortex-a72.cortex-a53}. @option{-mtune=generic-@var{arch}} specifies that GCC should tune the performance for a blend of processors within architecture @var{arch}. -- 2.30.2