diff options
author | Heiko Carstens <hca@linux.ibm.com> | 2021-06-17 10:26:57 +0200 |
---|---|---|
committer | Vasily Gorbik <gor@linux.ibm.com> | 2021-06-28 11:18:28 +0200 |
commit | cf1ffce243bc5a6f173621e5fa5afca67993e2c7 (patch) | |
tree | 3bf14256f2f129a1d9bfc5df43ec77b0a263c8b9 /arch/s390/hypfs/hypfs_sprp.c | |
parent | 2a18a5502648128288ed62edf02018ffc08c69d6 (diff) |
s390/hypfs: use register pair instead 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/hypfs/hypfs_sprp.c')
-rw-r--r-- | arch/s390/hypfs/hypfs_sprp.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/arch/s390/hypfs/hypfs_sprp.c b/arch/s390/hypfs/hypfs_sprp.c index 7d9fb496d155..f5f7e78ddc0c 100644 --- a/arch/s390/hypfs/hypfs_sprp.c +++ b/arch/s390/hypfs/hypfs_sprp.c @@ -25,14 +25,13 @@ static inline unsigned long __hypfs_sprp_diag304(void *data, unsigned long cmd) { - register unsigned long _data asm("2") = (unsigned long) data; - register unsigned long _rc asm("3"); - register unsigned long _cmd asm("4") = cmd; + union register_pair r1 = { .even = (unsigned long)data, }; - asm volatile("diag %1,%2,0x304\n" - : "=d" (_rc) : "d" (_data), "d" (_cmd) : "memory"); - - return _rc; + asm volatile("diag %[r1],%[r3],0x304\n" + : [r1] "+&d" (r1.pair) + : [r3] "d" (cmd) + : "memory"); + return r1.odd; } static unsigned long hypfs_sprp_diag304(void *data, unsigned long cmd) |