diff options
| author | John Wilbert M. Villamor <lameguy64@gmail.com> | 2019-04-06 10:11:07 +0800 |
|---|---|---|
| committer | John Wilbert M. Villamor <lameguy64@gmail.com> | 2019-04-06 10:11:07 +0800 |
| commit | f3e040230772f978540a71aea43dfde200992922 (patch) | |
| tree | bd8ca31b72dd01e24980b073854e263589530f56 /libpsn00b/libc/memcpy.s | |
| download | psn00bsdk-f3e040230772f978540a71aea43dfde200992922.tar.gz | |
First commit
Diffstat (limited to 'libpsn00b/libc/memcpy.s')
| -rw-r--r-- | libpsn00b/libc/memcpy.s | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/libpsn00b/libc/memcpy.s b/libpsn00b/libc/memcpy.s new file mode 100644 index 0000000..e1a4e30 --- /dev/null +++ b/libpsn00b/libc/memcpy.s @@ -0,0 +1,28 @@ +# High speed ASM memcpy implementation by Lameguy64 +# +# Part of PSn00bSDK + +.set noreorder + +.section .text + +# Arguments: +# a0 - destination address +# a1 - source adress +# a2 - bytes to copy +.global memcpy +.type memcpy, @function +memcpy: + move $v0, $a0 +.loop: + blez $a2, .exit + addi $a2, -1 + lbu $a3, 0($a1) + addiu $a1, 1 + sb $a3, 0($a0) + b .loop + addiu $a0, 1 +.exit: + jr $ra + nop +
\ No newline at end of file |
