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:
committed by
Vasily Gorbik
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)
|
static inline void copy_page(void *to, void *from)
|
||||||
{
|
{
|
||||||
register void *reg2 asm ("2") = to;
|
union register_pair dst, src;
|
||||||
register unsigned long reg3 asm ("3") = 0x1000;
|
|
||||||
register void *reg4 asm ("4") = from;
|
dst.even = (unsigned long) to;
|
||||||
register unsigned long reg5 asm ("5") = 0xb0001000;
|
dst.odd = 0x1000;
|
||||||
|
src.even = (unsigned long) from;
|
||||||
|
src.odd = 0xb0001000;
|
||||||
|
|
||||||
asm volatile(
|
asm volatile(
|
||||||
" mvcl 2,4"
|
" mvcl %[dst],%[src]"
|
||||||
: "+d" (reg2), "+d" (reg3), "+d" (reg4), "+d" (reg5)
|
: [dst] "+&d" (dst.pair), [src] "+&d" (src.pair)
|
||||||
: : "memory", "cc");
|
: : "memory", "cc");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user