aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/sys_netbsd_arm64.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/sys_netbsd_arm64.s')
-rw-r--r--src/runtime/sys_netbsd_arm64.s12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/runtime/sys_netbsd_arm64.s b/src/runtime/sys_netbsd_arm64.s
index d27133550a..0cd9262750 100644
--- a/src/runtime/sys_netbsd_arm64.s
+++ b/src/runtime/sys_netbsd_arm64.s
@@ -421,16 +421,20 @@ ok:
MOVW R0, ret+48(FP)
RET
-// func fcntl(fd, cmd, arg int32) int32
+// func fcntl(fd, cmd, arg int32) (int32, int32)
TEXT runtime·fcntl(SB),NOSPLIT,$0
MOVW fd+0(FP), R0 // fd
MOVW cmd+4(FP), R1 // cmd
MOVW arg+8(FP), R2 // arg
SVC $SYS_fcntl
- BCC ok
- NEG R0, R0 // caller expects negative errno
-ok:
+ BCC noerr
+ MOVW $-1, R1
+ MOVW R1, ret+16(FP)
+ MOVW R0, errno+20(FP)
+ RET
+noerr:
MOVW R0, ret+16(FP)
+ MOVW $0, errno+20(FP)
RET
// void runtime·closeonexec(int32 fd)