]> Git Repo - linux.git/blob - arch/loongarch/mm/page.S
Merge tag 'amd-drm-next-6.5-2023-06-09' of https://gitlab.freedesktop.org/agd5f/linux...
[linux.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         jr      ra
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         jr      ra
83 SYM_FUNC_END(copy_page)
84 EXPORT_SYMBOL(copy_page)
This page took 0.037327 seconds and 4 git commands to generate.