From: Stafford Horne <shorne@gmail.com>
To: Richard Henderson <rth@twiddle.net>
Cc: Peter Zijlstra <peterz@infradead.org>,
Jonas Bonn <jonas@southpole.se>,
openrisc@lists.librecores.org, linux-kernel@vger.kernel.org,
linux@roeck-us.net
Subject: Re: [OpenRISC] [PATCH v3 09/25] openrisc: add optimized atomic operations
Date: Thu, 23 Feb 2017 07:42:42 +0900 [thread overview]
Message-ID: <20170222224242.GD2449@lianli.shorne-pla.net> (raw)
In-Reply-To: <c775b4d1-fa98-c1b2-d212-1441343b62d4@twiddle.net>
On Thu, Feb 23, 2017 at 04:31:34AM +1100, Richard Henderson wrote:
> On 02/23/2017 01:22 AM, Stafford Horne wrote:
> > > static inline int __atomic_add_unless(atomic_t *v, int a, int u)
> > > {
> > > int old, tmp;
> > >
> > > __asm__ __volatile__(
> > > "1: l.lwa %0, 0(%2) \n"
> > > " l.sfeq %0, %4 \n"
> > > " l.bf 2f \n"
> > > " l.nop \n"
> > > " l.add %1, %0, %3 \n"
>
> You can move this add into the delay slot and drop the preceding nop.
Thanks, Thats right, also here the 2: label being after the l.nop can be
applied. I should have thought about it. I made the change, Ill also
fix/look again in the other places.
-Stafford
>
> r~
next prev parent reply other threads:[~2017-02-22 22:42 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-21 19:11 [PATCH v3 00/25] OpenRISC patches for 4.11 final call Stafford Horne
2017-02-21 19:11 ` [PATCH v3 01/25] openrisc: use SPARSE_IRQ Stafford Horne
2017-02-21 19:11 ` [PATCH v3 02/25] openrisc: add cache way information to cpuinfo Stafford Horne
2017-03-14 12:08 ` Sudeep Holla
2017-03-14 13:11 ` Stefan Kristiansson
2017-03-14 13:45 ` Sudeep Holla
2017-03-14 14:09 ` Stafford Horne
2017-03-14 15:55 ` Sudeep Holla
2017-02-21 19:11 ` [PATCH v3 03/25] openrisc: tlb miss handler optimizations Stafford Horne
2017-02-21 19:11 ` [PATCH v3 04/25] openrisc: head: use THREAD_SIZE instead of magic constant Stafford Horne
2017-02-21 19:11 ` [PATCH v3 05/25] openrisc: head: refactor out tlb flush into it's own function Stafford Horne
2017-02-21 19:11 ` [PATCH v3 06/25] openrisc: add l.lwa/l.swa emulation Stafford Horne
2017-02-21 19:11 ` [PATCH v3 07/25] openrisc: add atomic bitops Stafford Horne
2017-02-21 19:11 ` [PATCH v3 08/25] openrisc: add cmpxchg and xchg implementations Stafford Horne
2017-02-22 11:19 ` Peter Zijlstra
2017-02-22 14:20 ` Stafford Horne
2017-02-22 17:30 ` [OpenRISC] " Richard Henderson
2017-02-22 22:43 ` Stafford Horne
2017-02-21 19:11 ` [PATCH v3 09/25] openrisc: add optimized atomic operations Stafford Horne
2017-02-22 11:27 ` Peter Zijlstra
2017-02-22 14:22 ` Stafford Horne
2017-02-22 17:31 ` [OpenRISC] " Richard Henderson
2017-02-22 22:42 ` Stafford Horne [this message]
2017-02-21 19:11 ` [PATCH v3 10/25] openrisc: add spinlock implementation Stafford Horne
2017-02-22 11:29 ` Peter Zijlstra
2017-02-22 11:32 ` Peter Zijlstra
2017-02-22 11:37 ` Peter Zijlstra
2017-02-22 12:02 ` Peter Zijlstra
2017-02-22 11:38 ` Peter Zijlstra
2017-02-22 11:41 ` Peter Zijlstra
2017-02-22 12:08 ` Peter Zijlstra
2017-02-21 19:11 ` [PATCH v3 11/25] openrisc: add futex_atomic_* implementations Stafford Horne
2017-02-21 19:11 ` [PATCH v3 12/25] openrisc: remove unnecessary stddef.h include Stafford Horne
2017-02-21 19:11 ` [PATCH v3 13/25] openrisc: Fix the bitmask for the unit present register Stafford Horne
2017-02-21 19:11 ` [PATCH v3 14/25] openrisc: Initial support for the idle state Stafford Horne
2017-02-21 20:24 ` Joe Perches
2017-02-22 14:19 ` Stafford Horne
2017-02-21 19:11 ` [PATCH v3 15/25] openrisc: Add optimized memset Stafford Horne
2017-02-21 19:11 ` [PATCH v3 16/25] openrisc: Add optimized memcpy routine Stafford Horne
2017-02-21 19:11 ` [PATCH v3 17/25] openrisc: Add .gitignore Stafford Horne
2017-02-21 19:11 ` [PATCH v3 18/25] MAINTAINERS: Add the openrisc official repository Stafford Horne
2017-02-21 19:11 ` [PATCH v3 19/25] scripts/checkstack.pl: Add openrisc support Stafford Horne
2017-02-21 19:11 ` [PATCH v3 20/25] openrisc: entry: Whitespace and comment cleanups Stafford Horne
2017-02-21 19:11 ` [PATCH v3 21/25] openrisc: entry: Fix delay slot detection Stafford Horne
2017-02-21 19:11 ` [PATCH v3 22/25] openrisc: head: Move init strings to rodata section Stafford Horne
2017-02-21 19:11 ` [PATCH v3 23/25] arch/openrisc/lib/memcpy.c: use correct OR1200 option Stafford Horne
2017-02-21 19:11 ` [PATCH v3 24/25] openrisc: Export ioremap symbols used by modules Stafford Horne
2017-02-21 19:11 ` [PATCH v3 25/25] openrisc: head: Init r0 to 0 on start Stafford Horne
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170222224242.GD2449@lianli.shorne-pla.net \
--to=shorne@gmail.com \
--cc=jonas@southpole.se \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=openrisc@lists.librecores.org \
--cc=peterz@infradead.org \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®