mirror of
https://github.com/golang/go
synced 2024-11-23 19:20:03 -07:00
runtime: load errno as signed 32-bit
the function libc_errno returns a pointer to a signed-32 bit quantity, not a 64-bit quantity. Fixes #27004 Change-Id: I0623835ee34fd9655532251f096022a5accb58cd Reviewed-on: https://go-review.googlesource.com/129475 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
6502c11286
commit
a68b713ef6
@ -306,7 +306,7 @@ TEXT runtime·mmap_trampoline(SB),NOSPLIT,$0
|
||||
CMPQ AX, $-1
|
||||
JNE ok
|
||||
CALL libc_error(SB)
|
||||
MOVQ (AX), DX // errno
|
||||
MOVLQSX (AX), DX // errno
|
||||
XORL AX, AX
|
||||
ok:
|
||||
MOVQ AX, 32(BX)
|
||||
@ -371,7 +371,7 @@ TEXT runtime·kevent_trampoline(SB),NOSPLIT,$0
|
||||
CMPQ AX, $-1
|
||||
JNE ok
|
||||
CALL libc_error(SB)
|
||||
MOVQ (AX), AX // errno
|
||||
MOVLQSX (AX), AX // errno
|
||||
NEGQ AX // caller wants it as a negative error code
|
||||
ok:
|
||||
POPQ BP
|
||||
|
@ -70,7 +70,7 @@ TEXT runtime·mmap_trampoline(SB),NOSPLIT,$0
|
||||
CMP R0, R2
|
||||
BNE ok
|
||||
BL libc_error(SB)
|
||||
MOVD (R0), R1
|
||||
MOVW (R0), R1
|
||||
MOVD $0, R0
|
||||
ok:
|
||||
MOVD R0, 32(R19) // ret 1 p
|
||||
@ -277,7 +277,7 @@ TEXT runtime·kevent_trampoline(SB),NOSPLIT,$0
|
||||
CMP R0, R2
|
||||
BNE ok
|
||||
BL libc_error(SB)
|
||||
MOVD (R0), R0 // errno
|
||||
MOVW (R0), R0 // errno
|
||||
NEG R0, R0 // caller wants it as a negative error code
|
||||
ok:
|
||||
RET
|
||||
|
Loading…
Reference in New Issue
Block a user