diff options
Diffstat (limited to 'arch/alpha/lib/copy_page.S')
-rw-r--r-- | arch/alpha/lib/copy_page.S | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/arch/alpha/lib/copy_page.S b/arch/alpha/lib/copy_page.S new file mode 100644 index 000000000000..9f3b97459cc6 --- /dev/null +++ b/arch/alpha/lib/copy_page.S | |||
@@ -0,0 +1,49 @@ | |||
1 | /* | ||
2 | * arch/alpha/lib/copy_page.S | ||
3 | * | ||
4 | * Copy an entire page. | ||
5 | */ | ||
6 | |||
7 | .text | ||
8 | .align 4 | ||
9 | .global copy_page | ||
10 | .ent copy_page | ||
11 | copy_page: | ||
12 | .prologue 0 | ||
13 | |||
14 | lda $18,128 | ||
15 | nop | ||
16 | unop | ||
17 | nop | ||
18 | |||
19 | 1: ldq $0,0($17) | ||
20 | ldq $1,8($17) | ||
21 | ldq $2,16($17) | ||
22 | ldq $3,24($17) | ||
23 | |||
24 | ldq $4,32($17) | ||
25 | ldq $5,40($17) | ||
26 | ldq $6,48($17) | ||
27 | ldq $7,56($17) | ||
28 | |||
29 | stq $0,0($16) | ||
30 | subq $18,1,$18 | ||
31 | stq $1,8($16) | ||
32 | addq $17,64,$17 | ||
33 | |||
34 | stq $2,16($16) | ||
35 | stq $3,24($16) | ||
36 | stq $4,32($16) | ||
37 | stq $5,40($16) | ||
38 | |||
39 | stq $6,48($16) | ||
40 | stq $7,56($16) | ||
41 | addq $16,64,$16 | ||
42 | bne $18, 1b | ||
43 | |||
44 | ret | ||
45 | nop | ||
46 | unop | ||
47 | nop | ||
48 | |||
49 | .end copy_page | ||