Re: [OpenRISC] [PATCH v3 08/25] openrisc: add cmpxchg and xchg implementations

From: Richard Henderson
Date: Wed Feb 22 2017 - 12:30:54 EST


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~