about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/thread/mips/clone.s5
-rw-r--r--src/thread/mips64/clone.s5
-rw-r--r--src/thread/mipsn32/clone.s5
3 files changed, 12 insertions, 3 deletions
diff --git a/src/thread/mips/clone.s b/src/thread/mips/clone.s
index 37dddf57..30a0146b 100644
--- a/src/thread/mips/clone.s
+++ b/src/thread/mips/clone.s
@@ -28,5 +28,8 @@ __clone:
 	nop
 1:	lw $25, 0($sp)
 	lw $4, 4($sp)
-	jr $25
+	jalr $25
 	nop
+	move $4, $2
+	li $2, 4001
+	syscall
diff --git a/src/thread/mips64/clone.s b/src/thread/mips64/clone.s
index 229d2677..1b71e07c 100644
--- a/src/thread/mips64/clone.s
+++ b/src/thread/mips64/clone.s
@@ -26,5 +26,8 @@ __clone:
 	nop
 1:	ld	$25, 0($sp)	# function pointer
 	ld	$4, 8($sp)	# argument pointer
-	jr	$25		# call the user's function
+	jalr	$25		# call the user's function
 	nop
+	move 	$4, $2
+	li	$2, 5058
+	syscall
diff --git a/src/thread/mipsn32/clone.s b/src/thread/mipsn32/clone.s
index 51035852..ebf5dbea 100644
--- a/src/thread/mipsn32/clone.s
+++ b/src/thread/mipsn32/clone.s
@@ -26,5 +26,8 @@ __clone:
 	nop
 1:	lw	$25, 0($sp)	# function pointer
 	lw	$4, 4($sp)	# argument pointer
-	jr	$25		# call the user's function
+	jalr	$25		# call the user's function
 	nop
+	move 	$4, $2
+	li	$2, 6058
+	syscall