[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a846d63e-14cd-7b29-54d8-b361cd74c522@twiddle.net>
Date: Thu, 23 Feb 2017 04:30:35 +1100
From: Richard Henderson <rth@...ddle.net>
To: Stafford Horne <shorne@...il.com>,
Peter Zijlstra <peterz@...radead.org>
Cc: Jonas Bonn <jonas@...thpole.se>, openrisc@...ts.librecores.org,
linux-kernel@...r.kernel.org, linux@...ck-us.net
Subject: Re: [OpenRISC] [PATCH v3 08/25] openrisc: add cmpxchg and xchg
implementations
On 02/23/2017 01:20 AM, Stafford Horne wrote:
> On Wed, Feb 22, 2017 at 12:19:40PM +0100, Peter Zijlstra wrote:
>> On Wed, Feb 22, 2017 at 04:11:37AM +0900, Stafford Horne wrote:
>>> + __asm__ __volatile__(
>>> + "1: l.lwa %0, 0(%1) \n"
>>> + " l.sfeq %0, %2 \n"
>>> + " l.bnf 1f \n"
>>> + " l.nop \n"
>>> + " l.swa 0(%1), %3 \n"
>>> + " l.bnf 1b \n"
>>> + "1: l.nop \n"
>>> + : "=&r"(old)
>>> + : "r"(ptr), "r"(old), "r"(new)
>>> + : "cc", "memory");
>>
>> I just noticed this, but having both labels have the same name is
>> somewhat confusing.
>
> Right, better to use '2' for the second one.
Better still to put the second label after the delay-slot nop.
You don't need to execute that on the way out.
r~
Powered by blists - more mailing lists