Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6] / arch / alpha / lib / ev6-clear_page.S
1 /*
2  * arch/alpha/lib/ev6-clear_page.S
3  *
4  * Zero an entire page.
5  */
6
7         .text
8         .align 4
9         .global clear_page
10         .ent clear_page
11 clear_page:
12         .prologue 0
13
14         lda     $0,128
15         lda     $1,125
16         addq    $16,64,$2
17         addq    $16,128,$3
18
19         addq    $16,192,$17
20         wh64    ($16)
21         wh64    ($2)
22         wh64    ($3)
23
24 1:      wh64    ($17)
25         stq     $31,0($16)
26         subq    $0,1,$0
27         subq    $1,1,$1
28
29         stq     $31,8($16)
30         stq     $31,16($16)
31         addq    $17,64,$2
32         nop
33
34         stq     $31,24($16)
35         stq     $31,32($16)
36         cmovgt  $1,$2,$17
37         nop
38
39         stq     $31,40($16)
40         stq     $31,48($16)
41         nop
42         nop
43
44         stq     $31,56($16)
45         addq    $16,64,$16
46         nop
47         bne     $0,1b
48
49         ret
50         nop
51         nop
52         nop
53
54         .end clear_page