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