xref: /openbmc/linux/arch/alpha/lib/copy_page.S (revision 90a53e44)
1/*
2 * arch/alpha/lib/copy_page.S
3 *
4 * Copy an entire page.
5 */
6#include <asm/export.h>
7	.text
8	.align 4
9	.global copy_page
10	.ent copy_page
11copy_page:
12	.prologue 0
13
14	lda	$18,128
15	nop
16	unop
17	nop
18
191:	ldq	$0,0($17)
20	ldq	$1,8($17)
21	ldq	$2,16($17)
22	ldq	$3,24($17)
23
24	ldq	$4,32($17)
25	ldq	$5,40($17)
26	ldq	$6,48($17)
27	ldq	$7,56($17)
28
29	stq	$0,0($16)
30	subq	$18,1,$18
31	stq	$1,8($16)
32	addq	$17,64,$17
33
34	stq	$2,16($16)
35	stq	$3,24($16)
36	stq	$4,32($16)
37	stq	$5,40($16)
38
39	stq	$6,48($16)
40	stq	$7,56($16)
41	addq	$16,64,$16
42	bne	$18, 1b
43
44	ret
45	nop
46	unop
47	nop
48
49	.end copy_page
50	EXPORT_SYMBOL(copy_page)
51