| // 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. | |
| #include "textflag.h" | |
| // Called by C code generated by cmd/cgo. | |
| // func crosscall2(fn func(a unsafe.Pointer, n int32, ctxt uintptr), a unsafe.Pointer, n int32, ctxt uintptr) | |
| // Saves C callee-saved registers and calls fn with three arguments. | |
| TEXT crosscall2(SB),NOSPLIT,$0 | |
| PUSHL BP | |
| MOVL SP, BP | |
| PUSHL BX | |
| PUSHL SI | |
| PUSHL DI | |
| SUBL $12, SP | |
| MOVL 20(BP), AX | |
| MOVL AX, 8(SP) | |
| MOVL 16(BP), AX | |
| MOVL AX, 4(SP) | |
| MOVL 12(BP), AX | |
| MOVL AX, 0(SP) | |
| MOVL 8(BP), AX | |
| CALL AX | |
| ADDL $12, SP | |
| POPL DI | |
| POPL SI | |
| POPL BX | |
| POPL BP | |
| RET |