From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 5/6] arm64: atomic_lse: match asm register sizes
Date: Wed, 3 May 2017 16:09:37 +0100 [thread overview]
Message-ID: <1493824178-7399-6-git-send-email-mark.rutland@arm.com> (raw)
In-Reply-To: <1493824178-7399-1-git-send-email-mark.rutland@arm.com>
The LSE atomic code uses asm register variables to ensure that
parameters are allocated in specific registers. In the majority of cases
we specifically ask for an x register when using 64-bit values, but in a
couple of cases we use a w regsiter for a 64-bit value.
For asm register variables, the compiler only cares about the register
index, with wN and xN having the same meaning. The compiler determines
the register size to use based on the type of the variable. Thus, this
inconsistency is merely confusing, and not harmful to code generation.
For consistency, this patch updates those cases to use the x register
alias. There should be no functional change as a result of this patch.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
---
arch/arm64/include/asm/atomic_lse.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/include/asm/atomic_lse.h b/arch/arm64/include/asm/atomic_lse.h
index 7457ce0..99fa69c 100644
--- a/arch/arm64/include/asm/atomic_lse.h
+++ b/arch/arm64/include/asm/atomic_lse.h
@@ -322,7 +322,7 @@ static inline void atomic64_and(long i, atomic64_t *v)
#define ATOMIC64_FETCH_OP_AND(name, mb, cl...) \
static inline long atomic64_fetch_and##name(long i, atomic64_t *v) \
{ \
- register long x0 asm ("w0") = i; \
+ register long x0 asm ("x0") = i; \
register atomic64_t *x1 asm ("x1") = v; \
\
asm volatile(ARM64_LSE_ATOMIC_INSN( \
@@ -394,7 +394,7 @@ static inline void atomic64_sub(long i, atomic64_t *v)
#define ATOMIC64_FETCH_OP_SUB(name, mb, cl...) \
static inline long atomic64_fetch_sub##name(long i, atomic64_t *v) \
{ \
- register long x0 asm ("w0") = i; \
+ register long x0 asm ("x0") = i; \
register atomic64_t *x1 asm ("x1") = v; \
\
asm volatile(ARM64_LSE_ATOMIC_INSN( \
--
1.9.1
next prev parent reply other threads:[~2017-05-03 15:09 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-03 15:09 [PATCH 0/6] arm64: inline assembly fixes + cleanup Mark Rutland
2017-05-03 15:09 ` [PATCH 1/6] arm64: xchg: hazard against entire exchange variable Mark Rutland
2017-05-03 15:09 ` [PATCH 2/6] arm64: ensure extension of smp_store_release value Mark Rutland
2017-05-03 15:09 ` [PATCH 3/6] arm64: uaccess: ensure extension of access_ok() addr Mark Rutland
2017-05-03 15:09 ` [PATCH 4/6] arm64: armv8_deprecated: ensure extension of addr Mark Rutland
2017-05-05 14:51 ` Punit Agrawal
2017-05-03 15:09 ` Mark Rutland [this message]
2017-05-03 15:09 ` [PATCH 6/6] arm64: uaccess: suppress spurious clang warning Mark Rutland
2017-05-09 15:24 ` [PATCH 0/6] arm64: inline assembly fixes + cleanup Will Deacon
2017-05-10 8:24 ` Catalin Marinas
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=1493824178-7399-6-git-send-email-mark.rutland@arm.com \
--to=mark.rutland@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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;
as well as URLs for NNTP newsgroup(s).