aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/sys_linux_mipsx.s
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2020-03-22 12:57:36 -0700
committerTobias Klauser <tobias.klauser@gmail.com>2020-03-24 11:03:07 +0000
commit20b46c7c697ce9d833141abe9aa0ea6101f00ae2 (patch)
tree78bead8f3d3e0eaf2fe103a514894bc6edb48065 /src/runtime/sys_linux_mipsx.s
parent9ef61d58c015e7bc297ed4404e34af5f3d514257 (diff)
downloadgo-20b46c7c697ce9d833141abe9aa0ea6101f00ae2.tar.gz
go-20b46c7c697ce9d833141abe9aa0ea6101f00ae2.zip
runtime: negate errno value for mips pipe/pipe2
The callers expect negative errno values, so negate them when necessary. No test because there is no reasonable way to make pipe/pipe2 fail. This was reported on a system on which pipe2 returned ENOSYS. Fixes #37997 Change-Id: I3ad6cbbc2521cf495f8df6ec991a3f781122b508 Reviewed-on: https://go-review.googlesource.com/c/go/+/224592 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Diffstat (limited to 'src/runtime/sys_linux_mipsx.s')
-rw-r--r--src/runtime/sys_linux_mipsx.s3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/runtime/sys_linux_mipsx.s b/src/runtime/sys_linux_mipsx.s
index 15893a7a28..fab2ab3892 100644
--- a/src/runtime/sys_linux_mipsx.s
+++ b/src/runtime/sys_linux_mipsx.s
@@ -118,6 +118,7 @@ TEXT runtime·pipe(SB),NOSPLIT,$0-12
MOVW $-1, R1
MOVW R1, r+0(FP)
MOVW R1, w+4(FP)
+ SUBU R2, R0, R2 // caller expects negative errno
MOVW R2, errno+8(FP)
RET
pipeok:
@@ -132,6 +133,8 @@ TEXT runtime·pipe2(SB),NOSPLIT,$0-16
MOVW flags+0(FP), R5
MOVW $SYS_pipe2, R2
SYSCALL
+ BEQ R7, 2(PC)
+ SUBU R2, R0, R2 // caller expects negative errno
MOVW R2, errno+12(FP)
RET