72 lines
1017 B
ArmAsm
72 lines
1017 B
ArmAsm
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* arch/sw/lib/copy_page.S
|
|
*
|
|
* Copy an entire page.
|
|
*/
|
|
#include <asm/export.h>
|
|
|
|
.text
|
|
.align 4
|
|
.global copy_page
|
|
.ent copy_page
|
|
copy_page:
|
|
.prologue 0
|
|
|
|
ldi $18, 64
|
|
|
|
/* Optimize by GUOY from SOC 2013-06-04 */
|
|
1:
|
|
ldl $0, 0($17)
|
|
ldl $1, 8($17)
|
|
ldl $2, 16($17)
|
|
ldl $3, 24($17)
|
|
|
|
stl_nc $0, 0($16)
|
|
stl_nc $1, 8($16)
|
|
stl_nc $2, 16($16)
|
|
stl_nc $3, 24($16)
|
|
|
|
ldl $4, 32($17)
|
|
ldl $5, 40($17)
|
|
ldl $6, 48($17)
|
|
ldl $7, 56($17)
|
|
|
|
stl_nc $4, 32($16)
|
|
stl_nc $5, 40($16)
|
|
stl_nc $6, 48($16)
|
|
stl_nc $7, 56($16)
|
|
|
|
ldl $0, 64($17)
|
|
ldl $1, 72($17)
|
|
ldl $2, 80($17)
|
|
ldl $3, 88($17)
|
|
|
|
stl_nc $0, 64($16)
|
|
stl_nc $1, 72($16)
|
|
stl_nc $2, 80($16)
|
|
stl_nc $3, 88($16)
|
|
|
|
ldl $4, 96($17)
|
|
ldl $5, 104($17)
|
|
ldl $6, 112($17)
|
|
ldl $7, 120($17)
|
|
|
|
stl_nc $4, 96($16)
|
|
stl_nc $5, 104($16)
|
|
stl_nc $6, 112($16)
|
|
stl_nc $7, 120($16)
|
|
|
|
ldwe $f31, 3 * 0x80($17)
|
|
subl $18, 1, $18
|
|
addl $17, 128, $17
|
|
|
|
addl $16, 128, $16
|
|
bne $18, 1b
|
|
|
|
memb
|
|
ret
|
|
|
|
.end copy_page
|
|
EXPORT_SYMBOL(copy_page)
|