aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/include/asm/facility.h
diff options
context:
space:
mode:
authorHeiko Carstens <hca@linux.ibm.com>2021-06-14 21:30:44 +0200
committerVasily Gorbik <gor@linux.ibm.com>2021-06-18 16:41:23 +0200
commitd99aea73b4de2357095e1059637ef5427e9473e8 (patch)
tree08c2f570081446203a43c37a45835e9b3f7f60bc /arch/s390/include/asm/facility.h
parents390/uaccess: get rid of register asm (diff)
downloadlinux-dev-d99aea73b4de2357095e1059637ef5427e9473e8.tar.xz
linux-dev-d99aea73b4de2357095e1059637ef5427e9473e8.zip
s390/facility: get rid of register asm
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/facility.h')
-rw-r--r--arch/s390/include/asm/facility.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/s390/include/asm/facility.h b/arch/s390/include/asm/facility.h
index 948e2616fe9c..e3aa354ab9f4 100644
--- a/arch/s390/include/asm/facility.h
+++ b/arch/s390/include/asm/facility.h
@@ -64,13 +64,15 @@ static inline int test_facility(unsigned long nr)
static inline unsigned long __stfle_asm(u64 *stfle_fac_list, int size)
{
- register unsigned long reg0 asm("0") = size - 1;
+ unsigned long reg0 = size - 1;
asm volatile(
- ".insn s,0xb2b00000,0(%1)" /* stfle */
- : "+d" (reg0)
- : "a" (stfle_fac_list)
- : "memory", "cc");
+ " lgr 0,%[reg0]\n"
+ " .insn s,0xb2b00000,%[list]\n" /* stfle */
+ " lgr %[reg0],0\n"
+ : [reg0] "+&d" (reg0), [list] "+Q" (*stfle_fac_list)
+ :
+ : "memory", "cc", "0");
return reg0;
}