From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18380 invoked by alias); 13 Feb 2019 13:59:29 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 18370 invoked by uid 89); 13 Feb 2019 13:59:29 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=BAYES_00,KAM_NUMSUBJECT,SPF_PASS autolearn=no version=3.3.2 spammy=H*i:sk:DB7PR04 X-HELO: mx1.suse.de Received: from mx2.suse.de (HELO mx1.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 13 Feb 2019 13:59:28 +0000 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 62C96AE17; Wed, 13 Feb 2019 13:59:26 +0000 (UTC) From: Andreas Schwab To: Peng Fan Cc: "gcc\@gcc.gnu.org" , "james.greenhalgh\@arm.com" , "nd\@arm.com" , "jailhouse-dev\@googlegroups.com" , "will.deacon\@arm.com" , Catalin Marinas Subject: Re: Warning: unpredictable: identical transfer and status registers --`stxr w4,x5,[x4] using aarch64 poky gcc 8.3 References: X-Yow: I always liked FLAG DAY!! Date: Wed, 13 Feb 2019 13:59:00 -0000 In-Reply-To: (Peng Fan's message of "Wed, 13 Feb 2019 07:13:21 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2019-02/txt/msg00053.txt.bz2 On Feb 13 2019, Peng Fan wrote: > static inline int test_and_set_bit(int nr, volatile unsigned long *addr) > { > u32 ret; > u64 test, tmp; > > BITOPT_ALIGN(nr, addr); > > /* AARCH64_TODO: using Inner Shareable DMB at the moment, > * revisit when we will deal with shareability domains */ > > do { > asm volatile ( > "ldxr %3, %2\n\t" > "ands %1, %3, %4\n\t" > "b.ne 1f\n\t" > "orr %3, %3, %4\n\t" > "1:\n\t" > "stxr %w0, %3, %2\n\t" > "dmb ish\n\t" > : "=r" (ret), "=&r" (test), > "+Q" (*(volatile unsigned long *)addr), > "=r" (tmp) > : "r" (1ul << nr)); %3 is modified early, but not marked earlyclobber. Andreas. -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different."