^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) // Copyright (C) 2005-2017 Andes Technology Corporation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #include <linux/linkage.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #include <asm/export.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #include <asm/page.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) .text
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) ENTRY(copy_page)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) pushm $r2, $r10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) movi $r2, PAGE_SIZE >> 5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) .Lcopy_loop:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) lmw.bim $r3, [$r1], $r10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) smw.bim $r3, [$r0], $r10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) subi45 $r2, #1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) bnez38 $r2, .Lcopy_loop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) popm $r2, $r10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) ret
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) ENDPROC(copy_page)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) EXPORT_SYMBOL(copy_page)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) ENTRY(clear_page)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) pushm $r1, $r9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) movi $r1, PAGE_SIZE >> 5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) movi55 $r2, #0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) movi55 $r3, #0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) movi55 $r4, #0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) movi55 $r5, #0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) movi55 $r6, #0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) movi55 $r7, #0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) movi55 $r8, #0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) movi55 $r9, #0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) .Lclear_loop:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) smw.bim $r2, [$r0], $r9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) subi45 $r1, #1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) bnez38 $r1, .Lclear_loop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) popm $r1, $r9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) ret
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) ENDPROC(clear_page)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) EXPORT_SYMBOL(clear_page)