s390/page: 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>
This commit is contained in:
Heiko Carstens 2021-06-09 22:59:13 +02:00 committed by Vasily Gorbik
parent ddd38fd261
commit 75c89a2bc6
1 changed files with 9 additions and 6 deletions

View File

@ -55,13 +55,16 @@ static inline void storage_key_init_range(unsigned long start, unsigned long end
*/
static inline void copy_page(void *to, void *from)
{
register void *reg2 asm ("2") = to;
register unsigned long reg3 asm ("3") = 0x1000;
register void *reg4 asm ("4") = from;
register unsigned long reg5 asm ("5") = 0xb0001000;
union register_pair dst, src;
dst.even = (unsigned long) to;
dst.odd = 0x1000;
src.even = (unsigned long) from;
src.odd = 0xb0001000;
asm volatile(
" mvcl 2,4"
: "+d" (reg2), "+d" (reg3), "+d" (reg4), "+d" (reg5)
" mvcl %[dst],%[src]"
: [dst] "+&d" (dst.pair), [src] "+&d" (src.pair)
: : "memory", "cc");
}