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:
parent
ddd38fd261
commit
75c89a2bc6
|
@ -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");
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue