aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/sys_freebsd_arm.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/sys_freebsd_arm.s')
-rw-r--r--src/runtime/sys_freebsd_arm.s7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/runtime/sys_freebsd_arm.s b/src/runtime/sys_freebsd_arm.s
index 725303a8ac..d4a8a09bb8 100644
--- a/src/runtime/sys_freebsd_arm.s
+++ b/src/runtime/sys_freebsd_arm.s
@@ -387,15 +387,18 @@ TEXT runtime·kevent(SB),NOSPLIT,$0
MOVW R0, ret+24(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
MOVW $SYS_fcntl, R7
SWI $0
- RSB.CS $0, R0 // caller expects negative errno
+ MOVW $0, R1
+ MOVW.CS R0, R1
+ MOVW.CS $-1, R0
MOVW R0, ret+12(FP)
+ MOVW R1, errno+16(FP)
RET
// void runtime·closeonexec(int32 fd)