Merge branch 'for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
[sfrench/cifs-2.6.git] / arch / alpha / lib / copy_page.S
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * arch/alpha/lib/copy_page.S
4  *
5  * Copy an entire page.
6  */
7 #include <asm/export.h>
8         .text
9         .align 4
10         .global copy_page
11         .ent copy_page
12 copy_page:
13         .prologue 0
14
15         lda     $18,128
16         nop
17         unop
18         nop
19
20 1:      ldq     $0,0($17)
21         ldq     $1,8($17)
22         ldq     $2,16($17)
23         ldq     $3,24($17)
24
25         ldq     $4,32($17)
26         ldq     $5,40($17)
27         ldq     $6,48($17)
28         ldq     $7,56($17)
29
30         stq     $0,0($16)
31         subq    $18,1,$18
32         stq     $1,8($16)
33         addq    $17,64,$17
34
35         stq     $2,16($16)
36         stq     $3,24($16)
37         stq     $4,32($16)
38         stq     $5,40($16)
39
40         stq     $6,48($16)
41         stq     $7,56($16)
42         addq    $16,64,$16
43         bne     $18, 1b
44
45         ret
46         nop
47         unop
48         nop
49
50         .end copy_page
51         EXPORT_SYMBOL(copy_page)