Message ID | 20190408212648.2407234-9-arnd@arndb.de |
---|---|
State | Accepted |
Commit | 0a113efc3b48e9a8952e3c6e19dfdcc48b62226f |
Headers | show |
Series | [01/12] s390: remove -fno-strength-reduce flag | expand |
On Mon, 8 Apr 2019 23:26:22 +0200 Arnd Bergmann <arnd@arndb.de> wrote: > clang fails to use the %O and %R inline assembly modifiers > the same way as gcc, leading to build failures with every use > of __load_psw_mask(): > > /tmp/nmi-4a9f80.s: Assembler messages: > /tmp/nmi-4a9f80.s:571: Error: junk at end of line: `+8(160(%r11))' > /tmp/nmi-4a9f80.s:626: Error: junk at end of line: `+8(160(%r11))' > > Replace these with a more conventional way of passing the addresses > that should work with both clang and gcc. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Added to s390/linux:features for the next merge window. Thanks. -- blue skies, Martin. "Reality continues to ruin my life." - Calvin.
diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h index 81038ab357ce..700c650ffd4f 100644 --- a/arch/s390/include/asm/processor.h +++ b/arch/s390/include/asm/processor.h @@ -339,10 +339,10 @@ static __no_kasan_or_inline void __load_psw_mask(unsigned long mask) asm volatile( " larl %0,1f\n" - " stg %0,%O1+8(%R1)\n" - " lpswe %1\n" + " stg %0,%1\n" + " lpswe %2\n" "1:" - : "=&d" (addr), "=Q" (psw) : "Q" (psw) : "memory", "cc"); + : "=&d" (addr), "=Q" (psw.addr) : "Q" (psw) : "memory", "cc"); } /*
clang fails to use the %O and %R inline assembly modifiers the same way as gcc, leading to build failures with every use of __load_psw_mask(): /tmp/nmi-4a9f80.s: Assembler messages: /tmp/nmi-4a9f80.s:571: Error: junk at end of line: `+8(160(%r11))' /tmp/nmi-4a9f80.s:626: Error: junk at end of line: `+8(160(%r11))' Replace these with a more conventional way of passing the addresses that should work with both clang and gcc. Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- arch/s390/include/asm/processor.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -- 2.20.0