xref: /openbmc/linux/arch/alpha/lib/copy_page.S (revision 00fc0e0d)
11da177e4SLinus Torvalds/*
21da177e4SLinus Torvalds * arch/alpha/lib/copy_page.S
31da177e4SLinus Torvalds *
41da177e4SLinus Torvalds * Copy an entire page.
51da177e4SLinus Torvalds */
600fc0e0dSAl Viro#include <asm/export.h>
71da177e4SLinus Torvalds	.text
81da177e4SLinus Torvalds	.align 4
91da177e4SLinus Torvalds	.global copy_page
101da177e4SLinus Torvalds	.ent copy_page
111da177e4SLinus Torvaldscopy_page:
121da177e4SLinus Torvalds	.prologue 0
131da177e4SLinus Torvalds
141da177e4SLinus Torvalds	lda	$18,128
151da177e4SLinus Torvalds	nop
161da177e4SLinus Torvalds	unop
171da177e4SLinus Torvalds	nop
181da177e4SLinus Torvalds
191da177e4SLinus Torvalds1:	ldq	$0,0($17)
201da177e4SLinus Torvalds	ldq	$1,8($17)
211da177e4SLinus Torvalds	ldq	$2,16($17)
221da177e4SLinus Torvalds	ldq	$3,24($17)
231da177e4SLinus Torvalds
241da177e4SLinus Torvalds	ldq	$4,32($17)
251da177e4SLinus Torvalds	ldq	$5,40($17)
261da177e4SLinus Torvalds	ldq	$6,48($17)
271da177e4SLinus Torvalds	ldq	$7,56($17)
281da177e4SLinus Torvalds
291da177e4SLinus Torvalds	stq	$0,0($16)
301da177e4SLinus Torvalds	subq	$18,1,$18
311da177e4SLinus Torvalds	stq	$1,8($16)
321da177e4SLinus Torvalds	addq	$17,64,$17
331da177e4SLinus Torvalds
341da177e4SLinus Torvalds	stq	$2,16($16)
351da177e4SLinus Torvalds	stq	$3,24($16)
361da177e4SLinus Torvalds	stq	$4,32($16)
371da177e4SLinus Torvalds	stq	$5,40($16)
381da177e4SLinus Torvalds
391da177e4SLinus Torvalds	stq	$6,48($16)
401da177e4SLinus Torvalds	stq	$7,56($16)
411da177e4SLinus Torvalds	addq	$16,64,$16
421da177e4SLinus Torvalds	bne	$18, 1b
431da177e4SLinus Torvalds
441da177e4SLinus Torvalds	ret
451da177e4SLinus Torvalds	nop
461da177e4SLinus Torvalds	unop
471da177e4SLinus Torvalds	nop
481da177e4SLinus Torvalds
491da177e4SLinus Torvalds	.end copy_page
5000fc0e0dSAl Viro	EXPORT_SYMBOL(copy_page)
51