1
0
mirror of https://github.com/golang/go synced 2024-11-19 00:14:39 -07:00
go/misc/cgo
Russ Cox cb767247ca runtime: refactor/fix asmcgocall/asmcgocall_errno
Instead of making asmcgocall call asmcgocall_errno,
make both load args into registers and call a shared
assembly function.

On amd64, this costs 1 word in the asmcgocall_errno path
but saves 3 words in the asmcgocall path, and the latter
is what happens on critical nosplit paths on Windows.

On arm, this fixes build failures: asmcgocall was writing
the arguments for asmcgocall_errno into the wrong
place on the stack. Passing them in registers avoids the
decision entirely.

On 386, this isn't really needed, since the nosplit paths
have twice as many words to work with, but do it for consistency.

Update #8635
Fixes arm build (except GOARM=5).

TBR=iant
CC=golang-codereviews
https://golang.org/cl/134390043
2014-09-04 00:01:55 -04:00
..
errors cmd/cgo: check for compiler errors in the C preamble 2014-08-14 09:21:58 -07:00
gmp misc/cgo/gmp: fix typo. 2013-03-30 19:02:14 +08:00
life misc/cgo: prepare for 64-bit ints 2012-09-24 14:58:45 -04:00
nocgo cmd/ld: really import runtime/cgo for external link 2014-05-20 21:36:50 -07:00
stdio misc/cgo/stdio: make it work on Windows and also test it 2012-09-20 00:27:23 +08:00
test runtime: refactor/fix asmcgocall/asmcgocall_errno 2014-09-04 00:01:55 -04:00
testasan runtime: more flexible heap memory mapping on 64-bits 2013-06-12 18:47:16 +04:00
testcdefs misc/cgo/testcdefs: comment out test of packed structs 2014-08-31 22:59:43 -04:00
testgodefs cmd/cgo: consistently map void* to *byte under -{c,go}defs 2014-08-06 10:28:19 -07:00
testso misc/cgo/testso: don't use TLS variables on Darwin and OpenBSD. 2014-02-23 20:37:43 -05:00
testtls misc/cgo/testtls: make test less flaky 2014-01-21 19:44:51 -05:00