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 <linux/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 | |