aboutsummaryrefslogtreecommitdiff
path: root/src/syscall/asm_linux_mips64x.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/syscall/asm_linux_mips64x.s')
-rw-r--r--src/syscall/asm_linux_mips64x.s24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/syscall/asm_linux_mips64x.s b/src/syscall/asm_linux_mips64x.s
index fadf1939e0b..994d7779fbe 100644
--- a/src/syscall/asm_linux_mips64x.s
+++ b/src/syscall/asm_linux_mips64x.s
@@ -10,6 +10,30 @@
// System calls for mips64, Linux
//
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JAL runtime·entersyscall(SB)
+ MOVV a1+8(FP), R4
+ MOVV a2+16(FP), R5
+ MOVV a3+24(FP), R6
+ MOVV a4+32(FP), R7
+ MOVV a5+40(FP), R8
+ MOVV a6+48(FP), R9
+ MOVV trap+0(FP), R2 // syscall entry
+ SYSCALL
+ BEQ R7, ok6
+ MOVV $-1, R1
+ MOVV R1, r1+56(FP) // r1
+ MOVV R0, r2+64(FP) // r2
+ MOVV R2, err+72(FP) // errno
+ JAL runtime·exitsyscall(SB)
+ RET
+ok6:
+ MOVV R2, r1+56(FP) // r1
+ MOVV R3, r2+64(FP) // r2
+ MOVV R0, err+72(FP) // errno
+ JAL runtime·exitsyscall(SB)
+ RET
+
// func rawVforkSyscall(trap, a1 uintptr) (r1, err uintptr)
TEXT ·rawVforkSyscall(SB),NOSPLIT|NOFRAME,$0-32
MOVV a1+8(FP), R4