atomic: use <linux/atomic.h>
[linux-2.6/next.git] / arch / alpha / lib / ev6-clear_page.S
blobadf4f7be0e2b6d6792e420e3b40af21ff8f449ca
1 /*
2  * arch/alpha/lib/ev6-clear_page.S
3  *
4  * Zero an entire page.
5  */
7         .text
8         .align 4
9         .global clear_page
10         .ent clear_page
11 clear_page:
12         .prologue 0
14         lda     $0,128
15         lda     $1,125
16         addq    $16,64,$2
17         addq    $16,128,$3
19         addq    $16,192,$17
20         wh64    ($16)
21         wh64    ($2)
22         wh64    ($3)
24 1:      wh64    ($17)
25         stq     $31,0($16)
26         subq    $0,1,$0
27         subq    $1,1,$1
29         stq     $31,8($16)
30         stq     $31,16($16)
31         addq    $17,64,$2
32         nop
34         stq     $31,24($16)
35         stq     $31,32($16)
36         cmovgt  $1,$2,$17
37         nop
39         stq     $31,40($16)
40         stq     $31,48($16)
41         nop
42         nop
44         stq     $31,56($16)
45         addq    $16,64,$16
46         nop
47         bne     $0,1b
49         ret
50         nop
51         nop
52         nop
54         .end clear_page