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