Imports #
"cmd/internal/obj"
"bytes"
"cmd/internal/obj"
"cmd/internal/objabi"
"cmd/internal/sys"
"encoding/binary"
"fmt"
"internal/abi"
"io"
"math"
"cmd/internal/obj"
"cmd/internal/obj"
"bytes"
"cmd/internal/obj"
"cmd/internal/objabi"
"cmd/internal/sys"
"encoding/binary"
"fmt"
"internal/abi"
"io"
"math"
"cmd/internal/obj"
* wasm
const ABlock
* wasm
const ABr
* wasm
const ABrIf
* wasm
const ABrTable
ACALLNORESUME is a call which is not followed by a resume point. It is allowed inside of WebAssembly blocks, whereas obj.ACALL is not. However, it is not allowed to switch goroutines while inside of an ACALLNORESUME call.
const ACALLNORESUME
* wasm
const ACall
* wasm
const ACallIndirect
* wasm
const ACurrentMemory
* wasm
const ADataDrop
* wasm
const ADrop
* wasm
const AElemDrop
* wasm
const AElse
* wasm
const AEnd
* wasm
const AF32Abs
* wasm
const AF32Add
* wasm
const AF32Ceil
* wasm
const AF32Const
* wasm
const AF32ConvertI32S
* wasm
const AF32ConvertI32U
* wasm
const AF32ConvertI64S
* wasm
const AF32ConvertI64U
* wasm
const AF32Copysign
* wasm
const AF32DemoteF64
* wasm
const AF32Div
* wasm
const AF32Eq
* wasm
const AF32Floor
* wasm
const AF32Ge
* wasm
const AF32Gt
* wasm
const AF32Le
* wasm
const AF32Load
* wasm
const AF32Lt
* wasm
const AF32Max
* wasm
const AF32Min
* wasm
const AF32Mul
* wasm
const AF32Ne
* wasm
const AF32Nearest
* wasm
const AF32Neg
* wasm
const AF32ReinterpretI32
* wasm
const AF32Sqrt
* wasm
const AF32Store
* wasm
const AF32Sub
* wasm
const AF32Trunc
* wasm
const AF64Abs
* wasm
const AF64Add
* wasm
const AF64Ceil
* wasm
const AF64Const
* wasm
const AF64ConvertI32S
* wasm
const AF64ConvertI32U
* wasm
const AF64ConvertI64S
* wasm
const AF64ConvertI64U
* wasm
const AF64Copysign
* wasm
const AF64Div
* wasm
const AF64Eq
* wasm
const AF64Floor
* wasm
const AF64Ge
* wasm
const AF64Gt
* wasm
const AF64Le
* wasm
const AF64Load
* wasm
const AF64Lt
* wasm
const AF64Max
* wasm
const AF64Min
* wasm
const AF64Mul
* wasm
const AF64Ne
* wasm
const AF64Nearest
* wasm
const AF64Neg
* wasm
const AF64PromoteF32
* wasm
const AF64ReinterpretI64
* wasm
const AF64Sqrt
* wasm
const AF64Store
* wasm
const AF64Sub
* wasm
const AF64Trunc
* wasm
const AGet = *ast.BinaryExpr
* wasm
const AGlobalGet
* wasm
const AGlobalSet
* wasm
const AGrowMemory
* wasm
const AI32Add
* wasm
const AI32And
* wasm
const AI32Clz
* wasm
const AI32Const
* wasm
const AI32Ctz
* wasm
const AI32DivS
* wasm
const AI32DivU
* wasm
const AI32Eq
* wasm
const AI32Eqz
* wasm
const AI32Extend16S
* wasm
const AI32Extend8S
* wasm
const AI32GeS
* wasm
const AI32GeU
* wasm
const AI32GtS
* wasm
const AI32GtU
* wasm
const AI32LeS
* wasm
const AI32LeU
* wasm
const AI32Load
* wasm
const AI32Load16S
* wasm
const AI32Load16U
* wasm
const AI32Load8S
* wasm
const AI32Load8U
* wasm
const AI32LtS
* wasm
const AI32LtU
* wasm
const AI32Mul
* wasm
const AI32Ne
* wasm
const AI32Or
* wasm
const AI32Popcnt
* wasm
const AI32ReinterpretF32
* wasm
const AI32RemS
* wasm
const AI32RemU
* wasm
const AI32Rotl
* wasm
const AI32Rotr
* wasm
const AI32Shl
* wasm
const AI32ShrS
* wasm
const AI32ShrU
* wasm
const AI32Store
* wasm
const AI32Store16
* wasm
const AI32Store8
* wasm
const AI32Sub
* wasm
const AI32TruncF32S
* wasm
const AI32TruncF32U
* wasm
const AI32TruncF64S
* wasm
const AI32TruncF64U
* wasm
const AI32TruncSatF32S
* wasm
const AI32TruncSatF32U
* wasm
const AI32TruncSatF64S
* wasm
const AI32TruncSatF64U
* wasm
const AI32WrapI64
* wasm
const AI32Xor
* wasm
const AI64Add
* wasm
const AI64And
* wasm
const AI64Clz
* wasm
const AI64Const
* wasm
const AI64Ctz
* wasm
const AI64DivS
* wasm
const AI64DivU
* wasm
const AI64Eq
* wasm
const AI64Eqz
* wasm
const AI64Extend16S
* wasm
const AI64Extend32S
* wasm
const AI64Extend8S
* wasm
const AI64ExtendI32S
* wasm
const AI64ExtendI32U
* wasm
const AI64GeS
* wasm
const AI64GeU
* wasm
const AI64GtS
* wasm
const AI64GtU
* wasm
const AI64LeS
* wasm
const AI64LeU
* wasm
const AI64Load
* wasm
const AI64Load16S
* wasm
const AI64Load16U
* wasm
const AI64Load32S
* wasm
const AI64Load32U
* wasm
const AI64Load8S
* wasm
const AI64Load8U
* wasm
const AI64LtS
* wasm
const AI64LtU
* wasm
const AI64Mul
* wasm
const AI64Ne
* wasm
const AI64Or
* wasm
const AI64Popcnt
* wasm
const AI64ReinterpretF64
* wasm
const AI64RemS
* wasm
const AI64RemU
* wasm
const AI64Rotl
* wasm
const AI64Rotr
* wasm
const AI64Shl
* wasm
const AI64ShrS
* wasm
const AI64ShrU
* wasm
const AI64Store
* wasm
const AI64Store16
* wasm
const AI64Store32
* wasm
const AI64Store8
* wasm
const AI64Sub
* wasm
const AI64TruncF32S
* wasm
const AI64TruncF32U
* wasm
const AI64TruncF64S
* wasm
const AI64TruncF64U
* wasm
const AI64TruncSatF32S
* wasm
const AI64TruncSatF32U
* wasm
const AI64TruncSatF64S
* wasm
const AI64TruncSatF64U
* wasm
const AI64Xor
* wasm
const AIf
* wasm
const ALAST
* wasm
const ALast
* wasm
const ALocalGet
* wasm
const ALocalSet
* wasm
const ALocalTee
* wasm
const ALoop
* wasm
const AMOVB
* wasm
const AMOVD
* wasm
const AMOVH
* wasm
const AMOVW
* wasm
const AMemoryCopy
* wasm
const AMemoryFill
* wasm
const AMemoryInit
* wasm
const ANop
* wasm
const ANot
* wasm
const ARESUMEPOINT
* wasm
const ARETUNWIND
ACall and AReturn are WebAssembly instructions. obj.ACALL and obj.ARET are higher level instructions with Go semantics, e.g. they manipulate the Go stack on the linear memory.
const AReturn
* wasm
const ASelect
* wasm
const ASet
* wasm
const ATableCopy
* wasm
const ATableFill
* wasm
const ATableGrow
* wasm
const ATableInit
* wasm
const ATableSize
* wasm
const ATee
* wasm
const AUnreachable
* wasm
const AWORD
var Anames = []string{...}
mark flags
const DONE = *ast.BinaryExpr
This is a special wasm module name that when used as the module name in //go:wasmimport will cause the generated code to pass the stack pointer directly to the imported function. In other words, any function that uses the gojs module understands the internal Go WASM ABI directly.
const GojsModule = "gojs"
var Linkwasm = obj.LinkArch{...}
const MAXREG
const MINREG = REG_SP
const PRESERVEFLAGS
const REGCTXT = REG_CTXT
const REGG = REG_g
const REGSP = REG_SP
const REG_CTXT
f32 locals
const REG_F0
const REG_F1
const REG_F10
const REG_F11
const REG_F12
const REG_F13
const REG_F14
const REG_F15
f64 locals
const REG_F16
const REG_F17
const REG_F18
const REG_F19
const REG_F2
const REG_F20
const REG_F21
const REG_F22
const REG_F23
const REG_F24
const REG_F25
const REG_F26
const REG_F27
const REG_F28
const REG_F29
const REG_F3
const REG_F30
const REG_F31
const REG_F4
const REG_F5
const REG_F6
const REG_F7
const REG_F8
const REG_F9
const REG_NONE = 0
const REG_PAUSE
const REG_PC_B
i32 locals
const REG_R0
const REG_R1
const REG_R10
const REG_R11
const REG_R12
const REG_R13
const REG_R14
const REG_R15
const REG_R2
const REG_R3
const REG_R4
const REG_R5
const REG_R6
const REG_R7
const REG_R8
const REG_R9
RET* are used by runtime.return0 and runtime.reflectcall. These functions pass return values in registers.
const REG_RET0
const REG_RET1
const REG_RET2
const REG_RET3
globals
const REG_SP = *ast.BinaryExpr
const REG_g
var Register = map[string]int16{...}
mark flags
const WasmImport = *ast.BinaryExpr
const f32 valueType = 0x7D
const f64 valueType = 0x7C
const i32 valueType = 0x7F
const i64 valueType = 0x7E
var morestack *obj.LSym
var morestackNoCtxt *obj.LSym
Most of the Go functions has a single parameter (PC_B) in Wasm ABI. This is a list of exceptions.
var notUsePC_B = map[string]bool{...}
var registerNames []string
var runtimeNotInitialized *obj.LSym
var sigpanic *obj.LSym
var unaryDst = map[obj.As]bool{...}
var wasm_pc_f_loop_export *obj.LSym
type valueType byte
func align(as obj.As) uint64
func assemble(ctxt *obj.Link, s *obj.LSym, newprog obj.ProgAlloc)
func constAddr(value int64) obj.Addr
Generate function body for wasmexport wrapper function.
func genWasmExportWrapper(s *obj.LSym, appendp func(p *obj.Prog, as obj.As, args ...obj.Addr) *obj.Prog)
Generate function body for wasmimport wrapper function.
func genWasmImportWrapper(s *obj.LSym, appendp func(p *obj.Prog, as obj.As, args ...obj.Addr) *obj.Prog)
func init()
func instinit(ctxt *obj.Link)
func preprocess(ctxt *obj.Link, s *obj.LSym, newprog obj.ProgAlloc)
func rconv(r int) string
func regAddr(reg int16) obj.Addr
func regType(reg int16) valueType
func updateLocalSP(w *bytes.Buffer)
func writeOpcode(w *bytes.Buffer, as obj.As)
func writeSleb128(w io.ByteWriter, v int64)
func writeUleb128(w io.ByteWriter, v uint64)
Generated with Arrow