diff options
Diffstat (limited to 'src/runtime/sys_freebsd_arm64.s')
-rw-r--r-- | src/runtime/sys_freebsd_arm64.s | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/runtime/sys_freebsd_arm64.s b/src/runtime/sys_freebsd_arm64.s index 4521ac61e4..799be4bd5d 100644 --- a/src/runtime/sys_freebsd_arm64.s +++ b/src/runtime/sys_freebsd_arm64.s @@ -444,17 +444,21 @@ 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 MOVW cmd+4(FP), R1 MOVW arg+8(FP), R2 MOVD $SYS_fcntl, R8 SVC - 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 // func closeonexec(fd int32) |