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