URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [newlib-1.18.0/] [newlib/] [libc/] [machine/] [rx/] [memmove.S] - Rev 326
Go to most recent revision | Compare with Previous | Blame | View Log
.file "memmove.S"
.section .text
.global _memmove
.type _memmove,@function
_memmove:
mov r1, r4 ; Save a copy of DEST
cmp r1, r2
blt 2f ; If SRC (r2) is less than DEST (r1) then copy backwards
smovf
1:
mov r4, r1 ; Return DEST
rts
2:
add r3, r1 ; The SMOVB instructions requires the DEST in r1 and the
add r3, r2 ; SRC in r2 but it needs them to point the last bytes of
sub #1, r2 ; the regions involved not the first bytes, hence these
sub #1, r1 ; additions and subtractions.
smovb
bra 1b
Go to most recent revision | Compare with Previous | Blame | View Log