From patchwork Wed Nov 2 10:07:00 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Preudhomme X-Patchwork-Id: 690351 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3t83gk1ylVz9t9b for ; Wed, 2 Nov 2016 21:07:46 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=blWlrcbe; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:references:from:message-id:date:mime-version :in-reply-to:content-type; q=dns; s=default; b=BIDY95houOzldPs0R xXfJEyQIE6sUf0dPoMmRE+foC5hNgEagxYp2lCLqJRBoreWTs6vyExNtJ4cNmcoH fm07u6GkWRQE+7UepJejrL3jy3xMs8c4HJdLkphgdjXan+KpMaDmp37aTOjpyS1l Us3cF9BkgHYi87zrzrWk8izfXA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:references:from:message-id:date:mime-version :in-reply-to:content-type; s=default; bh=r9zRO55p/gu3g6vcc5QXECm yNYs=; b=blWlrcbejLOueigwj8AHAcFLyIdpRJ7IuoDXrVHywgnsmcitK7WNo7s kz3VjpkkGyZbks60Go83U7QzOmnD1TRuTIxQ9c05Lo9rb+zFS9LUASvvDKTfdSuR AKvBKYebQBUicWLmd+yQXrT+1Um9lr9uU3V0mZMFb98wj4UWqvOg= Received: (qmail 17470 invoked by alias); 2 Nov 2016 10:07:15 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 17436 invoked by uid 89); 2 Nov 2016 10:07:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.9 required=5.0 tests=BAYES_00, KAM_LAZY_DOMAIN_SECURITY, KAM_LOTSOFHASH, RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=1666, permissible, Processors, 166, 6 X-HELO: foss.arm.com Received: from foss.arm.com (HELO foss.arm.com) (217.140.101.70) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 02 Nov 2016 10:07:04 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8DA2F29; Wed, 2 Nov 2016 03:07:02 -0700 (PDT) Received: from [10.2.206.52] (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C795C3F41F; Wed, 2 Nov 2016 03:07:01 -0700 (PDT) Subject: Re: [PATCH, gcc/ARM, ping] Add support for Cortex-M23 To: Kyrill Tkachov , Ramana Radhakrishnan , Richard Earnshaw , "gcc-patches@gcc.gnu.org" References: <30d89c41-396e-6fdb-90ae-a925934a9125@foss.arm.com> From: Thomas Preudhomme Message-ID: <7f7207f9-ad94-7eaf-b54e-2c377d261210@foss.arm.com> Date: Wed, 2 Nov 2016 10:07:00 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <30d89c41-396e-6fdb-90ae-a925934a9125@foss.arm.com> X-IsSubscribed: yes Ping? Best regards, Thomas On 26/10/16 17:42, Thomas Preudhomme wrote: > Hi, > > This patch adds support for the Cortex-M23 processor launched by ARM [1]. The > patch adds support for the name and wires it up to the ARMv8-M Baseline > architecture and arm_v6m_tune tuning parameters for the time being. It also > updates documentation to mention this new processor. > > [1] http://www.arm.com/products/processors/cortex-m/cortex-m23-processor.php > > ChangeLog entry is as follows: > > *** gcc/Changelog *** > > 2016-10-26 Thomas Preud'homme > > * config/arm/arm-arches.def (armv8-m.base): Set Cortex-M23 as > representative core for this architecture. > * config/arm/arm-cores.def (cortex-m23): Define new processor. > * config/arm/arm-tables.opt: Regenerate. > * config/arm/arm-tune.md: Likewise. > * config/arm/arm.c (arm_v6m_tune): Add Cortex-M23 to the list of cores > this tuning parameters apply to in the comment. > * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M23 to the list of > valid -mcpu options. > * doc/invoke.texi (ARM Options): Document new Cortex-M23 processor. > > > Tested by building libgcc and libstdc++ for Cortex-M23 and running a hello world > compiled for it. > > Is this ok for master? > > Best regards, > > Thomas diff --git a/gcc/config/arm/arm-arches.def b/gcc/config/arm/arm-arches.def index 4b196a7d1188de5eca028e5c2597bbc20835201f..9293429b3f9a026bcdacc1651c534bdf14d4df1e 100644 --- a/gcc/config/arm/arm-arches.def +++ b/gcc/config/arm/arm-arches.def @@ -69,7 +69,7 @@ ARM_ARCH ("armv8.2-a", cortexa53, 8A, ARM_ARCH ("armv8.2-a+fp16", cortexa53, 8A, ARM_FSET_MAKE (FL_CO_PROC | FL_CRC32 | FL_FOR_ARCH8A, FL2_FOR_ARCH8_2A | FL2_FP16INST)) -ARM_ARCH("armv8-m.base", cortexm0, 8M_BASE, +ARM_ARCH("armv8-m.base", cortexm23, 8M_BASE, ARM_FSET_MAKE_CPU1 ( FL_FOR_ARCH8M_BASE)) ARM_ARCH("armv8-m.main", cortexm7, 8M_MAIN, ARM_FSET_MAKE_CPU1(FL_CO_PROC | FL_FOR_ARCH8M_MAIN)) diff --git a/gcc/config/arm/arm-cores.def b/gcc/config/arm/arm-cores.def index 2072e1e6f8d84533deead24e6fb0b6aff7603f24..940b5de82f0340fc0c26be80d47729bc1f193db0 100644 --- a/gcc/config/arm/arm-cores.def +++ b/gcc/config/arm/arm-cores.def @@ -166,6 +166,7 @@ ARM_CORE("cortex-a15.cortex-a7", cortexa15cortexa7, cortexa7, 7A, ARM_FSET_MAKE_ ARM_CORE("cortex-a17.cortex-a7", cortexa17cortexa7, cortexa7, 7A, ARM_FSET_MAKE_CPU1 (FL_LDSCHED | FL_THUMB_DIV | FL_ARM_DIV | FL_FOR_ARCH7A), cortex_a12) /* V8 Architecture Processors */ +ARM_CORE("cortex-m23", cortexm23, cortexm23, 8M_BASE, ARM_FSET_MAKE_CPU1 (FL_LDSCHED | FL_FOR_ARCH8M_BASE), v6m) ARM_CORE("cortex-a32", cortexa32, cortexa53, 8A, ARM_FSET_MAKE_CPU1 (FL_LDSCHED | FL_CRC32 | FL_FOR_ARCH8A), cortex_a35) ARM_CORE("cortex-a35", cortexa35, cortexa53, 8A, ARM_FSET_MAKE_CPU1 (FL_LDSCHED | FL_CRC32 | FL_FOR_ARCH8A), cortex_a35) ARM_CORE("cortex-a53", cortexa53, cortexa53, 8A, ARM_FSET_MAKE_CPU1 (FL_LDSCHED | FL_CRC32 | FL_FOR_ARCH8A), cortex_a53) diff --git a/gcc/config/arm/arm-tables.opt b/gcc/config/arm/arm-tables.opt index ee9e3bb7ec57e0e8f2f15b83442711b9faf82d20..de712924afd33ba1e6e65cb56a5b260858d0cc4f 100644 --- a/gcc/config/arm/arm-tables.opt +++ b/gcc/config/arm/arm-tables.opt @@ -307,6 +307,9 @@ EnumValue Enum(processor_type) String(cortex-a17.cortex-a7) Value(cortexa17cortexa7) EnumValue +Enum(processor_type) String(cortex-m23) Value(cortexm23) + +EnumValue Enum(processor_type) String(cortex-a32) Value(cortexa32) EnumValue diff --git a/gcc/config/arm/arm-tune.md b/gcc/config/arm/arm-tune.md index 594ce9d1734451f89812200191cb35f1f579289e..46c2c9258bcad43618a50f6201414fa084cb5b56 100644 --- a/gcc/config/arm/arm-tune.md +++ b/gcc/config/arm/arm-tune.md @@ -32,9 +32,9 @@ cortexr4f,cortexr5,cortexr7, cortexr8,cortexm7,cortexm4, cortexm3,marvell_pj4,cortexa15cortexa7, - cortexa17cortexa7,cortexa32,cortexa35, - cortexa53,cortexa57,cortexa72, - cortexa73,exynosm1,qdf24xx, - xgene1,cortexa57cortexa53,cortexa72cortexa53, - cortexa73cortexa35,cortexa73cortexa53" + cortexa17cortexa7,cortexm23,cortexa32, + cortexa35,cortexa53,cortexa57, + cortexa72,cortexa73,exynosm1, + qdf24xx,xgene1,cortexa57cortexa53, + cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53" (const (symbol_ref "((enum attr_tune) arm_tune)"))) diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 022c1d72a1272e56397dc7e2018483e77f18b90d..39b2da05d2135c68032231bb7780104061355786 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -2243,7 +2243,8 @@ const struct tune_params arm_cortex_m7_tune = }; /* The arm_v6m_tune is duplicated from arm_cortex_tune, rather than - arm_v6t2_tune. It is used for cortex-m0, cortex-m1 and cortex-m0plus. */ + arm_v6t2_tune. It is used for cortex-m0, cortex-m1, cortex-m0plus and + cortex-m23. */ const struct tune_params arm_v6m_tune = { arm_9e_rtx_costs, diff --git a/gcc/config/arm/bpabi.h b/gcc/config/arm/bpabi.h index 0da98fb711bdcaf5add6e392060f4edaddf6cf05..302302f0d2d522fe282bb1d12687b53de72cae25 100644 --- a/gcc/config/arm/bpabi.h +++ b/gcc/config/arm/bpabi.h @@ -95,7 +95,7 @@ |march=armv8.1-a+crc \ |march=armv8.2-a \ |march=armv8.2-a+fp16 \ - |march=armv8-m.base \ + |march=armv8-m.base|mcpu=cortex-m23 \ |march=armv8-m.main \ |march=armv8-m.main+dsp \ :%{!r:--be8}}}" @@ -134,7 +134,7 @@ |march=armv8.1-a+crc \ |march=armv8.2-a \ |march=armv8.2-a+fp16 \ - |march=armv8-m.base \ + |march=armv8-m.base|mcpu=cortex-m23 \ |march=armv8-m.main \ |march=armv8-m.main+dsp \ :%{!r:--be8}}}" diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 5ccd4244ef396696f1a7ca962a7a7fe9973fcf6e..42f0307b36e4fe75c946a64bf6258a1ba1bd7b3d 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -14853,6 +14853,7 @@ Permissible names are: @samp{arm2}, @samp{arm250}, @samp{cortex-a32}, @samp{cortex-a35}, @samp{cortex-a53}, @samp{cortex-a57}, @samp{cortex-a72}, @samp{cortex-a73}, @samp{cortex-r4}, @samp{cortex-r4f}, @samp{cortex-r5}, @samp{cortex-r7}, @samp{cortex-r8}, +@samp{cortex-m23}, @samp{cortex-m7}, @samp{cortex-m4}, @samp{cortex-m3},