aboutsummaryrefslogtreecommitdiff
path: root/arch/metag/lib/copy_page.S
blob: 91f7d461239cd33c2770e37a556cb2c167402cd2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        ! Copyright 2007,2008 Imagination Technologies Ltd.

#include <asm/page.h>

        .text
        .global	_copy_page
        .type   _copy_page,function
	!! D1Ar1 - to
	!! D0Ar2 - from
_copy_page:
	MOV  D0FrT,#PAGE_SIZE
$Lcopy_page_loop:
	GETL D0Re0,D1Re0,[D0Ar2++]
	GETL D0Ar6,D1Ar5,[D0Ar2++]
	SETL [D1Ar1++],D0Re0,D1Re0
	SETL [D1Ar1++],D0Ar6,D1Ar5
	SUBS D0FrT,D0FrT,#16
	BNZ  $Lcopy_page_loop
	MOV  PC,D1RtP
        .size	_copy_page,.-_copy_page