18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci// Copyright (C) 2005-2017 Andes Technology Corporation 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci#include <linux/linkage.h> 58c2ecf20Sopenharmony_ci#include <asm/export.h> 68c2ecf20Sopenharmony_ci#include <asm/page.h> 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci .text 98c2ecf20Sopenharmony_ciENTRY(copy_page) 108c2ecf20Sopenharmony_ci pushm $r2, $r10 118c2ecf20Sopenharmony_ci movi $r2, PAGE_SIZE >> 5 128c2ecf20Sopenharmony_ci.Lcopy_loop: 138c2ecf20Sopenharmony_ci lmw.bim $r3, [$r1], $r10 148c2ecf20Sopenharmony_ci smw.bim $r3, [$r0], $r10 158c2ecf20Sopenharmony_ci subi45 $r2, #1 168c2ecf20Sopenharmony_ci bnez38 $r2, .Lcopy_loop 178c2ecf20Sopenharmony_ci popm $r2, $r10 188c2ecf20Sopenharmony_ci ret 198c2ecf20Sopenharmony_ciENDPROC(copy_page) 208c2ecf20Sopenharmony_ciEXPORT_SYMBOL(copy_page) 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ciENTRY(clear_page) 238c2ecf20Sopenharmony_ci pushm $r1, $r9 248c2ecf20Sopenharmony_ci movi $r1, PAGE_SIZE >> 5 258c2ecf20Sopenharmony_ci movi55 $r2, #0 268c2ecf20Sopenharmony_ci movi55 $r3, #0 278c2ecf20Sopenharmony_ci movi55 $r4, #0 288c2ecf20Sopenharmony_ci movi55 $r5, #0 298c2ecf20Sopenharmony_ci movi55 $r6, #0 308c2ecf20Sopenharmony_ci movi55 $r7, #0 318c2ecf20Sopenharmony_ci movi55 $r8, #0 328c2ecf20Sopenharmony_ci movi55 $r9, #0 338c2ecf20Sopenharmony_ci.Lclear_loop: 348c2ecf20Sopenharmony_ci smw.bim $r2, [$r0], $r9 358c2ecf20Sopenharmony_ci subi45 $r1, #1 368c2ecf20Sopenharmony_ci bnez38 $r1, .Lclear_loop 378c2ecf20Sopenharmony_ci popm $r1, $r9 388c2ecf20Sopenharmony_ci ret 398c2ecf20Sopenharmony_ciENDPROC(clear_page) 408c2ecf20Sopenharmony_ciEXPORT_SYMBOL(clear_page) 41