wasm

Imports

Imports #

"cmd/internal/obj"
"bytes"
"cmd/internal/obj"
"cmd/internal/objabi"
"cmd/internal/sys"
"encoding/binary"
"fmt"
"internal/abi"
"io"
"math"
"cmd/internal/obj"

Constants & Variables

ABlock const #

* wasm

const ABlock

ABr const #

* wasm

const ABr

ABrIf const #

* wasm

const ABrIf

ABrTable const #

* wasm

const ABrTable

ACALLNORESUME const #

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

ACall const #

* wasm

const ACall

ACallIndirect const #

* wasm

const ACallIndirect

ACurrentMemory const #

* wasm

const ACurrentMemory

ADataDrop const #

* wasm

const ADataDrop

ADrop const #

* wasm

const ADrop

AElemDrop const #

* wasm

const AElemDrop

AElse const #

* wasm

const AElse

AEnd const #

* wasm

const AEnd

AF32Abs const #

* wasm

const AF32Abs

AF32Add const #

* wasm

const AF32Add

AF32Ceil const #

* wasm

const AF32Ceil

AF32Const const #

* wasm

const AF32Const

AF32ConvertI32S const #

* wasm

const AF32ConvertI32S

AF32ConvertI32U const #

* wasm

const AF32ConvertI32U

AF32ConvertI64S const #

* wasm

const AF32ConvertI64S

AF32ConvertI64U const #

* wasm

const AF32ConvertI64U

AF32Copysign const #

* wasm

const AF32Copysign

AF32DemoteF64 const #

* wasm

const AF32DemoteF64

AF32Div const #

* wasm

const AF32Div

AF32Eq const #

* wasm

const AF32Eq

AF32Floor const #

* wasm

const AF32Floor

AF32Ge const #

* wasm

const AF32Ge

AF32Gt const #

* wasm

const AF32Gt

AF32Le const #

* wasm

const AF32Le

AF32Load const #

* wasm

const AF32Load

AF32Lt const #

* wasm

const AF32Lt

AF32Max const #

* wasm

const AF32Max

AF32Min const #

* wasm

const AF32Min

AF32Mul const #

* wasm

const AF32Mul

AF32Ne const #

* wasm

const AF32Ne

AF32Nearest const #

* wasm

const AF32Nearest

AF32Neg const #

* wasm

const AF32Neg

AF32ReinterpretI32 const #

* wasm

const AF32ReinterpretI32

AF32Sqrt const #

* wasm

const AF32Sqrt

AF32Store const #

* wasm

const AF32Store

AF32Sub const #

* wasm

const AF32Sub

AF32Trunc const #

* wasm

const AF32Trunc

AF64Abs const #

* wasm

const AF64Abs

AF64Add const #

* wasm

const AF64Add

AF64Ceil const #

* wasm

const AF64Ceil

AF64Const const #

* wasm

const AF64Const

AF64ConvertI32S const #

* wasm

const AF64ConvertI32S

AF64ConvertI32U const #

* wasm

const AF64ConvertI32U

AF64ConvertI64S const #

* wasm

const AF64ConvertI64S

AF64ConvertI64U const #

* wasm

const AF64ConvertI64U

AF64Copysign const #

* wasm

const AF64Copysign

AF64Div const #

* wasm

const AF64Div

AF64Eq const #

* wasm

const AF64Eq

AF64Floor const #

* wasm

const AF64Floor

AF64Ge const #

* wasm

const AF64Ge

AF64Gt const #

* wasm

const AF64Gt

AF64Le const #

* wasm

const AF64Le

AF64Load const #

* wasm

const AF64Load

AF64Lt const #

* wasm

const AF64Lt

AF64Max const #

* wasm

const AF64Max

AF64Min const #

* wasm

const AF64Min

AF64Mul const #

* wasm

const AF64Mul

AF64Ne const #

* wasm

const AF64Ne

AF64Nearest const #

* wasm

const AF64Nearest

AF64Neg const #

* wasm

const AF64Neg

AF64PromoteF32 const #

* wasm

const AF64PromoteF32

AF64ReinterpretI64 const #

* wasm

const AF64ReinterpretI64

AF64Sqrt const #

* wasm

const AF64Sqrt

AF64Store const #

* wasm

const AF64Store

AF64Sub const #

* wasm

const AF64Sub

AF64Trunc const #

* wasm

const AF64Trunc

AGet const #

* wasm

const AGet = *ast.BinaryExpr

AGlobalGet const #

* wasm

const AGlobalGet

AGlobalSet const #

* wasm

const AGlobalSet

AGrowMemory const #

* wasm

const AGrowMemory

AI32Add const #

* wasm

const AI32Add

AI32And const #

* wasm

const AI32And

AI32Clz const #

* wasm

const AI32Clz

AI32Const const #

* wasm

const AI32Const

AI32Ctz const #

* wasm

const AI32Ctz

AI32DivS const #

* wasm

const AI32DivS

AI32DivU const #

* wasm

const AI32DivU

AI32Eq const #

* wasm

const AI32Eq

AI32Eqz const #

* wasm

const AI32Eqz

AI32Extend16S const #

* wasm

const AI32Extend16S

AI32Extend8S const #

* wasm

const AI32Extend8S

AI32GeS const #

* wasm

const AI32GeS

AI32GeU const #

* wasm

const AI32GeU

AI32GtS const #

* wasm

const AI32GtS

AI32GtU const #

* wasm

const AI32GtU

AI32LeS const #

* wasm

const AI32LeS

AI32LeU const #

* wasm

const AI32LeU

AI32Load const #

* wasm

const AI32Load

AI32Load16S const #

* wasm

const AI32Load16S

AI32Load16U const #

* wasm

const AI32Load16U

AI32Load8S const #

* wasm

const AI32Load8S

AI32Load8U const #

* wasm

const AI32Load8U

AI32LtS const #

* wasm

const AI32LtS

AI32LtU const #

* wasm

const AI32LtU

AI32Mul const #

* wasm

const AI32Mul

AI32Ne const #

* wasm

const AI32Ne

AI32Or const #

* wasm

const AI32Or

AI32Popcnt const #

* wasm

const AI32Popcnt

AI32ReinterpretF32 const #

* wasm

const AI32ReinterpretF32

AI32RemS const #

* wasm

const AI32RemS

AI32RemU const #

* wasm

const AI32RemU

AI32Rotl const #

* wasm

const AI32Rotl

AI32Rotr const #

* wasm

const AI32Rotr

AI32Shl const #

* wasm

const AI32Shl

AI32ShrS const #

* wasm

const AI32ShrS

AI32ShrU const #

* wasm

const AI32ShrU

AI32Store const #

* wasm

const AI32Store

AI32Store16 const #

* wasm

const AI32Store16

AI32Store8 const #

* wasm

const AI32Store8

AI32Sub const #

* wasm

const AI32Sub

AI32TruncF32S const #

* wasm

const AI32TruncF32S

AI32TruncF32U const #

* wasm

const AI32TruncF32U

AI32TruncF64S const #

* wasm

const AI32TruncF64S

AI32TruncF64U const #

* wasm

const AI32TruncF64U

AI32TruncSatF32S const #

* wasm

const AI32TruncSatF32S

AI32TruncSatF32U const #

* wasm

const AI32TruncSatF32U

AI32TruncSatF64S const #

* wasm

const AI32TruncSatF64S

AI32TruncSatF64U const #

* wasm

const AI32TruncSatF64U

AI32WrapI64 const #

* wasm

const AI32WrapI64

AI32Xor const #

* wasm

const AI32Xor

AI64Add const #

* wasm

const AI64Add

AI64And const #

* wasm

const AI64And

AI64Clz const #

* wasm

const AI64Clz

AI64Const const #

* wasm

const AI64Const

AI64Ctz const #

* wasm

const AI64Ctz

AI64DivS const #

* wasm

const AI64DivS

AI64DivU const #

* wasm

const AI64DivU

AI64Eq const #

* wasm

const AI64Eq

AI64Eqz const #

* wasm

const AI64Eqz

AI64Extend16S const #

* wasm

const AI64Extend16S

AI64Extend32S const #

* wasm

const AI64Extend32S

AI64Extend8S const #

* wasm

const AI64Extend8S

AI64ExtendI32S const #

* wasm

const AI64ExtendI32S

AI64ExtendI32U const #

* wasm

const AI64ExtendI32U

AI64GeS const #

* wasm

const AI64GeS

AI64GeU const #

* wasm

const AI64GeU

AI64GtS const #

* wasm

const AI64GtS

AI64GtU const #

* wasm

const AI64GtU

AI64LeS const #

* wasm

const AI64LeS

AI64LeU const #

* wasm

const AI64LeU

AI64Load const #

* wasm

const AI64Load

AI64Load16S const #

* wasm

const AI64Load16S

AI64Load16U const #

* wasm

const AI64Load16U

AI64Load32S const #

* wasm

const AI64Load32S

AI64Load32U const #

* wasm

const AI64Load32U

AI64Load8S const #

* wasm

const AI64Load8S

AI64Load8U const #

* wasm

const AI64Load8U

AI64LtS const #

* wasm

const AI64LtS

AI64LtU const #

* wasm

const AI64LtU

AI64Mul const #

* wasm

const AI64Mul

AI64Ne const #

* wasm

const AI64Ne

AI64Or const #

* wasm

const AI64Or

AI64Popcnt const #

* wasm

const AI64Popcnt

AI64ReinterpretF64 const #

* wasm

const AI64ReinterpretF64

AI64RemS const #

* wasm

const AI64RemS

AI64RemU const #

* wasm

const AI64RemU

AI64Rotl const #

* wasm

const AI64Rotl

AI64Rotr const #

* wasm

const AI64Rotr

AI64Shl const #

* wasm

const AI64Shl

AI64ShrS const #

* wasm

const AI64ShrS

AI64ShrU const #

* wasm

const AI64ShrU

AI64Store const #

* wasm

const AI64Store

AI64Store16 const #

* wasm

const AI64Store16

AI64Store32 const #

* wasm

const AI64Store32

AI64Store8 const #

* wasm

const AI64Store8

AI64Sub const #

* wasm

const AI64Sub

AI64TruncF32S const #

* wasm

const AI64TruncF32S

AI64TruncF32U const #

* wasm

const AI64TruncF32U

AI64TruncF64S const #

* wasm

const AI64TruncF64S

AI64TruncF64U const #

* wasm

const AI64TruncF64U

AI64TruncSatF32S const #

* wasm

const AI64TruncSatF32S

AI64TruncSatF32U const #

* wasm

const AI64TruncSatF32U

AI64TruncSatF64S const #

* wasm

const AI64TruncSatF64S

AI64TruncSatF64U const #

* wasm

const AI64TruncSatF64U

AI64Xor const #

* wasm

const AI64Xor

AIf const #

* wasm

const AIf

ALAST const #

* wasm

const ALAST

ALast const #

* wasm

const ALast

ALocalGet const #

* wasm

const ALocalGet

ALocalSet const #

* wasm

const ALocalSet

ALocalTee const #

* wasm

const ALocalTee

ALoop const #

* wasm

const ALoop

AMOVB const #

* wasm

const AMOVB

AMOVD const #

* wasm

const AMOVD

AMOVH const #

* wasm

const AMOVH

AMOVW const #

* wasm

const AMOVW

AMemoryCopy const #

* wasm

const AMemoryCopy

AMemoryFill const #

* wasm

const AMemoryFill

AMemoryInit const #

* wasm

const AMemoryInit

ANop const #

* wasm

const ANop

ANot const #

* wasm

const ANot

ARESUMEPOINT const #

* wasm

const ARESUMEPOINT

ARETUNWIND const #

* wasm

const ARETUNWIND

AReturn const #

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

ASelect const #

* wasm

const ASelect

ASet const #

* wasm

const ASet

ATableCopy const #

* wasm

const ATableCopy

ATableFill const #

* wasm

const ATableFill

ATableGrow const #

* wasm

const ATableGrow

ATableInit const #

* wasm

const ATableInit

ATableSize const #

* wasm

const ATableSize

ATee const #

* wasm

const ATee

AUnreachable const #

* wasm

const AUnreachable

AWORD const #

* wasm

const AWORD

Anames var #

var Anames = []string{...}

DONE const #

mark flags

const DONE = *ast.BinaryExpr

GojsModule const #

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"

Linkwasm var #

var Linkwasm = obj.LinkArch{...}

MAXREG const #

const MAXREG

MINREG const #

const MINREG = REG_SP

PRESERVEFLAGS const #

const PRESERVEFLAGS

REGCTXT const #

const REGCTXT = REG_CTXT

REGG const #

const REGG = REG_g

REGSP const #

const REGSP = REG_SP

REG_CTXT const #

const REG_CTXT

REG_F0 const #

f32 locals

const REG_F0

REG_F1 const #

const REG_F1

REG_F10 const #

const REG_F10

REG_F11 const #

const REG_F11

REG_F12 const #

const REG_F12

REG_F13 const #

const REG_F13

REG_F14 const #

const REG_F14

REG_F15 const #

const REG_F15

REG_F16 const #

f64 locals

const REG_F16

REG_F17 const #

const REG_F17

REG_F18 const #

const REG_F18

REG_F19 const #

const REG_F19

REG_F2 const #

const REG_F2

REG_F20 const #

const REG_F20

REG_F21 const #

const REG_F21

REG_F22 const #

const REG_F22

REG_F23 const #

const REG_F23

REG_F24 const #

const REG_F24

REG_F25 const #

const REG_F25

REG_F26 const #

const REG_F26

REG_F27 const #

const REG_F27

REG_F28 const #

const REG_F28

REG_F29 const #

const REG_F29

REG_F3 const #

const REG_F3

REG_F30 const #

const REG_F30

REG_F31 const #

const REG_F31

REG_F4 const #

const REG_F4

REG_F5 const #

const REG_F5

REG_F6 const #

const REG_F6

REG_F7 const #

const REG_F7

REG_F8 const #

const REG_F8

REG_F9 const #

const REG_F9

REG_NONE const #

const REG_NONE = 0

REG_PAUSE const #

const REG_PAUSE

REG_PC_B const #

const REG_PC_B

REG_R0 const #

i32 locals

const REG_R0

REG_R1 const #

const REG_R1

REG_R10 const #

const REG_R10

REG_R11 const #

const REG_R11

REG_R12 const #

const REG_R12

REG_R13 const #

const REG_R13

REG_R14 const #

const REG_R14

REG_R15 const #

const REG_R15

REG_R2 const #

const REG_R2

REG_R3 const #

const REG_R3

REG_R4 const #

const REG_R4

REG_R5 const #

const REG_R5

REG_R6 const #

const REG_R6

REG_R7 const #

const REG_R7

REG_R8 const #

const REG_R8

REG_R9 const #

const REG_R9

REG_RET0 const #

RET* are used by runtime.return0 and runtime.reflectcall. These functions pass return values in registers.

const REG_RET0

REG_RET1 const #

const REG_RET1

REG_RET2 const #

const REG_RET2

REG_RET3 const #

const REG_RET3

REG_SP const #

globals

const REG_SP = *ast.BinaryExpr

REG_g const #

const REG_g

Register var #

var Register = map[string]int16{...}

WasmImport const #

mark flags

const WasmImport = *ast.BinaryExpr

f32 const #

const f32 valueType = 0x7D

f64 const #

const f64 valueType = 0x7C

i32 const #

const i32 valueType = 0x7F

i64 const #

const i64 valueType = 0x7E

morestack var #

var morestack *obj.LSym

morestackNoCtxt var #

var morestackNoCtxt *obj.LSym

notUsePC_B var #

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{...}

registerNames var #

var registerNames []string

runtimeNotInitialized var #

var runtimeNotInitialized *obj.LSym

sigpanic var #

var sigpanic *obj.LSym

unaryDst var #

var unaryDst = map[obj.As]bool{...}

wasm_pc_f_loop_export var #

var wasm_pc_f_loop_export *obj.LSym

Type Aliases

valueType type #

type valueType byte

Functions

align function #

func align(as obj.As) uint64

assemble function #

func assemble(ctxt *obj.Link, s *obj.LSym, newprog obj.ProgAlloc)

constAddr function #

func constAddr(value int64) obj.Addr

genWasmExportWrapper function #

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)

genWasmImportWrapper function #

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)

init function #

func init()

instinit function #

func instinit(ctxt *obj.Link)

preprocess function #

func preprocess(ctxt *obj.Link, s *obj.LSym, newprog obj.ProgAlloc)

rconv function #

func rconv(r int) string

regAddr function #

func regAddr(reg int16) obj.Addr

regType function #

func regType(reg int16) valueType

updateLocalSP function #

func updateLocalSP(w *bytes.Buffer)

writeOpcode function #

func writeOpcode(w *bytes.Buffer, as obj.As)

writeSleb128 function #

func writeSleb128(w io.ByteWriter, v int64)

writeUleb128 function #

func writeUleb128(w io.ByteWriter, v uint64)

Generated with Arrow