Skip to content

Instantly share code, notes, and snippets.

@christian-rogobete
Created February 7, 2023 14:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save christian-rogobete/4638ff024c23ce5cd9d142e3f3450be7 to your computer and use it in GitHub Desktop.
Save christian-rogobete/4638ff024c23ce5cd9d142e3f3450be7 to your computer and use it in GitHub Desktop.
Wat representation of add.wasm
(module
(type $t0 (func (param i32 i32 i32 i32) (result i32)))
(type $t1 (func (param i32) (result i32)))
(type $t2 (func (param i32 i32)))
(type $t3 (func (param i32 i32 i32 i32)))
(type $t4 (func (param i32 i32 i32 i32 i32) (result i32)))
(type $t5 (func (param i32)))
(type $t6 (func (param i32 i32) (result i32)))
(type $t7 (func))
(type $t8 (func (param i64 i64) (result i64)))
(func $runtime.memequal (type $t0) (param $p0 i32) (param $p1 i32) (param $p2 i32) (param $p3 i32) (result i32)
(local $l4 i32) (local $l5 i32)
(local.set $l4
(i32.const 0))
(block $B0
(loop $L1
(br_if $B0
(i32.eq
(local.get $p2)
(local.tee $l5
(local.get $l4))))
(local.set $l4
(i32.add
(local.get $l5)
(i32.const 1)))
(br_if $L1
(i32.eq
(i32.load8_u
(i32.add
(local.get $p0)
(local.get $l5)))
(i32.load8_u
(i32.add
(local.get $p1)
(local.get $l5)))))))
(i32.ge_u
(local.get $l5)
(local.get $p2)))
(func $runtime.hash32 (type $t0) (param $p0 i32) (param $p1 i32) (param $p2 i32) (param $p3 i32) (result i32)
(local.set $p2
(i32.mul
(local.get $p2)
(i32.const -2128831035)))
(block $B0
(loop $L1
(br_if $B0
(i32.eqz
(local.get $p1)))
(local.set $p1
(i32.add
(local.get $p1)
(i32.const -1)))
(local.set $p2
(i32.mul
(i32.xor
(local.get $p2)
(i32.load8_u
(local.get $p0)))
(i32.const 16777619)))
(local.set $p0
(i32.add
(local.get $p0)
(i32.const 1)))
(br $L1)))
(local.get $p2))
(func $runtime.alloc (type $t1) (param $p0 i32) (result i32)
(local $l1 i32) (local $l2 i32) (local $l3 i32)
(i64.store offset=65592
(i32.const 0)
(i64.add
(i64.load offset=65592
(i32.const 0))
(i64.const 1)))
(i32.store offset=65540
(i32.const 0)
(local.tee $p0
(i32.add
(local.tee $l1
(i32.load offset=65540
(i32.const 0)))
(local.tee $l2
(i32.and
(i32.add
(local.get $p0)
(i32.const 15))
(i32.const -16))))))
(i64.store offset=65584
(i32.const 0)
(i64.add
(i64.load offset=65584
(i32.const 0))
(i64.extend_i32_u
(local.get $l2))))
(local.set $l3
(i32.load offset=65576
(i32.const 0)))
(block $B0
(loop $L1
(br_if $B0
(i32.lt_u
(local.get $p0)
(local.get $l3)))
(block $B2
(br_if $B2
(i32.eq
(memory.grow
(memory.size))
(i32.const -1)))
(i32.store offset=65576
(i32.const 0)
(local.tee $l3
(i32.shl
(memory.size)
(i32.const 16))))
(local.set $p0
(i32.load offset=65540
(i32.const 0)))
(br $L1)))
(unreachable)
(unreachable))
(memory.fill
(local.get $l1)
(i32.const 0)
(local.get $l2))
(local.get $l1))
(func $malloc (type $t1) (param $p0 i32) (result i32)
(local $l1 i32) (local $l2 i32)
(global.set $__stack_pointer
(local.tee $l1
(i32.sub
(global.get $__stack_pointer)
(i32.const 16))))
(block $B0
(br_if $B0
(i32.lt_s
(local.get $p0)
(i32.const 0)))
(local.set $l2
(call $runtime.alloc
(local.get $p0)))
(br_if $B0
(i32.eqz
(local.get $p0)))
(i32.store offset=8
(local.get $l1)
(local.get $p0))
(i32.store offset=4
(local.get $l1)
(local.get $p0))
(i32.store
(local.get $l1)
(local.get $l2))
(i32.store offset=12
(local.get $l1)
(local.get $l2))
(call $runtime.hashmapBinarySet
(i32.add
(local.get $l1)
(i32.const 12))
(local.get $l1))
(global.set $__stack_pointer
(i32.add
(local.get $l1)
(i32.const 16)))
(return
(local.get $l2)))
(unreachable)
(unreachable))
(func $runtime.hashmapBinarySet (type $t2) (param $p0 i32) (param $p1 i32)
(call $runtime.hashmapSet
(i32.const 65544)
(local.get $p0)
(local.get $p1)
(call $runtime.hash32
(local.get $p0)
(i32.load8_u offset=65556
(i32.const 0))
(i32.load offset=65548
(i32.const 0))
(local.get $p0))))
(func $runtime.hashmapSet (type $t3) (param $p0 i32) (param $p1 i32) (param $p2 i32) (param $p3 i32)
(local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32) (local $l10 i32) (local $l11 i32) (local $l12 i32) (local $l13 i32) (local $l14 i32) (local $l15 i32) (local $l16 i32) (local $l17 i32) (local $l18 i32) (local $l19 i32)
(global.set $__stack_pointer
(local.tee $l4
(i32.sub
(global.get $__stack_pointer)
(i32.const 32))))
(block $B0
(block $B1
(br_if $B1
(i32.eqz
(local.get $p0)))
(block $B2
(br_if $B2
(i32.gt_u
(local.tee $l5
(i32.load8_u offset=14
(local.get $p0)))
(i32.const 29)))
(br_if $B2
(i32.le_u
(i32.load offset=8
(local.get $p0))
(i32.shl
(i32.const 6)
(local.get $l5))))
(i32.store offset=65536
(i32.const 0)
(local.tee $p3
(i32.xor
(i32.shl
(local.tee $p3
(i32.xor
(i32.shr_u
(local.tee $p3
(i32.xor
(i32.shl
(local.tee $p3
(i32.load offset=65536
(i32.const 0)))
(i32.const 7))
(local.get $p3)))
(i32.const 1))
(local.get $p3)))
(i32.const 9))
(local.get $p3))))
(i64.store offset=8
(local.get $l4)
(i64.const 0))
(i64.store offset=24
(local.get $l4)
(i64.load offset=24 align=4
(local.get $p0)))
(i64.store offset=16
(local.get $l4)
(i64.load offset=16 align=4
(local.get $p0)))
(i32.store16 offset=12
(local.get $l4)
(i32.load16_u offset=12
(local.get $p0)))
(i32.store offset=8
(local.get $l4)
(i32.const 0))
(i32.store offset=4
(local.get $l4)
(local.get $p3))
(i32.store8 offset=14
(local.get $l4)
(local.tee $l5
(i32.add
(local.get $l5)
(i32.const 1))))
(i32.store
(local.get $l4)
(call $runtime.alloc
(i32.shl
(i32.add
(i32.shl
(i32.add
(i32.load8_u offset=13
(local.get $p0))
(i32.load8_u offset=12
(local.get $p0)))
(i32.const 3))
(i32.const 12))
(i32.and
(local.get $l5)
(i32.const 255)))))
(local.set $l6
(call $runtime.alloc
(i32.load8_u offset=12
(local.get $p0))))
(local.set $l7
(call $runtime.alloc
(i32.load8_u offset=13
(local.get $p0))))
(local.set $l8
(i32.const 0))
(local.set $l9
(i32.const 0))
(local.set $l10
(i32.const 0))
(local.set $l11
(i32.const 0))
(local.set $l12
(i32.const 0))
(local.set $l13
(i32.const 0))
(local.set $l5
(i32.const 0))
(local.set $l14
(i32.const 0))
(local.set $l15
(i32.const 0))
(local.set $l16
(i32.const 0))
(local.set $p3
(i32.const 0))
(loop $L3
(block $B4
(br_if $B4
(local.get $l16))
(local.set $l15
(i32.shr_u
(local.tee $l9
(select
(i32.const 0)
(i32.shl
(i32.const 1)
(local.tee $l17
(i32.load8_u offset=14
(local.get $p0))))
(i32.gt_u
(local.get $l17)
(i32.const 31))))
(i32.const 24)))
(local.set $l14
(i32.shr_u
(local.get $l9)
(i32.const 16)))
(local.set $l8
(i32.shr_u
(local.get $l9)
(i32.const 8)))
(local.set $l16
(i32.load
(local.get $p0))))
(local.set $l18
(i32.or
(i32.or
(i32.or
(i32.shl
(local.get $l15)
(i32.const 24))
(i32.shl
(i32.and
(local.get $l14)
(i32.const 255))
(i32.const 16)))
(i32.shl
(i32.and
(local.get $l8)
(i32.const 255))
(i32.const 8)))
(i32.and
(local.get $l9)
(i32.const 255))))
(block $B5
(loop $L6
(block $B7
(br_if $B7
(i32.lt_u
(i32.and
(local.get $p3)
(i32.const 255))
(i32.const 8)))
(br_if $B1
(i32.eqz
(local.get $l5)))
(local.set $l5
(i32.load offset=8
(local.get $l5)))
(local.set $p3
(i32.const 0)))
(block $B8
(br_if $B8
(local.get $l5))
(br_if $B5
(i32.ge_u
(local.tee $l5
(i32.or
(i32.or
(i32.or
(i32.shl
(i32.and
(local.get $l11)
(i32.const 255))
(i32.const 16))
(i32.shl
(local.get $l10)
(i32.const 24)))
(i32.shl
(i32.and
(local.get $l12)
(i32.const 255))
(i32.const 8)))
(i32.and
(local.get $l13)
(i32.const 255))))
(local.get $l18)))
(br_if $B1
(i32.eqz
(local.get $l16)))
(local.set $l10
(i32.shr_u
(local.tee $l13
(i32.add
(local.get $l5)
(i32.const 1)))
(i32.const 24)))
(local.set $l11
(i32.shr_u
(local.get $l13)
(i32.const 16)))
(local.set $l12
(i32.shr_u
(local.get $l13)
(i32.const 8)))
(local.set $l5
(i32.add
(local.get $l16)
(i32.mul
(i32.add
(i32.shl
(i32.add
(i32.load8_u offset=13
(local.get $p0))
(i32.load8_u offset=12
(local.get $p0)))
(i32.const 3))
(i32.const 12))
(local.get $l5)))))
(block $B9
(br_if $B9
(i32.load8_u
(i32.add
(local.get $l5)
(local.tee $l19
(i32.and
(local.get $p3)
(i32.const 255))))))
(local.set $p3
(i32.add
(local.get $p3)
(i32.const 1)))
(br $L6))
(memory.copy
(local.get $l6)
(i32.add
(i32.add
(i32.mul
(local.tee $l17
(i32.load8_u offset=12
(local.get $p0)))
(local.get $l19))
(local.get $l5))
(i32.const 12))
(local.get $l17))
(block $B10
(block $B11
(br_if $B11
(i32.ne
(local.get $l16)
(i32.load
(local.get $p0))))
(memory.copy
(local.get $l7)
(i32.add
(i32.add
(i32.add
(i32.shl
(local.get $l17)
(i32.const 3))
(i32.mul
(local.tee $l17
(i32.load8_u offset=13
(local.get $p0)))
(local.get $l19)))
(local.get $l5))
(i32.const 12))
(local.get $l17))
(local.set $p3
(i32.add
(local.get $p3)
(i32.const 1)))
(br $B10))
(br_if $B1
(i32.eqz
(local.tee $l19
(i32.load offset=28
(local.get $p0)))))
(local.set $p3
(i32.add
(local.get $p3)
(i32.const 1)))
(local.set $l17
(call_indirect $T0 (type $t0)
(local.get $l6)
(local.get $l17)
(i32.load offset=4
(local.get $p0))
(i32.load offset=24
(local.get $p0))
(local.get $l19)))
(br_if $L6
(i32.eqz
(i32.and
(call $runtime.hashmapGet
(local.get $p0)
(local.get $l6)
(local.get $l7)
(i32.load8_u offset=13
(local.get $p0))
(local.get $l17))
(i32.const 1))))))
(br_if $B1
(i32.eqz
(local.tee $l17
(i32.load offset=28
(local.get $l4)))))
(call $runtime.hashmapSet
(local.get $l4)
(local.get $l6)
(local.get $l7)
(call_indirect $T0 (type $t0)
(local.get $l6)
(i32.load8_u offset=12
(local.get $l4))
(i32.load offset=4
(local.get $l4))
(i32.load offset=24
(local.get $l4))
(local.get $l17)))
(br $L3)))
(i32.store
(local.get $p0)
(i32.load
(local.get $l4)))
(i64.store offset=4 align=4
(local.get $p0)
(i64.load offset=4 align=4
(local.get $l4)))
(i32.store8 offset=12
(local.get $p0)
(i32.load8_u offset=12
(local.get $l4)))
(i32.store16 offset=13 align=1
(local.get $p0)
(i32.load16_u offset=13 align=1
(local.get $l4)))
(i64.store offset=16 align=4
(local.get $p0)
(i64.load offset=16
(local.get $l4)))
(i64.store offset=24 align=4
(local.get $p0)
(i64.load offset=24
(local.get $l4)))
(br_if $B1
(i32.eqz
(local.tee $l5
(i32.load offset=28
(local.get $p0)))))
(local.set $p3
(call_indirect $T0 (type $t0)
(local.get $p1)
(i32.load8_u offset=12
(local.get $p0))
(i32.load offset=4
(local.get $p0))
(i32.load offset=24
(local.get $p0))
(local.get $l5)))
(local.set $l5
(i32.load8_u offset=14
(local.get $p0))))
(local.set $l5
(i32.add
(i32.load
(local.get $p0))
(i32.mul
(i32.add
(i32.shl
(i32.add
(i32.load8_u offset=13
(local.get $p0))
(i32.load8_u offset=12
(local.get $p0)))
(i32.const 3))
(i32.const 12))
(i32.and
(select
(i32.const -1)
(i32.xor
(i32.shl
(i32.const -1)
(local.tee $l5
(i32.and
(local.get $l5)
(i32.const 255))))
(i32.const -1))
(i32.gt_u
(local.get $l5)
(i32.const 31)))
(local.get $p3)))))
(local.set $l7
(select
(local.tee $p3
(i32.shr_u
(local.get $p3)
(i32.const 24)))
(i32.const 1)
(local.get $p3)))
(local.set $l17
(i32.const 0))
(local.set $l6
(i32.const 0))
(local.set $l10
(i32.const 0))
(local.set $l16
(i32.const 0))
(block $B12
(loop $L13
(br_if $B12
(i32.eqz
(local.tee $p3
(local.get $l5))))
(local.set $l5
(i32.const 0))
(block $B14
(loop $L15
(br_if $B14
(i32.eq
(local.get $l5)
(i32.const 8)))
(local.set $l19
(i32.add
(i32.add
(i32.mul
(local.get $l5)
(local.tee $l17
(i32.load8_u offset=12
(local.get $p0))))
(local.get $p3))
(i32.const 12)))
(local.set $l13
(i32.add
(i32.add
(i32.add
(i32.shl
(local.get $l17)
(i32.const 3))
(i32.mul
(local.get $l5)
(i32.load8_u offset=13
(local.get $p0))))
(local.get $p3))
(i32.const 12)))
(block $B16
(br_if $B16
(i32.ne
(local.tee $l12
(i32.load8_u
(local.tee $l11
(i32.add
(local.get $p3)
(local.get $l5)))))
(local.get $l7)))
(br_if $B1
(i32.eqz
(local.tee $l18
(i32.load offset=20
(local.get $p0)))))
(br_if $B16
(i32.eqz
(i32.and
(call_indirect $T0 (type $t0)
(local.get $p1)
(local.get $l19)
(local.get $l17)
(i32.load offset=16
(local.get $p0))
(local.get $l18))
(i32.const 1))))
(memory.copy
(local.get $l13)
(local.get $p2)
(i32.load8_u offset=13
(local.get $p0)))
(br $B0))
(local.set $l16
(select
(local.get $l16)
(local.get $l11)
(local.tee $l17
(i32.or
(local.get $l12)
(local.get $l6)))))
(local.set $l6
(select
(local.get $l6)
(local.get $l19)
(local.get $l17)))
(local.set $l10
(select
(local.get $l10)
(local.get $l13)
(local.get $l17)))
(local.set $l5
(i32.add
(local.get $l5)
(i32.const 1)))
(br $L15)))
(local.set $l5
(i32.load offset=8
(local.get $p3)))
(local.set $l17
(local.get $p3))
(br $L13)))
(block $B17
(br_if $B17
(local.get $l6))
(br_if $B1
(i32.eqz
(local.get $l17)))
(local.set $l5
(call $runtime.alloc
(i32.add
(i32.shl
(i32.add
(i32.load8_u offset=13
(local.get $p0))
(i32.load8_u offset=12
(local.get $p0)))
(i32.const 3))
(i32.const 12))))
(i32.store offset=8
(local.get $p0)
(i32.add
(i32.load offset=8
(local.get $p0))
(i32.const 1)))
(memory.copy
(i32.add
(local.get $l5)
(i32.const 12))
(local.get $p1)
(local.tee $p3
(i32.load8_u offset=12
(local.get $p0))))
(memory.copy
(i32.add
(i32.add
(local.get $l5)
(i32.shl
(local.get $p3)
(i32.const 3)))
(i32.const 12))
(local.get $p2)
(i32.load8_u offset=13
(local.get $p0)))
(i32.store8
(local.get $l5)
(local.get $l7))
(i32.store offset=8
(local.get $l17)
(local.get $l5))
(br $B0))
(i32.store offset=8
(local.get $p0)
(i32.add
(i32.load offset=8
(local.get $p0))
(i32.const 1)))
(memory.copy
(local.get $l6)
(local.get $p1)
(i32.load8_u offset=12
(local.get $p0)))
(memory.copy
(local.get $l10)
(local.get $p2)
(i32.load8_u offset=13
(local.get $p0)))
(br_if $B1
(i32.eqz
(local.get $l16)))
(i32.store8
(local.get $l16)
(local.get $l7))
(br $B0))
(unreachable)
(unreachable))
(global.set $__stack_pointer
(i32.add
(local.get $l4)
(i32.const 32))))
(func $runtime.hashmapGet (type $t4) (param $p0 i32) (param $p1 i32) (param $p2 i32) (param $p3 i32) (param $p4 i32) (result i32)
(local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32)
(block $B0
(br_if $B0
(local.get $p0))
(memory.fill
(local.get $p2)
(i32.const 0)
(local.get $p3))
(return
(i32.const 0)))
(local.set $p3
(i32.add
(i32.load
(local.get $p0))
(i32.mul
(i32.add
(i32.shl
(i32.add
(i32.load8_u offset=13
(local.get $p0))
(i32.load8_u offset=12
(local.get $p0)))
(i32.const 3))
(i32.const 12))
(i32.and
(select
(i32.const -1)
(i32.xor
(i32.shl
(i32.const -1)
(local.tee $p3
(i32.load8_u offset=14
(local.get $p0))))
(i32.const -1))
(i32.gt_u
(local.get $p3)
(i32.const 31)))
(local.get $p4)))))
(local.set $l5
(select
(local.tee $p4
(i32.shr_u
(local.get $p4)
(i32.const 24)))
(i32.const 1)
(local.get $p4)))
(block $B1
(block $B2
(loop $L3
(br_if $B2
(i32.eqz
(local.get $p3)))
(local.set $p4
(i32.const 0))
(block $B4
(loop $L5
(br_if $B4
(i32.eq
(local.get $p4)
(i32.const 8)))
(block $B6
(br_if $B6
(i32.ne
(i32.load8_u
(i32.add
(local.get $p3)
(local.get $p4)))
(local.get $l5)))
(br_if $B1
(i32.eqz
(local.tee $l6
(i32.load offset=20
(local.get $p0)))))
(local.set $l7
(i32.load8_u offset=13
(local.get $p0)))
(br_if $B6
(i32.eqz
(i32.and
(call_indirect $T0 (type $t0)
(local.get $p1)
(i32.add
(i32.add
(i32.mul
(local.get $p4)
(local.tee $l8
(i32.load8_u offset=12
(local.get $p0))))
(local.get $p3))
(i32.const 12))
(local.get $l8)
(i32.load offset=16
(local.get $p0))
(local.get $l6))
(i32.const 1))))
(memory.copy
(local.get $p2)
(i32.add
(i32.add
(i32.add
(i32.shl
(local.get $l8)
(i32.const 3))
(i32.mul
(local.get $p4)
(local.get $l7)))
(local.get $p3))
(i32.const 12))
(i32.load8_u offset=13
(local.get $p0)))
(return
(i32.const 1)))
(local.set $p4
(i32.add
(local.get $p4)
(i32.const 1)))
(br $L5)))
(local.set $p3
(i32.load offset=8
(local.get $p3)))
(br $L3)))
(memory.fill
(local.get $p2)
(i32.const 0)
(i32.load8_u offset=13
(local.get $p0)))
(return
(i32.const 0)))
(unreachable)
(unreachable))
(func $free (type $t5) (param $p0 i32)
(local $l1 i32)
(global.set $__stack_pointer
(local.tee $l1
(i32.sub
(global.get $__stack_pointer)
(i32.const 16))))
(block $B0
(block $B1
(br_if $B1
(i32.eqz
(local.get $p0)))
(i32.store offset=12
(local.get $l1)
(local.get $p0))
(br_if $B0
(i32.eqz
(i32.and
(call $runtime.hashmapBinaryGet
(i32.add
(local.get $l1)
(i32.const 12))
(local.get $l1))
(i32.const 1))))
(i32.store
(local.get $l1)
(local.get $p0))
(call $runtime.hashmapBinaryDelete
(local.get $l1)))
(global.set $__stack_pointer
(i32.add
(local.get $l1)
(i32.const 16)))
(return))
(unreachable)
(unreachable))
(func $runtime.hashmapBinaryGet (type $t6) (param $p0 i32) (param $p1 i32) (result i32)
(call $runtime.hashmapGet
(i32.const 65544)
(local.get $p0)
(local.get $p1)
(i32.const 12)
(call $runtime.hash32
(local.get $p0)
(i32.load8_u offset=65556
(i32.const 0))
(i32.load offset=65548
(i32.const 0))
(local.get $p0))))
(func $runtime.hashmapBinaryDelete (type $t5) (param $p0 i32)
(local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32)
(local.set $l3
(select
(local.tee $l3
(i32.shr_u
(local.tee $l2
(call $runtime.hash32
(local.get $p0)
(local.tee $l1
(i32.load8_u offset=65556
(i32.const 0)))
(i32.load offset=65548
(i32.const 0))
(local.get $l1)))
(i32.const 24)))
(i32.const 1)
(local.get $l3)))
(local.set $l2
(i32.add
(i32.load offset=65544
(i32.const 0))
(i32.mul
(i32.add
(i32.shl
(i32.add
(i32.load8_u offset=65557
(i32.const 0))
(local.get $l1))
(i32.const 3))
(i32.const 12))
(i32.and
(select
(i32.const -1)
(i32.xor
(i32.shl
(i32.const -1)
(local.tee $l1
(i32.load8_u offset=65558
(i32.const 0))))
(i32.const -1))
(i32.gt_u
(local.get $l1)
(i32.const 31)))
(local.get $l2)))))
(block $B0
(loop $L1
(br_if $B0
(i32.eqz
(local.get $l2)))
(local.set $l1
(i32.const 0))
(block $B2
(block $B3
(loop $L4
(br_if $B3
(i32.eq
(local.get $l1)
(i32.const 8)))
(block $B5
(br_if $B5
(i32.ne
(i32.load8_u
(local.tee $l4
(i32.add
(local.get $l2)
(local.get $l1))))
(local.get $l3)))
(br_if $B2
(i32.eqz
(local.tee $l5
(i32.load offset=65564
(i32.const 0)))))
(br_if $B5
(i32.eqz
(i32.and
(call_indirect $T0 (type $t0)
(local.get $p0)
(i32.add
(i32.add
(i32.mul
(local.get $l1)
(local.tee $l6
(i32.load8_u offset=65556
(i32.const 0))))
(local.get $l2))
(i32.const 12))
(local.get $l6)
(i32.load offset=65560
(i32.const 0))
(local.get $l5))
(i32.const 1))))
(i32.store8
(local.get $l4)
(i32.const 0))
(i32.store offset=65552
(i32.const 0)
(i32.add
(i32.load offset=65552
(i32.const 0))
(i32.const -1)))
(br $B0))
(local.set $l1
(i32.add
(local.get $l1)
(i32.const 1)))
(br $L4)))
(local.set $l2
(i32.load offset=8
(local.get $l2)))
(br $L1)))
(unreachable)
(unreachable)))
(func $calloc (type $t6) (param $p0 i32) (param $p1 i32) (result i32)
(call $malloc
(i32.mul
(local.get $p1)
(local.get $p0))))
(func $realloc (type $t6) (param $p0 i32) (param $p1 i32) (result i32)
(local $l2 i32) (local $l3 i32) (local $l4 i32)
(global.set $__stack_pointer
(local.tee $l2
(i32.sub
(global.get $__stack_pointer)
(i32.const 16))))
(block $B0
(br_if $B0
(i32.lt_s
(local.get $p1)
(i32.const 0)))
(local.set $l3
(call $runtime.alloc
(local.get $p1)))
(block $B1
(br_if $B1
(i32.eqz
(local.get $p0)))
(i32.store offset=12
(local.get $l2)
(local.get $p0))
(br_if $B0
(i32.eqz
(i32.and
(call $runtime.hashmapBinaryGet
(i32.add
(local.get $l2)
(i32.const 12))
(local.get $l2))
(i32.const 1))))
(memory.copy
(local.get $l3)
(i32.load
(local.get $l2))
(select
(local.get $p1)
(local.tee $l4
(i32.load offset=4
(local.get $l2)))
(i32.gt_u
(local.get $l4)
(local.get $p1))))
(i32.store
(local.get $l2)
(local.get $p0))
(call $runtime.hashmapBinaryDelete
(local.get $l2)))
(br_if $B0
(i32.eqz
(local.get $p1)))
(i32.store offset=8
(local.get $l2)
(local.get $p1))
(i32.store offset=4
(local.get $l2)
(local.get $p1))
(i32.store
(local.get $l2)
(local.get $l3))
(i32.store offset=12
(local.get $l2)
(local.get $l3))
(call $runtime.hashmapBinarySet
(i32.add
(local.get $l2)
(i32.const 12))
(local.get $l2))
(global.set $__stack_pointer
(i32.add
(local.get $l2)
(i32.const 16)))
(return
(local.get $l3)))
(unreachable)
(unreachable))
(func $_start (type $t7)
(local $l0 i32)
(local.set $l0
(memory.size))
(i32.store offset=65540
(i32.const 0)
(i32.const 65888))
(i32.store offset=65576
(i32.const 0)
(i32.shl
(local.get $l0)
(i32.const 16)))
(i32.store offset=65576
(i32.const 0)
(i32.shl
(memory.size)
(i32.const 16))))
(func $add (type $t8) (param $p0 i64) (param $p1 i64) (result i64)
(i64.or
(i64.and
(i64.add
(i64.and
(local.get $p0)
(i64.const 68719476720))
(local.get $p1))
(i64.const 68719476720))
(i64.const 1)))
(func $dummy (type $t7))
(func $__wasm_call_dtors (type $t7)
(call $dummy)
(call $dummy))
(func $malloc.command_export (export "malloc") (type $t1) (param $p0 i32) (result i32)
(call $malloc
(local.get $p0))
(call $__wasm_call_dtors))
(func $free.command_export (export "free") (type $t5) (param $p0 i32)
(call $free
(local.get $p0))
(call $__wasm_call_dtors))
(func $calloc.command_export (export "calloc") (type $t6) (param $p0 i32) (param $p1 i32) (result i32)
(call $calloc
(local.get $p0)
(local.get $p1))
(call $__wasm_call_dtors))
(func $realloc.command_export (export "realloc") (type $t6) (param $p0 i32) (param $p1 i32) (result i32)
(call $realloc
(local.get $p0)
(local.get $p1))
(call $__wasm_call_dtors))
(func $_start.command_export (export "_start") (type $t7)
(call $_start)
(call $__wasm_call_dtors))
(func $add.command_export (export "add") (type $t8) (param $p0 i64) (param $p1 i64) (result i64)
(call $add
(local.get $p0)
(local.get $p1))
(call $__wasm_call_dtors))
(table $T0 3 3 funcref)
(memory $memory (export "memory") 2)
(global $__stack_pointer (mut i32) (i32.const 65536))
(elem $e0 (i32.const 1) func $runtime.memequal $runtime.hash32)
(data $.data (i32.const 65536) "\c1\82\01\00`\01\01\00@\00\01\00\c1\82\01\00\00\00\00\00\04\0c\01\00\00\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment