162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * arch/alpha/lib/copy_page.S
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copy an entire page.
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci#include <linux/export.h>
862306a36Sopenharmony_ci	.text
962306a36Sopenharmony_ci	.align 4
1062306a36Sopenharmony_ci	.global copy_page
1162306a36Sopenharmony_ci	.ent copy_page
1262306a36Sopenharmony_cicopy_page:
1362306a36Sopenharmony_ci	.prologue 0
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci	lda	$18,128
1662306a36Sopenharmony_ci	nop
1762306a36Sopenharmony_ci	unop
1862306a36Sopenharmony_ci	nop
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci1:	ldq	$0,0($17)
2162306a36Sopenharmony_ci	ldq	$1,8($17)
2262306a36Sopenharmony_ci	ldq	$2,16($17)
2362306a36Sopenharmony_ci	ldq	$3,24($17)
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	ldq	$4,32($17)
2662306a36Sopenharmony_ci	ldq	$5,40($17)
2762306a36Sopenharmony_ci	ldq	$6,48($17)
2862306a36Sopenharmony_ci	ldq	$7,56($17)
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	stq	$0,0($16)
3162306a36Sopenharmony_ci	subq	$18,1,$18
3262306a36Sopenharmony_ci	stq	$1,8($16)
3362306a36Sopenharmony_ci	addq	$17,64,$17
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci	stq	$2,16($16)
3662306a36Sopenharmony_ci	stq	$3,24($16)
3762306a36Sopenharmony_ci	stq	$4,32($16)
3862306a36Sopenharmony_ci	stq	$5,40($16)
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci	stq	$6,48($16)
4162306a36Sopenharmony_ci	stq	$7,56($16)
4262306a36Sopenharmony_ci	addq	$16,64,$16
4362306a36Sopenharmony_ci	bne	$18, 1b
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci	ret
4662306a36Sopenharmony_ci	nop
4762306a36Sopenharmony_ci	unop
4862306a36Sopenharmony_ci	nop
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci	.end copy_page
5162306a36Sopenharmony_ci	EXPORT_SYMBOL(copy_page)
52