From patchwork Fri Jul 27 09:37:47 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Richard Earnshaw \(lists\)" X-Patchwork-Id: 143018 Delivered-To: patch@linaro.org Received: by 2002:a2e:9754:0:0:0:0:0 with SMTP id f20-v6csp598611ljj; Fri, 27 Jul 2018 02:38:54 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdMIWBlgX3d9jxjJ5FXvjEjx1yN5CZnn/yteU+cqUSJA4Ezzb8Y0OsQO10J0HhTdqnZsiaj X-Received: by 2002:a17:902:1d4a:: with SMTP id u10-v6mr5385764plu.267.1532684334122; Fri, 27 Jul 2018 02:38:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532684334; cv=none; d=google.com; s=arc-20160816; b=0TxlwnIXX5E0Msf3CRynre8OiwImoeqsVVSnsZn+AyB9PgJ/Vgd+v57vjw5sdA/OYz HLXVx2Vjg2VW/XuZwfLIN7ZhRnX/N6qNtWSs6rVqB/YBgdoZiSeGWaQzqdKEE/vmMLKz dKNGC8Vc9zb9UCgpRJKk0EZQWFG6d9ukgsgwm9tJFfksXEx1NWxNIwfnTW3gZFoDTR6Q Q6NB2TLbD/DgedLw4to+2tBIeenIROKhrXJshJDo5qwNtit0/UyJrykV2StOqekrUlGi FurGLFIgUgzrmnpccTUvmJGIzePUeTbAh5rYaudy87ueEGDl/zVtsBz1GisCboRfXaTx xx3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:delivered-to:sender:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:mailing-list:dkim-signature :domainkey-signature:arc-authentication-results; bh=WW/GzLumh7o2IWzFZ6L0Y8ZXueWnV6LFQILu2i02ucM=; b=okgdahJQO92nQ2IKfj1LuDep7G5kBGuXEwFdcmafG4OHlHXzvxGwfUTu4l4ALQhags csPsdobfxQIM8l6vp5kHWmD496ERY8MmW9F8G0e3MB0AOJsE/L812zvkYUb4gPw4xW4k fzIh0GL3vn00OxKzLHiXWsO2fFIkNdwuPMPKWX8//B2FEYSf2KTASLp+5PAtE1e1AhTk Icf1tGj52xd+5EpymNX2nAoDgQXfcP1OerPUWk44Bv4l2lET/SnRKnwZFqyXW2MRXBgg SlKF84LFvN/RE7GqU0KHTnGGr8E+p5cWeT2EPAo6zWYsTJVWXgVZvyarkDhStRooH7di DdfQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=rOnCX0CH; spf=pass (google.com: domain of gcc-patches-return-482504-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom="gcc-patches-return-482504-patch=linaro.org@gcc.gnu.org" Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id f18-v6si3278854pgd.16.2018.07.27.02.38.53 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 27 Jul 2018 02:38:54 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-return-482504-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=rOnCX0CH; spf=pass (google.com: domain of gcc-patches-return-482504-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom="gcc-patches-return-482504-patch=linaro.org@gcc.gnu.org" 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 :mime-version:content-type; q=dns; s=default; b=Zp31cV/5MyooHfeT x+3LHqHotQqRQ1ASh4ttMd0MXDqbMtRd/qjcdznksrAN3VgSvE8PKvjKs+plWLDF u/f7yRgTKBFEnySiTygCDzZUThQe5wBixrddMN1z+QsgfS2REz8EH42rQx/dCv2s QrbWQ2GzVS8DRJuKImDrt8paFcs= 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 :mime-version:content-type; s=default; bh=LXdV+RzKviWvtG9UDSjIeu iVwlk=; b=rOnCX0CHaoWhtbzQeQ1DyuRdU4oiv43rxz9pKdp9aK9mx1+HGa6YuV e0e/Fr0AGFywUNhO+thqG/N3Fsu4ZyyPdn84afjYE1bLjn+dYLJPfnOSf0CflfMB Ldr3+pyhrLeMkiPX/fT46VoJEUmY/3FY5B/52Qq+74A1e0PR38Dzw= Received: (qmail 46679 invoked by alias); 27 Jul 2018 09:38:29 -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 46594 invoked by uid 89); 27 Jul 2018 09:38:28 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: foss.arm.com Received: from usa-sjc-mx-foss1.foss.arm.com (HELO foss.arm.com) (217.140.101.70) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 27 Jul 2018 09:38:27 +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 DF2711684; Fri, 27 Jul 2018 02:38:25 -0700 (PDT) Received: from e120077-lin.cambridge.arm.com (e120077-lin.cambridge.arm.com [10.2.207.74]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4770E3F575; Fri, 27 Jul 2018 02:38:25 -0700 (PDT) From: Richard Earnshaw To: gcc-patches@gcc.gnu.org Cc: Richard Earnshaw Subject: [PATCH 03/11] AArch64 - add speculation barrier Date: Fri, 27 Jul 2018 10:37:47 +0100 Message-Id: <1532684275-13041-4-git-send-email-Richard.Earnshaw@arm.com> In-Reply-To: <1532684275-13041-1-git-send-email-Richard.Earnshaw@arm.com> References: <1531154299-28349-1-git-send-email-Richard.Earnshaw@arm.com> <1532684275-13041-1-git-send-email-Richard.Earnshaw@arm.com> MIME-Version: 1.0 Similar to Arm, this adds an unconditional speculation barrier for AArch64. * config/aarch64.md (unspecv): Add UNSPECV_SPECULAION_BARRIER. (speculation_barrier): New insn. --- gcc/config/aarch64/aarch64.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index a014a01..c135ada 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -205,6 +205,7 @@ (define_c_enum "unspecv" [ UNSPECV_SET_FPSR ; Represent assign of FPSR content. UNSPECV_BLOCKAGE ; Represent a blockage UNSPECV_PROBE_STACK_RANGE ; Represent stack range probing. + UNSPECV_SPECULATION_BARRIER ; Represent speculation barrier. ] ) @@ -6093,6 +6094,15 @@ (define_expand "set_clobber_cc" (match_operand 1)) (clobber (reg:CC CC_REGNUM))])]) +;; Hard speculation barrier. +(define_insn "speculation_barrier" + [(unspec_volatile [(const_int 0)] UNSPECV_SPECULATION_BARRIER)] + "" + "isb\;dsb\\tsy" + [(set_attr "length" "8") + (set_attr "type" "block")] +) + ;; AdvSIMD Stuff (include "aarch64-simd.md")