Descriptionruntime: 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 issue 8635
Fixes arm build (except GOARM=5).
Patch Set 1 #Patch Set 2 : diff -r 23e48d4f30661630cff46dd356ca9ea3916365c5 https://code.google.com/p/go/ #Patch Set 3 : diff -r 23e48d4f30661630cff46dd356ca9ea3916365c5 https://code.google.com/p/go/ #Patch Set 4 : diff -r 61ca284cc8aabe27a1224d6841a2e66c938e73dc https://code.google.com/p/go/ #
MessagesTotal messages: 3
|