GNU Linux-libre 5.13.14-gnu1
[releases.git] / arch / mips / mm / page-funcs.S
1 /*
2  * This file is subject to the terms and conditions of the GNU General Public
3  * License.  See the file "COPYING" in the main directory of this archive
4  * for more details.
5  *
6  * Micro-assembler generated clear_page/copy_page functions.
7  *
8  * Copyright (C) 2012  MIPS Technologies, Inc.
9  * Copyright (C) 2012  Ralf Baechle <ralf@linux-mips.org>
10  */
11 #include <asm/asm.h>
12 #include <asm/export.h>
13 #include <asm/regdef.h>
14
15 #ifdef CONFIG_SIBYTE_DMA_PAGEOPS
16 #define cpu_clear_page_function_name    clear_page_cpu
17 #define cpu_copy_page_function_name     copy_page_cpu
18 #else
19 #define cpu_clear_page_function_name    clear_page
20 #define cpu_copy_page_function_name     copy_page
21 #endif
22
23 /*
24  * Maximum sizes:
25  *
26  * R4000 128 bytes S-cache:             0x058 bytes
27  * R4600 v1.7:                          0x05c bytes
28  * R4600 v2.0:                          0x060 bytes
29  * With prefetching, 16 word strides    0x120 bytes
30  */
31 EXPORT(__clear_page_start)
32 LEAF(cpu_clear_page_function_name)
33 EXPORT_SYMBOL(cpu_clear_page_function_name)
34 1:      j       1b              /* Dummy, will be replaced. */
35         .space 288
36 END(cpu_clear_page_function_name)
37 EXPORT(__clear_page_end)
38
39 /*
40  * Maximum sizes:
41  *
42  * R4000 128 bytes S-cache:             0x11c bytes
43  * R4600 v1.7:                          0x080 bytes
44  * R4600 v2.0:                          0x07c bytes
45  * With prefetching, 16 word strides    0x540 bytes
46  */
47 EXPORT(__copy_page_start)
48 LEAF(cpu_copy_page_function_name)
49 EXPORT_SYMBOL(cpu_copy_page_function_name)
50 1:      j       1b              /* Dummy, will be replaced. */
51         .space 1344
52 END(cpu_copy_page_function_name)
53 EXPORT(__copy_page_end)