root/src/pkg/runtime/cgo/asm_386.s

/* [<][>][^][v][top][bottom][index][help] */
// 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 "../../../cmd/ld/textflag.h"

/*
 * void crosscall2(void (*fn)(void*, int32), void*, int32)
 * Save registers and call fn with two arguments.
 */
TEXT crosscall2(SB),NOSPLIT,$0
        PUSHL   BP
        MOVL    SP, BP
        PUSHL   BX
        PUSHL   SI
        PUSHL   DI
        
        SUBL    $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    $8, SP
        
        POPL    DI
        POPL    SI
        POPL    BX
        POPL    BP
        RET

/* [<][>][^][v][top][bottom][index][help] */