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
12 copy_page:
13 	.prologue 0
14 
15 	lda	$18,128
16 	nop
17 	unop
18 	nop
19 
20 1:	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