diff options
| author | Wei Guangjing <vcc.163@gmail.com> | 2011-08-26 16:43:37 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2011-08-26 16:43:37 -0400 |
| commit | e753512e2d42483eacaca975ff8fd58cc1b7dfed (patch) | |
| tree | 8505cae620893f086f447dfaa9fc12d122a284f3 /src/pkg/runtime/amd64 | |
| parent | 26d9c804f837398eef1d09d6224de59e37d1cbca (diff) | |
| download | go-e753512e2d42483eacaca975ff8fd58cc1b7dfed.tar.xz | |
cgo: fixes callback for windows amd64
R=rsc
CC=golang-dev
https://golang.org/cl/4826041
Diffstat (limited to 'src/pkg/runtime/amd64')
| -rw-r--r-- | src/pkg/runtime/amd64/asm.s | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/pkg/runtime/amd64/asm.s b/src/pkg/runtime/amd64/asm.s index acd131bb31..a881e3bbf4 100644 --- a/src/pkg/runtime/amd64/asm.s +++ b/src/pkg/runtime/amd64/asm.s @@ -448,19 +448,19 @@ TEXT runtime·asmcgocall(SB),7,$0 MOVQ (g_sched+gobuf_sp)(SI), SP // Now on a scheduling stack (a pthread-created stack). - SUBQ $32, SP + SUBQ $48, SP ANDQ $~15, SP // alignment for gcc ABI - MOVQ DI, 16(SP) // save g - MOVQ DX, 8(SP) // save SP + MOVQ DI, 32(SP) // save g + MOVQ DX, 24(SP) // save SP MOVQ BX, DI // DI = first argument in AMD64 ABI MOVQ BX, CX // CX = first argument in Win64 CALL AX // Restore registers, g, stack pointer. get_tls(CX) - MOVQ 16(SP), DI + MOVQ 32(SP), DI MOVQ DI, g(CX) - MOVQ 8(SP), SP + MOVQ 24(SP), SP RET // cgocallback(void (*fn)(void*), void *frame, uintptr framesize) |
