xref: /linux/arch/alpha/lib/ev6-clear_page.S (revision 4be5e8648b0c287aefc6ac3f3a0b12c696054f43)
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
12clear_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
251:	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