From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26023 invoked by alias); 4 Dec 2015 18:26:30 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 26007 invoked by uid 89); 4 Dec 2015 18:26:29 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.1 required=5.0 tests=AWL,BAYES_50,KAM_ASCII_DIVIDERS,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW autolearn=no version=3.3.2 X-HELO: smtp.eu.adacore.com Received: from mel.act-europe.fr (HELO smtp.eu.adacore.com) (194.98.77.210) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Fri, 04 Dec 2015 18:26:28 +0000 Received: from localhost (localhost [127.0.0.1]) by filtered-smtp.eu.adacore.com (Postfix) with ESMTP id C3EFB30006C4; Fri, 4 Dec 2015 19:26:24 +0100 (CET) Received: from smtp.eu.adacore.com ([127.0.0.1]) by localhost (smtp.eu.adacore.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id howLt1kTvYB0; Fri, 4 Dec 2015 19:26:24 +0100 (CET) Received: from polaris.localnet (bon31-6-88-161-99-133.fbx.proxad.net [88.161.99.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.eu.adacore.com (Postfix) with ESMTPSA id 9650C30006BC; Fri, 4 Dec 2015 19:26:24 +0100 (CET) From: Eric Botcazou To: Richard Earnshaw Cc: gcc-patches@gcc.gnu.org, Ramana Radhakrishnan Subject: Re: [ARM] Fix PR middle-end/65958 Date: Fri, 04 Dec 2015 18:26:00 -0000 Message-ID: <1892392.BudIDqPQ7i@polaris> User-Agent: KMail/4.14.9 (Linux/3.16.7-29-desktop; KDE/4.14.9; x86_64; ; ) In-Reply-To: <566199F8.1010403@foss.arm.com> References: <1478566.ZKXszbaoG4@polaris> <1866500.xH01EXcb36@polaris> <566199F8.1010403@foss.arm.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="nextPart1801881.QpzzELSqva" Content-Transfer-Encoding: 7Bit X-SW-Source: 2015-12/txt/msg00617.txt.bz2 This is a multi-part message in MIME format. --nextPart1801881.QpzzELSqva Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Content-length: 626 > Minor nit. Since this is used in an unspec_volatile, the name should be > UNSPECV_ and defined in the unspecv enum. Ouch. It turns out that the ARM implementation has it too so I have installed the attached patchlet on top of the others after minimal retesting. PR middle-end/65958 * config/arm/unspecs.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE. (unspecv): Add VUNSPEC_PROBE_STACK_RANGE. * config/arm/arm.md (probe_stack_range): Adjust. * config/aarch64/aarch64.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE. (unspecv): Add UNSPECV_PROBE_STACK_RANGE. (probe_stack_range_): Adjust. -- Eric Botcazou --nextPart1801881.QpzzELSqva Content-Disposition: attachment; filename="pr65958-3.diff" Content-Transfer-Encoding: 7Bit Content-Type: text/x-patch; charset="UTF-8"; name="pr65958-3.diff" Content-length: 2445 Index: config/arm/arm.md =================================================================== --- config/arm/arm.md (revision 231250) +++ config/arm/arm.md (working copy) @@ -8183,7 +8183,7 @@ (define_insn "probe_stack_range" [(set (match_operand:SI 0 "register_operand" "=r") (unspec_volatile:SI [(match_operand:SI 1 "register_operand" "0") (match_operand:SI 2 "register_operand" "r")] - UNSPEC_PROBE_STACK_RANGE))] + VUNSPEC_PROBE_STACK_RANGE))] "TARGET_32BIT" { return output_probe_stack_range (operands[0], operands[2]); Index: config/arm/unspecs.md =================================================================== --- config/arm/unspecs.md (revision 231250) +++ config/arm/unspecs.md (working copy) @@ -84,7 +84,6 @@ (define_c_enum "unspec" [ UNSPEC_VRINTA ; Represent a float to integral float rounding ; towards nearest, ties away from zero. UNSPEC_PROBE_STACK ; Probe stack memory reference - UNSPEC_PROBE_STACK_RANGE ; Probe stack range ]) (define_c_enum "unspec" [ @@ -147,6 +146,7 @@ (define_c_enum "unspecv" [ VUNSPEC_STL ; Represent a store-register-release. VUNSPEC_GET_FPSCR ; Represent fetch of FPSCR content. VUNSPEC_SET_FPSCR ; Represent assign of FPSCR content. + VUNSPEC_PROBE_STACK_RANGE ; Represent stack range probing. ]) ;; Enumerators for NEON unspecs. Index: config/aarch64/aarch64.md =================================================================== --- config/aarch64/aarch64.md (revision 231259) +++ config/aarch64/aarch64.md (working copy) @@ -104,7 +104,6 @@ (define_c_enum "unspec" [ UNSPEC_MB UNSPEC_NOP UNSPEC_PRLG_STK - UNSPEC_PROBE_STACK_RANGE UNSPEC_RBIT UNSPEC_SISD_NEG UNSPEC_SISD_SSHL @@ -139,6 +138,7 @@ (define_c_enum "unspecv" [ UNSPECV_GET_FPSR ; Represent fetch of FPSR content. UNSPECV_SET_FPSR ; Represent assign of FPSR content. UNSPECV_BLOCKAGE ; Represent a blockage + UNSPECV_PROBE_STACK_RANGE ; Represent stack range probing. ] ) @@ -4968,7 +4968,7 @@ (define_insn "probe_stack_range_