[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <5ef2acc655abfbe8bfa2cd30ecc5c2286b8fdfa3.1546551693.git.stefan@agner.ch>
Date: Thu, 3 Jan 2019 22:48:14 +0100
From: Stefan Agner <stefan@...er.ch>
To: linux@...linux.org.uk
Cc: ndesaulniers@...gle.com, natechancellor@...il.com, arnd@...db.de,
ard.biesheuvel@...aro.org, nicolas.pitre@...aro.org,
peterz@...radead.org, mingo@...hat.com, will.deacon@....com,
julien.thierry@....com, mark.rutland@....com,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
Stefan Agner <stefan@...er.ch>
Subject: [PATCH v2 2/3] ARM: uaccess: use unified assembler language syntax
Convert the conditional infix to a postfix to make sure this inline
assembly is unified syntax. Since gcc assumes non-unified syntax
when emitting ARM instructions, make sure to define the syntax as
unified.
This allows to use LLVM's integrated assembler.
Signed-off-by: Stefan Agner <stefan@...er.ch>
---
Changes since v1:
- Explicitly use unified syntax for inline assembly
arch/arm/include/asm/uaccess.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
index 6390a40f16e7..a50f9b4e2574 100644
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -86,7 +86,8 @@ static inline void set_fs(mm_segment_t fs)
#define __range_ok(addr, size) ({ \
unsigned long flag, roksum; \
__chk_user_ptr(addr); \
- __asm__("adds %1, %2, %3; sbcccs %1, %1, %0; movcc %0, #0" \
+ __asm__(".syntax unified\n" \
+ "adds %1, %2, %3; sbcscc %1, %1, %0; movcc %0, #0" \
: "=&r" (flag), "=&r" (roksum) \
: "r" (addr), "Ir" (size), "0" (current_thread_info()->addr_limit) \
: "cc"); \
--
2.20.1
Powered by blists - more mailing lists