| // Copyright 2009 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| * void crosscall2(void (*fn)(void*, int32), void*, int32) |
| * Save registers and call fn with two arguments. |
| TEXT crosscall2(SB),NOSPLIT,$0 |
| SUBQ $0x58, SP /* keeps stack pointer 32-byte aligned */ |
| // Win64 save RBX, RBP, RDI, RSI, RSP, R12, R13, R14, and R15 |
| MOVQ R8, 8(SP) /* argsize (includes padding) */ |
| MOVQ DX, 8(SP) /* argsize (includes padding) */ |