summaryrefslogtreecommitdiff
path: root/arch/s390/include/asm/bitops.h
diff options
context:
space:
mode:
authorHeiko Carstens <hca@linux.ibm.com>2021-06-09 22:59:13 +0200
committerVasily Gorbik <gor@linux.ibm.com>2021-06-18 16:41:21 +0200
commit4f38c7aefed3c5c4e0d57837ad4c81cfad05df50 (patch)
tree5cde097287dd15883ba140ab2acc0d601ee2c259 /arch/s390/include/asm/bitops.h
parentc4655a2098236d36c5b0678e56c9ea04308b45ed (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.h10
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;
}
}