aboutsummaryrefslogtreecommitdiff
path: root/lib.s
diff options
context:
space:
mode:
authorTeddy <ted.sybil@gmail.com>2014-05-04 12:40:30 +0800
committerTeddy <ted.sybil@gmail.com>2014-05-04 12:40:30 +0800
commit2c9342037673e5d979cb42cfea6b82436e0cc912 (patch)
tree4e2a581053b28a5887de476b7d6b548f0907ee23 /lib.s
parent40bda56596d46c65d3d2a37e96f1b5313ad9fe57 (diff)
memcpy
Diffstat (limited to 'lib.s')
-rw-r--r--lib.s14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib.s b/lib.s
index 7c025b5..c8c4b2e 100644
--- a/lib.s
+++ b/lib.s
@@ -153,3 +153,17 @@ _func_malloc:
li $2, 9
syscall
jr $31
+_func_memcpy: # the copied mem must be 4-aligned
+ lw $8, 0($sp) # dest addr
+ lw $9, 4($sp) # src addr
+ lw $10, 8($sp) # size
+ j __COND
+__LOOP:
+ lw $2, 0($9)
+ sw $2, 0($8)
+ addiu $8, $8, 4
+ addiu $9, $9, 4
+ addiu $10, $10, -4
+__COND:
+ bnez $10, __LOOP
+ jr $31