From: Russ Cox Date: Sun, 14 Sep 2014 17:57:28 +0000 (-0400) Subject: runtime: mark asmcgocall<>(SB) as having no arguments X-Git-Tag: go1.4beta1~418 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=40dd6bf38e06bf26aa1c15438cdf0965cf778050;p=gostls13.git runtime: mark asmcgocall<>(SB) as having no arguments It doesn't. Fixes 386 build. While we're here, mark runtime.asmcgocall as GO_ARGS, so that it will work with stack copying. I don't think anything that uses it can lead to a stack copy, but better safe than sorry. Certainly the runtime.asmcgocall_errno variant needs (and already has) GO_ARGS. TBR=iant CC=golang-codereviews https://golang.org/cl/138400043 --- diff --git a/src/runtime/asm_386.s b/src/runtime/asm_386.s index c9fd75bfc4..21065b6d6f 100644 --- a/src/runtime/asm_386.s +++ b/src/runtime/asm_386.s @@ -647,6 +647,7 @@ TEXT gosave<>(SB),NOSPLIT,$0 // aligned appropriately for the gcc ABI. // See cgocall.c for more details. TEXT runtime·asmcgocall(SB),NOSPLIT,$0-8 + GO_ARGS MOVL fn+0(FP), AX MOVL arg+4(FP), BX CALL asmcgocall<>(SB) @@ -660,7 +661,7 @@ TEXT runtime·asmcgocall_errno(SB),NOSPLIT,$0-12 MOVL AX, ret+8(FP) RET -TEXT asmcgocall<>(SB),NOSPLIT,$0-12 +TEXT asmcgocall<>(SB),NOSPLIT,$0-0 // fn in AX, arg in BX MOVL SP, DX diff --git a/src/runtime/asm_amd64.s b/src/runtime/asm_amd64.s index d5e2f56ef0..da29f61ed8 100644 --- a/src/runtime/asm_amd64.s +++ b/src/runtime/asm_amd64.s @@ -624,6 +624,7 @@ TEXT gosave<>(SB),NOSPLIT,$0 // aligned appropriately for the gcc ABI. // See cgocall.c for more details. TEXT runtime·asmcgocall(SB),NOSPLIT,$0-16 + GO_ARGS MOVQ fn+0(FP), AX MOVQ arg+8(FP), BX CALL asmcgocall<>(SB) diff --git a/src/runtime/asm_arm.s b/src/runtime/asm_arm.s index 368b4ad8e8..3e78d91143 100644 --- a/src/runtime/asm_arm.s +++ b/src/runtime/asm_arm.s @@ -481,6 +481,7 @@ TEXT gosave<>(SB),NOSPLIT,$0 // aligned appropriately for the gcc ABI. // See cgocall.c for more details. TEXT runtime·asmcgocall(SB),NOSPLIT,$0-8 + GO_ARGS MOVW fn+0(FP), R1 MOVW arg+4(FP), R0 BL asmcgocall<>(SB)