Skip to main content

Bytecode

Bit Organization table

BitsBytecodeInstructionArguments
000
00000 0x00 nop
00001 0x01 invalid
00010 0x02 pop
00011 0x03 dup
00100 0x04 swap
00101 0x05 call Function
00110 0x06 call.virt
00111 0x07 ret
01000 0x08 break
01001 0x09 jmp addr
01010 0x0A jmp.if.zero addr
01011 0x0B jmp.if.nzero addr
01100 0x0C jmp.if.eq addr
01101 0x0D jmp.if.neq addr
01110 0x0E jmp.if.gr addr
01111 0x0F jmp.if.ge addr
10000 0x10 jmp.if.ls addr
10001 0x11 jmp.if.le addr
10010 0x12 jmp.if.zero.set addr
10011 0x13 jmp.if.nzero.clear addr
10100 0x14 jmp.if.carry.set addr
10101 0x15 jmp.if.carry.clear addr
10110 0x16 jmp.if.sign.set addr
10111 0x17 jmp.if.sign.clear addr
11000 0x18 jmp.if.ovf.set addr
11001 0x19 jmp.if.ofv.clear addr
001
00000 0x20 add
00001 0x21 sub
00010 0x22 mul.s
00011 0x23 mul.u
00100 0x24 div.s
00101 0x25 div.u
00110 0x26 rem.s
00111 0x27 rem.u
01000 0x28 neg
01001 0x29 not
01010 0x2A and
01011 0x2B or
01100 0x2C xor
01100 0x2D shr
01101 0x2E shl
01110 0x2F ror
01111 0x30 rol
010
00000 0x40 block
00001 0x41 loop
00010 0x42 if
00011 0x43 else
00100 0x44 switch imm8
00101 0x45 end
011
00000 0x60 ld.const.i1 0
00001 0x61 ld.const.i1 1
00010 0x62 ld.const.i8 imm8
00011 0x63 ld.const.i16 imm16
00100 0x64 ld.const.i32 imm32
00101 0x65 ld.const.i64 imm64
00110 0x66 ld.const.i128 imm128
00111 0x67 ld.const.iptr immPtr
01000 0x68 ld.const.i[n] imm8 imm[n]
01001 0x69 ld.const.null
01010 0x6A ld.new.slice type imm32
01011 0x6B ld.new.type type
01100 0x6C ld.local imm8
01101 0x6D ld.local imm16
01100 0x6E ld.local.ref imm8
01101 0x6F ld.local.ref imm16
01110 0x70 ld.arg.0
01111 0x71 ld.arg.1
10000 0x72 ld.arg.2
10001 0x73 ld.arg.3
10001 0x74 ld.field
10001 0x75 ld.field.ref
10001 0x76 ld.func.ref
10001 0x77 ld.type.ref
10010 0x78 ld.index
100
00000 0x80 st.local imm8
00001 0x81 st.local imm16
00010 0x82 st.field Field
00011 0x83 st.index
101
00000 0xA0 extend imm8
00001 0xA1 trunc imm8
00010 0xA2 sigcast.s
00010 0xA2 sigcast.u
00010 0xA2 bitcast imm8
110
00000 0xC0 mem.copy
00001 0xC1 mem.fill
00010 0xC2 mem.eq
111
00000 0xE0 allow.ovf.
00001 0xE1 allow.nil.
00010 0xE2 src.offset.global imm32
00011 0xE3 src.offset.rel imm8
00100 0xE4 src.offset.rel imm16