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