aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Wilbert M. Villamor <lameguy64@gmail.com>2020-11-29 20:19:18 +0800
committerJohn Wilbert M. Villamor <lameguy64@gmail.com>2020-11-29 20:19:18 +0800
commit23a0e5e6fcdd31a56a305bd5c67fbd3cd4588b58 (patch)
treeae42bccd71315920731f9c95aa0e090ec46dd097
parent3d38a12ca171490e22c7b56cd19c008f2dadfb83 (diff)
parentb0659ad85b7aa6e74d2c3eac29281636a0c2bc5e (diff)
downloadpsn00bsdk-23a0e5e6fcdd31a56a305bd5c67fbd3cd4588b58.tar.gz
Merge branch 'master' of https://github.com/Lameguy64/PSn00bSDK
-rw-r--r--libpsn00b/libc/memmove.s21
1 files changed, 17 insertions, 4 deletions
diff --git a/libpsn00b/libc/memmove.s b/libpsn00b/libc/memmove.s
index d32e2ca..843ece7 100644
--- a/libpsn00b/libc/memmove.s
+++ b/libpsn00b/libc/memmove.s
@@ -10,20 +10,33 @@
.type memmove, @function
memmove:
move $v0, $a0
+ sltu $v1, $a0, $a1
+ blez $v1, .Linit_backward
+.Lloop_forward:
+ blez $a2, .Lexit
+ addi $a2, -1
+ lbu $v1, 0($a1)
+ addiu $a1, 1
+ sb $v1, 0($a0)
+ addiu $a0, 1
+ b .Lloop_forward
+ nop
+.Linit_backward:
addu $a0, $a2
addu $a1, $a2
addiu $a0, -1
addiu $a1, -1
-.Lloop:
+ b .Lloop_backward
+ nop
+.Lloop_backward:
blez $a2, .Lexit
addi $a2, -1
lbu $v1, 0($a1)
addiu $a1, -1
sb $v1, 0($a0)
addiu $a0, -1
- b .Lloop
+ b .Lloop_backward
nop
.Lexit:
jr $ra
- nop
- \ No newline at end of file
+ nop \ No newline at end of file