54 lines
771 B
ArmAsm
54 lines
771 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
|
|
subl $sp, 0x60, $sp
|
|
ldi $4, 0x40($sp)
|
|
stl $4, 0($sp)
|
|
bic $4, 0x1f, $4
|
|
vstd $f16, 0($4)
|
|
|
|
/* Optimize by GUOY from SOC 2013-06-04 */
|
|
1:
|
|
vldd $f16, 0($17)
|
|
vstd_nc $f16, 0($16)
|
|
|
|
vldd $f16, 32($17)
|
|
vstd_nc $f16, 32($16)
|
|
|
|
vldd $f16, 64($17)
|
|
vstd_nc $f16, 64($16)
|
|
|
|
vldd $f16, 96($17)
|
|
vstd_nc $f16, 96($16)
|
|
|
|
ldwe $f31, 5*0x80($17)
|
|
subl $18, 1, $18
|
|
addl $17, 128, $17
|
|
|
|
addl $16, 128, $16
|
|
bne $18, 1b
|
|
|
|
memb
|
|
ldl $4, 0($sp)
|
|
ldi $4, 0x40($sp)
|
|
bic $4, 0x1f, $4
|
|
vldd $f16, 0($4)
|
|
addl $sp, 0x60, $sp
|
|
ret
|
|
|
|
.end copy_page
|
|
EXPORT_SYMBOL(copy_page)
|