Commit 6a7b4e4e authored by Heiko Carstens's avatar Heiko Carstens Committed by Vasily Gorbik

s390/sthyi: use register pair instead of register asm

Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent dda74578
...@@ -395,19 +395,18 @@ static void fill_diag(struct sthyi_sctns *sctns) ...@@ -395,19 +395,18 @@ static void fill_diag(struct sthyi_sctns *sctns)
static int sthyi(u64 vaddr, u64 *rc) static int sthyi(u64 vaddr, u64 *rc)
{ {
register u64 code asm("0") = 0; union register_pair r1 = { .even = 0, }; /* subcode */
register u64 addr asm("2") = vaddr; union register_pair r2 = { .even = vaddr, };
register u64 rcode asm("3");
int cc; int cc;
asm volatile( asm volatile(
".insn rre,0xB2560000,%[code],%[addr]\n" ".insn rre,0xB2560000,%[r1],%[r2]\n"
"ipm %[cc]\n" "ipm %[cc]\n"
"srl %[cc],28\n" "srl %[cc],28\n"
: [cc] "=d" (cc), "=d" (rcode) : [cc] "=&d" (cc), [r2] "+&d" (r2.pair)
: [code] "d" (code), [addr] "a" (addr) : [r1] "d" (r1.pair)
: "memory", "cc"); : "memory", "cc");
*rc = rcode; *rc = r2.odd;
return cc; return cc;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment