Merge tag 'apparmor-pr-2018-06-13' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / arch / nds32 / lib / copy_page.S
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)