1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* |
3 | * arch/alpha/lib/copy_page.S |
4 | * |
5 | * Copy an entire page. |
6 | */ |
7 | #include <linux/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) |
52 | |