Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
[cris-mirror.git] / arch / alpha / lib / copy_page.S
blob5439a30c77d069ac50c7c97ab333e92d5b378ae1
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
15         lda     $18,128
16         nop
17         unop
18         nop
20 1:      ldq     $0,0($17)
21         ldq     $1,8($17)
22         ldq     $2,16($17)
23         ldq     $3,24($17)
25         ldq     $4,32($17)
26         ldq     $5,40($17)
27         ldq     $6,48($17)
28         ldq     $7,56($17)
30         stq     $0,0($16)
31         subq    $18,1,$18
32         stq     $1,8($16)
33         addq    $17,64,$17
35         stq     $2,16($16)
36         stq     $3,24($16)
37         stq     $4,32($16)
38         stq     $5,40($16)
40         stq     $6,48($16)
41         stq     $7,56($16)
42         addq    $16,64,$16
43         bne     $18, 1b
45         ret
46         nop
47         unop
48         nop
50         .end copy_page
51         EXPORT_SYMBOL(copy_page)