From patchwork Sun Nov 8 00:26:43 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Charles Baylis X-Patchwork-Id: 541419 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 8FC0F1402D0 for ; Sun, 8 Nov 2015 11:27:55 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=rFTl+G7n; 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:from :to:cc:subject:date:message-id:in-reply-to:references; q=dns; s= default; b=qG+g2YAmhJlvjEk3XqnytBE5Atd+vJl+HdOsBcBPbMvusqOA9gCQj GtuVvQEAISI1RKSOBNeQm0SWSgHA+8pcnytC5w/ofGnEY85CCI8LpcIuxtkASf2P TXRy2A7telSvFVNDAKqpmxijF81s580JDLz1viu9aHlJ0BV/Fq5ZLo= 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:from :to:cc:subject:date:message-id:in-reply-to:references; s= default; bh=yJBJu7+wdni9kbt6OEZXjKfqBR4=; b=rFTl+G7nfMfITlI2/ph0 8DbMsl5muo0ivkCnAw/04/vci1RxnrAAUn/yNhrbGZ72A8VwOodd0jrUcSGuOzi/ ZIG6yVjlXFNBFMfx/ms885k6wtBgROO0N8DFL/l5jaWonShB0u/wzl7IQfdcJsov hcwsnm2qE62GsiWAwVx/NMw= Received: (qmail 1429 invoked by alias); 8 Nov 2015 00:27:11 -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 1360 invoked by uid 89); 8 Nov 2015 00:27:10 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-wi0-f170.google.com Received: from mail-wi0-f170.google.com (HELO mail-wi0-f170.google.com) (209.85.212.170) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Sun, 08 Nov 2015 00:27:08 +0000 Received: by wimw2 with SMTP id w2so50343774wim.1 for ; Sat, 07 Nov 2015 16:27:05 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=sw+uE/UZZX4qhDT/xWK276rBet9ch7yAvMQhwdA72ow=; b=agCd37NWSDDTLJLF6hJfJWSRpxB5SCO4awYHwi7Hl6V/TORu25c/UT15DFKk/n1YDI 2pczyHdktI+TVlhzTV5dhotWJ3sV60LftocOddERLHJ/oT+IhVWLQz53/Rg8rhqVpgPr 4Y8o5/bKyIGHFs3h5FBS/kUcC7VAvgdIp+KUcb/WIP+m5iixxgZTp33/Wj1Hz1sdjGsg OYwm0Mf/6nRzb35d0bjhWw6upoL9mxgx4HXN3WSuPx5ZbONPSuriV/5arcjLR8IR2XqE pn9JcPR43oWKKR6UKtMWnM0ufA0C/bxDB3JdL2V5nlobK7ZNKH6s6QYGIYyeu0U8HyDz mqaQ== X-Gm-Message-State: ALoCoQlklsucWofHmlC7dODPvCxsgQ4Xa+BlBolCYT6W/iVcqMTrttCynAQxPNsXb0s+j5qUK9tp X-Received: by 10.194.84.174 with SMTP id a14mr22281747wjz.52.1446942425605; Sat, 07 Nov 2015 16:27:05 -0800 (PST) Received: from localhost.localdomain (cpc10-cmbg17-2-0-cust610.5-4.cable.virginm.net. [86.30.42.99]) by smtp.gmail.com with ESMTPSA id e9sm7480979wjw.8.2015.11.07.16.27.04 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 07 Nov 2015 16:27:05 -0800 (PST) From: charles.baylis@linaro.org To: Ramana.Radhakrishnan@arm.com, kyrylo.tkachov@arm.com, alan.lawrence@arm.com Cc: rearnsha@arm.com, gcc-patches@gcc.gnu.org Subject: [PATCH 4a/4] [ARM] PR63870 Use internal_error() for invalid lane numbers Date: Sun, 8 Nov 2015 00:26:43 +0000 Message-Id: <1446942404-11561-5-git-send-email-charles.baylis@linaro.org> In-Reply-To: <1446942404-11561-1-git-send-email-charles.baylis@linaro.org> References: <1446942404-11561-1-git-send-email-charles.baylis@linaro.org> X-IsSubscribed: yes From: Charles Baylis Charles Baylis * config/arm/neon.md (neon_vld1_lane): Use internal_error for invalid lane number. (neon_vst1_lane): Likewise. (neon_vld2_lane): Likewise. (neon_vst2_lane): Likewise. (neon_vld3_lane): Likewise. (neon_vst3_lane): Likewise. (neon_vld4_lane): Likewise. (neon_vst4_lane): Likewise. Change-Id: I72686845119df2f857fed98e7e0a588c532159a7 --- gcc/config/arm/neon.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/gcc/config/arm/neon.md b/gcc/config/arm/neon.md index e8db020..99caf96 100644 --- a/gcc/config/arm/neon.md +++ b/gcc/config/arm/neon.md @@ -4265,7 +4265,7 @@ if (BYTES_BIG_ENDIAN) HOST_WIDE_INT max = GET_MODE_NUNITS (mode); operands[3] = GEN_INT (lane); if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); if (max == 1) return "vld1.\t%P0, %A1"; else @@ -4287,7 +4287,7 @@ if (BYTES_BIG_ENDIAN) operands[3] = GEN_INT (lane); int regno = REGNO (operands[0]); if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); else if (lane >= max / 2) { lane -= max / 2; @@ -4373,7 +4373,7 @@ if (BYTES_BIG_ENDIAN) HOST_WIDE_INT max = GET_MODE_NUNITS (mode); operands[2] = GEN_INT (lane); if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); if (max == 1) return "vst1.\t{%P1}, %A0"; else @@ -4394,7 +4394,7 @@ if (BYTES_BIG_ENDIAN) HOST_WIDE_INT max = GET_MODE_NUNITS (mode); int regno = REGNO (operands[1]); if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); else if (lane >= max / 2) { lane -= max / 2; @@ -4465,7 +4465,7 @@ if (BYTES_BIG_ENDIAN) int regno = REGNO (operands[0]); rtx ops[4]; if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); ops[0] = gen_rtx_REG (DImode, regno); ops[1] = gen_rtx_REG (DImode, regno + 2); ops[2] = operands[1]; @@ -4490,7 +4490,7 @@ if (BYTES_BIG_ENDIAN) int regno = REGNO (operands[0]); rtx ops[4]; if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); else if (lane >= max / 2) { lane -= max / 2; @@ -4580,7 +4580,7 @@ if (BYTES_BIG_ENDIAN) int regno = REGNO (operands[1]); rtx ops[4]; if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); ops[0] = operands[0]; ops[1] = gen_rtx_REG (DImode, regno); ops[2] = gen_rtx_REG (DImode, regno + 2); @@ -4605,7 +4605,7 @@ if (BYTES_BIG_ENDIAN) int regno = REGNO (operands[1]); rtx ops[4]; if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); else if (lane >= max / 2) { lane -= max / 2; @@ -4724,7 +4724,7 @@ if (BYTES_BIG_ENDIAN) int regno = REGNO (operands[0]); rtx ops[5]; if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); ops[0] = gen_rtx_REG (DImode, regno); ops[1] = gen_rtx_REG (DImode, regno + 2); ops[2] = gen_rtx_REG (DImode, regno + 4); @@ -4751,7 +4751,7 @@ if (BYTES_BIG_ENDIAN) int regno = REGNO (operands[0]); rtx ops[5]; if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); else if (lane >= max / 2) { lane -= max / 2; @@ -4896,7 +4896,7 @@ if (BYTES_BIG_ENDIAN) int regno = REGNO (operands[1]); rtx ops[5]; if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); ops[0] = operands[0]; ops[1] = gen_rtx_REG (DImode, regno); ops[2] = gen_rtx_REG (DImode, regno + 2); @@ -4923,7 +4923,7 @@ if (BYTES_BIG_ENDIAN) int regno = REGNO (operands[1]); rtx ops[5]; if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); else if (lane >= max / 2) { lane -= max / 2; @@ -5046,7 +5046,7 @@ if (BYTES_BIG_ENDIAN) int regno = REGNO (operands[0]); rtx ops[6]; if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); ops[0] = gen_rtx_REG (DImode, regno); ops[1] = gen_rtx_REG (DImode, regno + 2); ops[2] = gen_rtx_REG (DImode, regno + 4); @@ -5074,7 +5074,7 @@ if (BYTES_BIG_ENDIAN) int regno = REGNO (operands[0]); rtx ops[6]; if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); else if (lane >= max / 2) { lane -= max / 2; @@ -5226,7 +5226,7 @@ if (BYTES_BIG_ENDIAN) int regno = REGNO (operands[1]); rtx ops[6]; if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); ops[0] = operands[0]; ops[1] = gen_rtx_REG (DImode, regno); ops[2] = gen_rtx_REG (DImode, regno + 2); @@ -5254,7 +5254,7 @@ if (BYTES_BIG_ENDIAN) int regno = REGNO (operands[1]); rtx ops[6]; if (lane < 0 || lane >= max) - error ("lane out of range"); + internal_error ("lane out of range"); else if (lane >= max / 2) { lane -= max / 2;