LoongArch: Use ABI names of registers where appropriate
[linux-block.git] / arch / loongarch / mm / page.S
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
4  */
5 #include <linux/linkage.h>
6 #include <asm/asm.h>
7 #include <asm/export.h>
8 #include <asm/page.h>
9 #include <asm/regdef.h>
10
11         .align 5
12 SYM_FUNC_START(clear_page)
13         lu12i.w  t0, 1 << (PAGE_SHIFT - 12)
14         add.d    t0, t0, a0
15 1:
16         st.d     zero, a0, 0
17         st.d     zero, a0, 8
18         st.d     zero, a0, 16
19         st.d     zero, a0, 24
20         st.d     zero, a0, 32
21         st.d     zero, a0, 40
22         st.d     zero, a0, 48
23         st.d     zero, a0, 56
24         addi.d   a0,   a0, 128
25         st.d     zero, a0, -64
26         st.d     zero, a0, -56
27         st.d     zero, a0, -48
28         st.d     zero, a0, -40
29         st.d     zero, a0, -32
30         st.d     zero, a0, -24
31         st.d     zero, a0, -16
32         st.d     zero, a0, -8
33         bne      t0,   a0, 1b
34
35         jirl     zero, ra, 0
36 SYM_FUNC_END(clear_page)
37 EXPORT_SYMBOL(clear_page)
38
39 .align 5
40 SYM_FUNC_START(copy_page)
41         lu12i.w  t8, 1 << (PAGE_SHIFT - 12)
42         add.d    t8, t8, a0
43 1:
44         ld.d     t0, a1,  0
45         ld.d     t1, a1,  8
46         ld.d     t2, a1,  16
47         ld.d     t3, a1,  24
48         ld.d     t4, a1,  32
49         ld.d     t5, a1,  40
50         ld.d     t6, a1,  48
51         ld.d     t7, a1,  56
52
53         st.d     t0, a0,  0
54         st.d     t1, a0,  8
55         ld.d     t0, a1,  64
56         ld.d     t1, a1,  72
57         st.d     t2, a0,  16
58         st.d     t3, a0,  24
59         ld.d     t2, a1,  80
60         ld.d     t3, a1,  88
61         st.d     t4, a0,  32
62         st.d     t5, a0,  40
63         ld.d     t4, a1,  96
64         ld.d     t5, a1,  104
65         st.d     t6, a0,  48
66         st.d     t7, a0,  56
67         ld.d     t6, a1,  112
68         ld.d     t7, a1,  120
69         addi.d   a0, a0,  128
70         addi.d   a1, a1,  128
71
72         st.d     t0, a0,  -64
73         st.d     t1, a0,  -56
74         st.d     t2, a0,  -48
75         st.d     t3, a0,  -40
76         st.d     t4, a0,  -32
77         st.d     t5, a0,  -24
78         st.d     t6, a0,  -16
79         st.d     t7, a0,  -8
80
81         bne      t8, a0, 1b
82         jirl     zero, ra, 0
83 SYM_FUNC_END(copy_page)
84 EXPORT_SYMBOL(copy_page)