aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/sys_openbsd_mips64.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/sys_openbsd_mips64.s')
-rw-r--r--src/runtime/sys_openbsd_mips64.s388
1 files changed, 0 insertions, 388 deletions
diff --git a/src/runtime/sys_openbsd_mips64.s b/src/runtime/sys_openbsd_mips64.s
deleted file mode 100644
index 7ac0db0480..0000000000
--- a/src/runtime/sys_openbsd_mips64.s
+++ /dev/null
@@ -1,388 +0,0 @@
-// Copyright 2020 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-//
-// System calls and other sys.stuff for mips64, OpenBSD
-// /usr/src/sys/kern/syscalls.master for syscall numbers.
-//
-
-#include "go_asm.h"
-#include "go_tls.h"
-#include "textflag.h"
-
-#define CLOCK_REALTIME $0
-#define CLOCK_MONOTONIC $3
-
-// Exit the entire program (like C exit)
-TEXT runtime·exit(SB),NOSPLIT|NOFRAME,$0
- MOVW code+0(FP), R4 // arg 1 - status
- MOVV $1, R2 // sys_exit
- SYSCALL
- BEQ R7, 3(PC)
- MOVV $0, R2 // crash on syscall failure
- MOVV R2, (R2)
- RET
-
-// func exitThread(wait *atomic.Uint32)
-TEXT runtime·exitThread(SB),NOSPLIT,$0
- MOVV wait+0(FP), R4 // arg 1 - notdead
- MOVV $302, R2 // sys___threxit
- SYSCALL
- MOVV $0, R2 // crash on syscall failure
- MOVV R2, (R2)
- JMP 0(PC)
-
-TEXT runtime·open(SB),NOSPLIT|NOFRAME,$0
- MOVV name+0(FP), R4 // arg 1 - path
- MOVW mode+8(FP), R5 // arg 2 - mode
- MOVW perm+12(FP), R6 // arg 3 - perm
- MOVV $5, R2 // sys_open
- SYSCALL
- BEQ R7, 2(PC)
- MOVW $-1, R2
- MOVW R2, ret+16(FP)
- RET
-
-TEXT runtime·closefd(SB),NOSPLIT|NOFRAME,$0
- MOVW fd+0(FP), R4 // arg 1 - fd
- MOVV $6, R2 // sys_close
- SYSCALL
- BEQ R7, 2(PC)
- MOVW $-1, R2
- MOVW R2, ret+8(FP)
- RET
-
-TEXT runtime·read(SB),NOSPLIT|NOFRAME,$0
- MOVW fd+0(FP), R4 // arg 1 - fd
- MOVV p+8(FP), R5 // arg 2 - buf
- MOVW n+16(FP), R6 // arg 3 - nbyte
- MOVV $3, R2 // sys_read
- SYSCALL
- BEQ R7, 2(PC)
- SUBVU R2, R0, R2 // caller expects negative errno
- MOVW R2, ret+24(FP)
- RET
-
-// func pipe2(flags int32) (r, w int32, errno int32)
-TEXT runtime·pipe2(SB),NOSPLIT|NOFRAME,$0-20
- MOVV $r+8(FP), R4
- MOVW flags+0(FP), R5
- MOVV $101, R2 // sys_pipe2
- SYSCALL
- BEQ R7, 2(PC)
- SUBVU R2, R0, R2 // caller expects negative errno
- MOVW R2, errno+16(FP)
- RET
-
-TEXT runtime·write1(SB),NOSPLIT|NOFRAME,$0
- MOVV fd+0(FP), R4 // arg 1 - fd
- MOVV p+8(FP), R5 // arg 2 - buf
- MOVW n+16(FP), R6 // arg 3 - nbyte
- MOVV $4, R2 // sys_write
- SYSCALL
- BEQ R7, 2(PC)
- SUBVU R2, R0, R2 // caller expects negative errno
- MOVW R2, ret+24(FP)
- RET
-
-TEXT runtime·usleep(SB),NOSPLIT,$24-4
- MOVWU usec+0(FP), R3
- MOVV R3, R5
- MOVW $1000000, R4
- DIVVU R4, R3
- MOVV LO, R3
- MOVV R3, 8(R29) // tv_sec
- MOVW $1000, R4
- MULVU R3, R4
- MOVV LO, R4
- SUBVU R4, R5
- MOVV R5, 16(R29) // tv_nsec
-
- ADDV $8, R29, R4 // arg 1 - rqtp
- MOVV $0, R5 // arg 2 - rmtp
- MOVV $91, R2 // sys_nanosleep
- SYSCALL
- RET
-
-TEXT runtime·getthrid(SB),NOSPLIT,$0-4
- MOVV $299, R2 // sys_getthrid
- SYSCALL
- MOVW R2, ret+0(FP)
- RET
-
-TEXT runtime·thrkill(SB),NOSPLIT,$0-16
- MOVW tid+0(FP), R4 // arg 1 - tid
- MOVV sig+8(FP), R5 // arg 2 - signum
- MOVW $0, R6 // arg 3 - tcb
- MOVV $119, R2 // sys_thrkill
- SYSCALL
- RET
-
-TEXT runtime·raiseproc(SB),NOSPLIT,$0
- MOVV $20, R4 // sys_getpid
- SYSCALL
- MOVV R2, R4 // arg 1 - pid
- MOVW sig+0(FP), R5 // arg 2 - signum
- MOVV $122, R2 // sys_kill
- SYSCALL
- RET
-
-TEXT runtime·mmap(SB),NOSPLIT,$0
- MOVV addr+0(FP), R4 // arg 1 - addr
- MOVV n+8(FP), R5 // arg 2 - len
- MOVW prot+16(FP), R6 // arg 3 - prot
- MOVW flags+20(FP), R7 // arg 4 - flags
- MOVW fd+24(FP), R8 // arg 5 - fd
- MOVW $0, R9 // arg 6 - pad
- MOVW off+28(FP), R10 // arg 7 - offset
- MOVV $197, R2 // sys_mmap
- SYSCALL
- MOVV $0, R4
- BEQ R7, 3(PC)
- MOVV R2, R4 // if error, move to R4
- MOVV $0, R2
- MOVV R2, p+32(FP)
- MOVV R4, err+40(FP)
- RET
-
-TEXT runtime·munmap(SB),NOSPLIT,$0
- MOVV addr+0(FP), R4 // arg 1 - addr
- MOVV n+8(FP), R5 // arg 2 - len
- MOVV $73, R2 // sys_munmap
- SYSCALL
- BEQ R7, 3(PC)
- MOVV $0, R2 // crash on syscall failure
- MOVV R2, (R2)
- RET
-
-TEXT runtime·madvise(SB),NOSPLIT,$0
- MOVV addr+0(FP), R4 // arg 1 - addr
- MOVV n+8(FP), R5 // arg 2 - len
- MOVW flags+16(FP), R6 // arg 2 - flags
- MOVV $75, R2 // sys_madvise
- SYSCALL
- BEQ R7, 2(PC)
- MOVW $-1, R2
- MOVW R2, ret+24(FP)
- RET
-
-TEXT runtime·setitimer(SB),NOSPLIT,$0
- MOVW mode+0(FP), R4 // arg 1 - mode
- MOVV new+8(FP), R5 // arg 2 - new value
- MOVV old+16(FP), R6 // arg 3 - old value
- MOVV $69, R2 // sys_setitimer
- SYSCALL
- RET
-
-// func walltime() (sec int64, nsec int32)
-TEXT runtime·walltime(SB), NOSPLIT, $32
- MOVW CLOCK_REALTIME, R4 // arg 1 - clock_id
- MOVV $8(R29), R5 // arg 2 - tp
- MOVV $87, R2 // sys_clock_gettime
- SYSCALL
-
- MOVV 8(R29), R4 // sec
- MOVV 16(R29), R5 // nsec
- MOVV R4, sec+0(FP)
- MOVW R5, nsec+8(FP)
-
- RET
-
-// int64 nanotime1(void) so really
-// void nanotime1(int64 *nsec)
-TEXT runtime·nanotime1(SB),NOSPLIT,$32
- MOVW CLOCK_MONOTONIC, R4 // arg 1 - clock_id
- MOVV $8(R29), R5 // arg 2 - tp
- MOVV $87, R2 // sys_clock_gettime
- SYSCALL
-
- MOVV 8(R29), R3 // sec
- MOVV 16(R29), R5 // nsec
-
- MOVV $1000000000, R4
- MULVU R4, R3
- MOVV LO, R3
- ADDVU R5, R3
- MOVV R3, ret+0(FP)
- RET
-
-TEXT runtime·sigaction(SB),NOSPLIT,$0
- MOVW sig+0(FP), R4 // arg 1 - signum
- MOVV new+8(FP), R5 // arg 2 - new sigaction
- MOVV old+16(FP), R6 // arg 3 - old sigaction
- MOVV $46, R2 // sys_sigaction
- SYSCALL
- BEQ R7, 3(PC)
- MOVV $3, R2 // crash on syscall failure
- MOVV R2, (R2)
- RET
-
-TEXT runtime·obsdsigprocmask(SB),NOSPLIT,$0
- MOVW how+0(FP), R4 // arg 1 - mode
- MOVW new+4(FP), R5 // arg 2 - new
- MOVV $48, R2 // sys_sigprocmask
- SYSCALL
- BEQ R7, 3(PC)
- MOVV $3, R2 // crash on syscall failure
- MOVV R2, (R2)
- MOVW R2, ret+8(FP)
- RET
-
-TEXT runtime·sigfwd(SB),NOSPLIT,$0-32
- MOVW sig+8(FP), R4
- MOVV info+16(FP), R5
- MOVV ctx+24(FP), R6
- MOVV fn+0(FP), R25 // Must use R25, needed for PIC code.
- CALL (R25)
- RET
-
-TEXT runtime·sigtramp(SB),NOSPLIT|TOPFRAME,$192
- // initialize REGSB = PC&0xffffffff00000000
- BGEZAL R0, 1(PC)
- SRLV $32, R31, RSB
- SLLV $32, RSB
-
- // this might be called in external code context,
- // where g is not set.
- MOVB runtime·iscgo(SB), R1
- BEQ R1, 2(PC)
- JAL runtime·load_g(SB)
-
- MOVW R4, 8(R29)
- MOVV R5, 16(R29)
- MOVV R6, 24(R29)
- MOVV $runtime·sigtrampgo(SB), R1
- JAL (R1)
- RET
-
-// int32 tfork(void *param, uintptr psize, M *mp, G *gp, void (*fn)(void));
-TEXT runtime·tfork(SB),NOSPLIT,$0
-
- // Copy mp, gp and fn off parent stack for use by child.
- MOVV mm+16(FP), R16
- MOVV gg+24(FP), R17
- MOVV fn+32(FP), R18
-
- MOVV param+0(FP), R4 // arg 1 - param
- MOVV psize+8(FP), R5 // arg 2 - psize
- MOVV $8, R2 // sys___tfork
- SYSCALL
-
- // Return if syscall failed.
- BEQ R7, 4(PC)
- SUBVU R2, R0, R2 // caller expects negative errno
- MOVW R2, ret+40(FP)
- RET
-
- // In parent, return.
- BEQ R2, 3(PC)
- MOVW $0, ret+40(FP)
- RET
-
- // Initialise m, g.
- MOVV R17, g
- MOVV R16, g_m(g)
-
- // Call fn.
- CALL (R18)
-
- // fn should never return.
- MOVV $2, R8 // crash if reached
- MOVV R8, (R8)
- RET
-
-TEXT runtime·sigaltstack(SB),NOSPLIT,$0
- MOVV new+0(FP), R4 // arg 1 - new sigaltstack
- MOVV old+8(FP), R5 // arg 2 - old sigaltstack
- MOVV $288, R2 // sys_sigaltstack
- SYSCALL
- BEQ R7, 3(PC)
- MOVV $0, R8 // crash on syscall failure
- MOVV R8, (R8)
- RET
-
-TEXT runtime·osyield(SB),NOSPLIT,$0
- MOVV $298, R2 // sys_sched_yield
- SYSCALL
- RET
-
-TEXT runtime·thrsleep(SB),NOSPLIT,$0
- MOVV ident+0(FP), R4 // arg 1 - ident
- MOVW clock_id+8(FP), R5 // arg 2 - clock_id
- MOVV tsp+16(FP), R6 // arg 3 - tsp
- MOVV lock+24(FP), R7 // arg 4 - lock
- MOVV abort+32(FP), R8 // arg 5 - abort
- MOVV $94, R2 // sys___thrsleep
- SYSCALL
- MOVW R2, ret+40(FP)
- RET
-
-TEXT runtime·thrwakeup(SB),NOSPLIT,$0
- MOVV ident+0(FP), R4 // arg 1 - ident
- MOVW n+8(FP), R5 // arg 2 - n
- MOVV $301, R2 // sys___thrwakeup
- SYSCALL
- MOVW R2, ret+16(FP)
- RET
-
-TEXT runtime·sysctl(SB),NOSPLIT,$0
- MOVV mib+0(FP), R4 // arg 1 - mib
- MOVW miblen+8(FP), R5 // arg 2 - miblen
- MOVV out+16(FP), R6 // arg 3 - out
- MOVV size+24(FP), R7 // arg 4 - size
- MOVV dst+32(FP), R8 // arg 5 - dest
- MOVV ndst+40(FP), R9 // arg 6 - newlen
- MOVV $202, R2 // sys___sysctl
- SYSCALL
- BEQ R7, 2(PC)
- SUBVU R2, R0, R2 // caller expects negative errno
- MOVW R2, ret+48(FP)
- RET
-
-// int32 runtime·kqueue(void);
-TEXT runtime·kqueue(SB),NOSPLIT,$0
- MOVV $269, R2 // sys_kqueue
- SYSCALL
- BEQ R7, 2(PC)
- SUBVU R2, R0, R2 // caller expects negative errno
- MOVW R2, ret+0(FP)
- RET
-
-// int32 runtime·kevent(int kq, Kevent *changelist, int nchanges, Kevent *eventlist, int nevents, Timespec *timeout);
-TEXT runtime·kevent(SB),NOSPLIT,$0
- MOVW kq+0(FP), R4 // arg 1 - kq
- MOVV ch+8(FP), R5 // arg 2 - changelist
- MOVW nch+16(FP), R6 // arg 3 - nchanges
- MOVV ev+24(FP), R7 // arg 4 - eventlist
- MOVW nev+32(FP), R8 // arg 5 - nevents
- MOVV ts+40(FP), R9 // arg 6 - timeout
- MOVV $72, R2 // sys_kevent
- SYSCALL
- BEQ R7, 2(PC)
- SUBVU R2, R0, R2 // caller expects negative errno
- MOVW R2, ret+48(FP)
- RET
-
-// func fcntl(fd, cmd, arg int32) (int32, int32)
-TEXT runtime·fcntl(SB),NOSPLIT,$0
- MOVW fd+0(FP), R4 // fd
- MOVW cmd+4(FP), R5 // cmd
- MOVW arg+8(FP), R6 // arg
- MOVV $92, R2 // sys_fcntl
- SYSCALL
- MOVV $0, R4
- BEQ R7, noerr
- MOVV R2, R4
- MOVW $-1, R2
-noerr:
- MOVW R2, ret+16(FP)
- MOVW R4, errno+20(FP)
- RET
-
-// func issetugid() int32
-TEXT runtime·issetugid(SB),NOSPLIT,$0
- MOVV $253, R2 // sys_issetugid
- SYSCALL
- MOVW R2, ret+0(FP)
- RET