diff options
author | Heiko Carstens <hca@linux.ibm.com> | 2021-06-09 22:59:13 +0200 |
---|---|---|
committer | Vasily Gorbik <gor@linux.ibm.com> | 2021-06-18 16:41:21 +0200 |
commit | 4f38c7aefed3c5c4e0d57837ad4c81cfad05df50 (patch) | |
tree | 5cde097287dd15883ba140ab2acc0d601ee2c259 /arch/s390/include/asm/bitops.h | |
parent | c4655a2098236d36c5b0678e56c9ea04308b45ed (diff) |
s390/bitops: use register pair instead of register asm
Get rid of register asm statement and use a register pair.
This allows the compiler to allocate registers on its own.
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/bitops.h')
-rw-r--r-- | arch/s390/include/asm/bitops.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/s390/include/asm/bitops.h b/arch/s390/include/asm/bitops.h index 68da67d2c4c9..fd149480b6e2 100644 --- a/arch/s390/include/asm/bitops.h +++ b/arch/s390/include/asm/bitops.h @@ -299,13 +299,13 @@ static inline unsigned char __flogr(unsigned long word) } return bit; } else { - register unsigned long bit asm("4") = word; - register unsigned long out asm("5"); + union register_pair rp; + rp.even = word; asm volatile( - " flogr %[bit],%[bit]\n" - : [bit] "+d" (bit), [out] "=d" (out) : : "cc"); - return bit; + " flogr %[rp],%[rp]\n" + : [rp] "+d" (rp.pair) : : "cc"); + return rp.even; } } |