Greentime Hu | 664eec4 | 2017-10-24 15:25:00 +0800 | [diff] [blame] | 1 | // SPDX-License-Identifier: GPL-2.0 |
| 2 | // Copyright (C) 2005-2017 Andes Technology Corporation |
| 3 | |
| 4 | #include <linux/linkage.h> |
Greentime Hu | e3f4624 | 2018-04-19 15:45:45 +0800 | [diff] [blame] | 5 | #include <asm/export.h> |
Greentime Hu | 664eec4 | 2017-10-24 15:25:00 +0800 | [diff] [blame] | 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) |
Greentime Hu | e3f4624 | 2018-04-19 15:45:45 +0800 | [diff] [blame] | 20 | EXPORT_SYMBOL(copy_page) |
Greentime Hu | 664eec4 | 2017-10-24 15:25:00 +0800 | [diff] [blame] | 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) |
Greentime Hu | e3f4624 | 2018-04-19 15:45:45 +0800 | [diff] [blame] | 40 | EXPORT_SYMBOL(clear_page) |