type SymABIs … func NewSymABIs() *SymABIs { … } // canonicalize returns the canonical name used for a linker symbol in // s's maps. Symbols in this package may be written either as "".X or // with the package's import path already in the symbol. This rewrites // both to use the full path, which matches compiler-generated linker // symbol names. func (s *SymABIs) canonicalize(linksym string) string { … } // ReadSymABIs reads a symabis file that specifies definitions and // references of text symbols by ABI. // // The symabis format is a set of lines, where each line is a sequence // of whitespace-separated fields. The first field is a verb and is // either "def" for defining a symbol ABI or "ref" for referencing a // symbol using an ABI. For both "def" and "ref", the second field is // the symbol name and the third field is the ABI name, as one of the // named cmd/internal/obj.ABI constants. func (s *SymABIs) ReadSymABIs(file string) { … } // GenABIWrappers applies ABI information to Funcs and generates ABI // wrapper functions where necessary. func (s *SymABIs) GenABIWrappers() { … } func forEachWrapperABI(fn *ir.Func, cb func(fn *ir.Func, wrapperABI obj.ABI)) { … } // makeABIWrapper creates a new function that will be called with // wrapperABI and calls "f" using f.ABI. func makeABIWrapper(f *ir.Func, wrapperABI obj.ABI) { … } // CreateWasmImportWrapper creates a wrapper for imported WASM functions to // adapt them to the Go calling convention. The body for this function is // generated in cmd/internal/obj/wasm/wasmobj.go func CreateWasmImportWrapper(fn *ir.Func) bool { … } func GenWasmExportWrapper(wrapped *ir.Func) { … } func paramsToWasmFields(f *ir.Func, pragma string, result *abi.ABIParamResultInfo, abiParams []abi.ABIParamAssignment) []obj.WasmField { … } func resultsToWasmFields(f *ir.Func, pragma string, result *abi.ABIParamResultInfo, abiParams []abi.ABIParamAssignment) []obj.WasmField { … } // setupWasmImport calculates the params and results in terms of WebAssembly values for the given function, // and sets up the wasmimport metadata. func setupWasmImport(f *ir.Func) { … } // setupWasmExport calculates the params and results in terms of WebAssembly values for the given function, // and sets up the wasmexport metadata. func setupWasmExport(f, wrapped *ir.Func) { … }