From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20437 invoked by alias); 11 Nov 2018 12:30:51 -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 20309 invoked by uid 89); 11 Nov 2018 12:30:42 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-10.7 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=henderson, Henderson, HX-Received:sk:90-v6mr, H*Ad:U*rth X-HELO: mail-wr1-f43.google.com Received: from mail-wr1-f43.google.com (HELO mail-wr1-f43.google.com) (209.85.221.43) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 11 Nov 2018 12:30:39 +0000 Received: by mail-wr1-f43.google.com with SMTP id z16-v6so6414863wrv.2 for ; Sun, 11 Nov 2018 04:30:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:openpgp:autocrypt:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=M8sXE27LOcSUIe+1bawJYcf05EN8HpfCdscSGJUIXBs=; b=T06wzW/qRjMvHPSkyTp1CNerOp+ySewFoiohXpyZBKejdmrlTyAUz1xz61Jx7iAVv1 IyY4/kd7zOAt9linYkE96w+MlNdgKtYzb4hM4muXidJMHl4aIMEi7uCs7TmMd+wOp5pm k9z8Ue4E25TaJWBsDay7nRN8N2j5E7UOOB/N2ebXphJ9p1JABL2qeCRxaJ1wFe3nBLz4 3NonCGvdzL6luRREXlxXxcWUm42k3HICV6/ig9WHFjISr9FTAHPEWiDkLIhsZEa21/Sc v2S1iR13ntb02Uh/kLayi84YfasJD/CwEb2G6rcUdFqU7k+XPlJNhhl0oYArO6F8ddj1 FqRA== Return-Path: Received: from cloudburst.twiddle.net (151.red-213-99-169.dynamicip.rima-tde.net. [213.99.169.151]) by smtp.googlemail.com with ESMTPSA id l5-v6sm12586784wrv.84.2018.11.11.04.30.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 11 Nov 2018 04:30:33 -0800 (PST) Sender: Richard Henderson Subject: Re: [PATCH, AArch64, v3 0/6] LSE atomics out-of-line To: Richard Henderson , gcc-patches@gcc.gnu.org Cc: ramana.radhakrishnan@arm.com, agraf@suse.de, marcus.shawcroft@arm.com, james.greenhalgh@arm.com References: <20181101214648.29432-1-richard.henderson@linaro.org> From: Richard Henderson Openpgp: preference=signencrypt Message-ID: <57dbd8d2-b121-f025-45cd-2739a88ce4c2@twiddle.net> Date: Sun, 11 Nov 2018 12:30:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0 MIME-Version: 1.0 In-Reply-To: <20181101214648.29432-1-richard.henderson@linaro.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2018-11/txt/msg00855.txt.bz2 Ping. On 11/1/18 10:46 PM, Richard Henderson wrote: > From: Richard Henderson > > Changes since v2: > * Committed half of the patch set. > * Split inline TImode support from out-of-line patches. > * Removed the ST out-of-line functions, to match inline. > * Moved the out-of-line functions to assembly. > > What I have not done, but is now a possibility, is to use a custom > calling convention for the out-of-line routines. I now only clobber > 2 (or 3, for TImode) temp regs and set a return value. > > > r~ > > > Richard Henderson (6): > aarch64: Extend %R for integer registers > aarch64: Implement TImode compare-and-swap > aarch64: Tidy aarch64_split_compare_and_swap > aarch64: Add out-of-line functions for LSE atomics > aarch64: Implement -matomic-ool > Enable -matomic-ool by default > > gcc/config/aarch64/aarch64-protos.h | 13 + > gcc/common/config/aarch64/aarch64-common.c | 6 +- > gcc/config/aarch64/aarch64.c | 211 ++++++++++++---- > .../atomic-comp-swap-release-acquire.c | 2 +- > .../gcc.target/aarch64/atomic-op-acq_rel.c | 2 +- > .../gcc.target/aarch64/atomic-op-acquire.c | 2 +- > .../gcc.target/aarch64/atomic-op-char.c | 2 +- > .../gcc.target/aarch64/atomic-op-consume.c | 2 +- > .../gcc.target/aarch64/atomic-op-imm.c | 2 +- > .../gcc.target/aarch64/atomic-op-int.c | 2 +- > .../gcc.target/aarch64/atomic-op-long.c | 2 +- > .../gcc.target/aarch64/atomic-op-relaxed.c | 2 +- > .../gcc.target/aarch64/atomic-op-release.c | 2 +- > .../gcc.target/aarch64/atomic-op-seq_cst.c | 2 +- > .../gcc.target/aarch64/atomic-op-short.c | 2 +- > .../aarch64/atomic_cmp_exchange_zero_reg_1.c | 2 +- > .../atomic_cmp_exchange_zero_strong_1.c | 2 +- > .../gcc.target/aarch64/sync-comp-swap.c | 2 +- > .../gcc.target/aarch64/sync-op-acquire.c | 2 +- > .../gcc.target/aarch64/sync-op-full.c | 2 +- > libgcc/config/aarch64/lse-init.c | 45 ++++ > gcc/config/aarch64/aarch64.opt | 4 + > gcc/config/aarch64/atomics.md | 185 +++++++++++++- > gcc/config/aarch64/iterators.md | 3 + > gcc/doc/invoke.texi | 14 +- > libgcc/config.host | 4 + > libgcc/config/aarch64/lse.S | 238 ++++++++++++++++++ > libgcc/config/aarch64/t-lse | 44 ++++ > 28 files changed, 717 insertions(+), 84 deletions(-) > create mode 100644 libgcc/config/aarch64/lse-init.c > create mode 100644 libgcc/config/aarch64/lse.S > create mode 100644 libgcc/config/aarch64/t-lse >