-
-
Save kyranet/daec18bf0a6b5ee627ceb17dd9cf97e5 to your computer and use it in GitHub Desktop.
levenshtein-wasm optimized code, before and after.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(module | |
(type $FUNCSIG$iii (func (param i32 i32) (result i32))) | |
(type $FUNCSIG$v (func)) | |
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) | |
(type $FUNCSIG$vii (func (param i32 i32))) | |
(type $FUNCSIG$ii (func (param i32) (result i32))) | |
(type $FUNCSIG$viii (func (param i32 i32 i32))) | |
(type $FUNCSIG$vi (func (param i32))) | |
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) | |
(memory $0 1) | |
(data (i32.const 8) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") | |
(data (i32.const 56) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") | |
(data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s") | |
(data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") | |
(data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") | |
(data (i32.const 256) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") | |
(data (i32.const 304) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") | |
(data (i32.const 360) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") | |
(data (i32.const 416) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\91\04\00\00\02") | |
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) | |
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) | |
(global $~lib/rt/pure/END (mut i32) (i32.const 0)) | |
(global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) | |
(global $~lib/rt/__rtti_base i32 (i32.const 416)) | |
(export "memory" (memory $0)) | |
(export "__alloc" (func $~lib/rt/tlsf/__alloc)) | |
(export "__retain" (func $~lib/rt/pure/__retain)) | |
(export "__release" (func $~lib/rt/pure/__release)) | |
(export "__collect" (func $~lib/rt/pure/__collect)) | |
(export "__rtti_base" (global $~lib/rt/__rtti_base)) | |
(export "levenshtein" (func $assembly/index/levenshtein)) | |
(func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) | |
(local $2 i32) | |
(local $3 i32) | |
(local $4 i32) | |
(local $5 i32) | |
local.get $1 | |
i32.load | |
local.tee $3 | |
i32.const 1 | |
i32.and | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 276 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $3 | |
i32.const -4 | |
i32.and | |
local.tee $2 | |
i32.const 16 | |
i32.ge_u | |
if (result i32) | |
local.get $2 | |
i32.const 1073741808 | |
i32.lt_u | |
else | |
i32.const 0 | |
end | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 278 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $2 | |
i32.const 256 | |
i32.lt_u | |
if (result i32) | |
local.get $2 | |
i32.const 4 | |
i32.shr_u | |
local.set $2 | |
i32.const 0 | |
else | |
local.get $2 | |
i32.const 31 | |
local.get $2 | |
i32.clz | |
i32.sub | |
local.tee $3 | |
i32.const 4 | |
i32.sub | |
i32.shr_u | |
i32.const 16 | |
i32.xor | |
local.set $2 | |
local.get $3 | |
i32.const 7 | |
i32.sub | |
end | |
local.tee $3 | |
i32.const 23 | |
i32.lt_u | |
if (result i32) | |
local.get $2 | |
i32.const 16 | |
i32.lt_u | |
else | |
i32.const 0 | |
end | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 291 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $1 | |
i32.load offset=20 | |
local.set $4 | |
local.get $1 | |
i32.load offset=16 | |
local.tee $5 | |
if | |
local.get $5 | |
local.get $4 | |
i32.store offset=20 | |
end | |
local.get $4 | |
if | |
local.get $4 | |
local.get $5 | |
i32.store offset=16 | |
end | |
local.get $3 | |
i32.const 4 | |
i32.shl | |
local.get $2 | |
i32.add | |
i32.const 2 | |
i32.shl | |
local.get $0 | |
i32.add | |
i32.load offset=96 | |
local.get $1 | |
i32.eq | |
if | |
local.get $3 | |
i32.const 4 | |
i32.shl | |
local.get $2 | |
i32.add | |
i32.const 2 | |
i32.shl | |
local.get $0 | |
i32.add | |
local.get $4 | |
i32.store offset=96 | |
local.get $4 | |
i32.eqz | |
if | |
local.get $3 | |
i32.const 2 | |
i32.shl | |
local.get $0 | |
i32.add | |
local.get $3 | |
i32.const 2 | |
i32.shl | |
local.get $0 | |
i32.add | |
i32.load offset=4 | |
i32.const 1 | |
local.get $2 | |
i32.shl | |
i32.const -1 | |
i32.xor | |
i32.and | |
local.tee $1 | |
i32.store offset=4 | |
local.get $1 | |
i32.eqz | |
if | |
local.get $0 | |
local.get $0 | |
i32.load | |
i32.const 1 | |
local.get $3 | |
i32.shl | |
i32.const -1 | |
i32.xor | |
i32.and | |
i32.store | |
end | |
end | |
end | |
) | |
(func $~lib/rt/tlsf/insertBlock (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) | |
(local $2 i32) | |
(local $3 i32) | |
(local $4 i32) | |
(local $5 i32) | |
(local $6 i32) | |
(local $7 i32) | |
local.get $1 | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 204 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $1 | |
i32.load | |
local.tee $3 | |
i32.const 1 | |
i32.and | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 206 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $1 | |
i32.const 16 | |
i32.add | |
local.get $1 | |
i32.load | |
i32.const -4 | |
i32.and | |
i32.add | |
local.tee $4 | |
i32.load | |
local.tee $5 | |
i32.const 1 | |
i32.and | |
if | |
local.get $3 | |
i32.const -4 | |
i32.and | |
i32.const 16 | |
i32.add | |
local.get $5 | |
i32.const -4 | |
i32.and | |
i32.add | |
local.tee $2 | |
i32.const 1073741808 | |
i32.lt_u | |
if | |
local.get $0 | |
local.get $4 | |
call $~lib/rt/tlsf/removeBlock | |
local.get $1 | |
local.get $3 | |
i32.const 3 | |
i32.and | |
local.get $2 | |
i32.or | |
local.tee $3 | |
i32.store | |
local.get $1 | |
i32.const 16 | |
i32.add | |
local.get $1 | |
i32.load | |
i32.const -4 | |
i32.and | |
i32.add | |
local.tee $4 | |
i32.load | |
local.set $5 | |
end | |
end | |
local.get $3 | |
i32.const 2 | |
i32.and | |
if | |
local.get $1 | |
i32.const 4 | |
i32.sub | |
i32.load | |
local.tee $2 | |
i32.load | |
local.tee $6 | |
i32.const 1 | |
i32.and | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 227 | |
i32.const 15 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $6 | |
i32.const -4 | |
i32.and | |
i32.const 16 | |
i32.add | |
local.get $3 | |
i32.const -4 | |
i32.and | |
i32.add | |
local.tee $7 | |
i32.const 1073741808 | |
i32.lt_u | |
if (result i32) | |
local.get $0 | |
local.get $2 | |
call $~lib/rt/tlsf/removeBlock | |
local.get $2 | |
local.get $6 | |
i32.const 3 | |
i32.and | |
local.get $7 | |
i32.or | |
local.tee $3 | |
i32.store | |
local.get $2 | |
else | |
local.get $1 | |
end | |
local.set $1 | |
end | |
local.get $4 | |
local.get $5 | |
i32.const 2 | |
i32.or | |
i32.store | |
local.get $3 | |
i32.const -4 | |
i32.and | |
local.tee $2 | |
i32.const 16 | |
i32.ge_u | |
if (result i32) | |
local.get $2 | |
i32.const 1073741808 | |
i32.lt_u | |
else | |
i32.const 0 | |
end | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 242 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $4 | |
local.get $1 | |
i32.const 16 | |
i32.add | |
local.get $2 | |
i32.add | |
i32.ne | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 243 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $4 | |
i32.const 4 | |
i32.sub | |
local.get $1 | |
i32.store | |
local.get $2 | |
i32.const 256 | |
i32.lt_u | |
if (result i32) | |
local.get $2 | |
i32.const 4 | |
i32.shr_u | |
local.set $4 | |
i32.const 0 | |
else | |
local.get $2 | |
i32.const 31 | |
local.get $2 | |
i32.clz | |
i32.sub | |
local.tee $2 | |
i32.const 4 | |
i32.sub | |
i32.shr_u | |
i32.const 16 | |
i32.xor | |
local.set $4 | |
local.get $2 | |
i32.const 7 | |
i32.sub | |
end | |
local.tee $3 | |
i32.const 23 | |
i32.lt_u | |
if (result i32) | |
local.get $4 | |
i32.const 16 | |
i32.lt_u | |
else | |
i32.const 0 | |
end | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 259 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $3 | |
i32.const 4 | |
i32.shl | |
local.get $4 | |
i32.add | |
i32.const 2 | |
i32.shl | |
local.get $0 | |
i32.add | |
i32.load offset=96 | |
local.set $2 | |
local.get $1 | |
i32.const 0 | |
i32.store offset=16 | |
local.get $1 | |
local.get $2 | |
i32.store offset=20 | |
local.get $2 | |
if | |
local.get $2 | |
local.get $1 | |
i32.store offset=16 | |
end | |
local.get $3 | |
i32.const 4 | |
i32.shl | |
local.get $4 | |
i32.add | |
i32.const 2 | |
i32.shl | |
local.get $0 | |
i32.add | |
local.get $1 | |
i32.store offset=96 | |
local.get $0 | |
local.get $0 | |
i32.load | |
i32.const 1 | |
local.get $3 | |
i32.shl | |
i32.or | |
i32.store | |
local.get $3 | |
i32.const 2 | |
i32.shl | |
local.get $0 | |
i32.add | |
local.get $3 | |
i32.const 2 | |
i32.shl | |
local.get $0 | |
i32.add | |
i32.load offset=4 | |
i32.const 1 | |
local.get $4 | |
i32.shl | |
i32.or | |
i32.store offset=4 | |
) | |
(func $~lib/rt/tlsf/addMemory (; 3 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) | |
(local $3 i32) | |
(local $4 i32) | |
local.get $2 | |
i32.const 15 | |
i32.and | |
i32.eqz | |
i32.const 0 | |
local.get $1 | |
i32.const 15 | |
i32.and | |
i32.eqz | |
i32.const 0 | |
local.get $1 | |
local.get $2 | |
i32.le_u | |
select | |
select | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 385 | |
i32.const 4 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $0 | |
i32.load offset=1568 | |
local.tee $3 | |
if | |
local.get $1 | |
local.get $3 | |
i32.const 16 | |
i32.add | |
i32.lt_u | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 395 | |
i32.const 15 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $1 | |
i32.const 16 | |
i32.sub | |
local.get $3 | |
i32.eq | |
if | |
local.get $3 | |
i32.load | |
local.set $4 | |
local.get $1 | |
i32.const 16 | |
i32.sub | |
local.set $1 | |
end | |
else | |
local.get $1 | |
local.get $0 | |
i32.const 1572 | |
i32.add | |
i32.lt_u | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 407 | |
i32.const 4 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
end | |
local.get $2 | |
local.get $1 | |
i32.sub | |
local.tee $2 | |
i32.const 48 | |
i32.lt_u | |
if | |
return | |
end | |
local.get $1 | |
local.get $4 | |
i32.const 2 | |
i32.and | |
local.get $2 | |
i32.const 32 | |
i32.sub | |
i32.const 1 | |
i32.or | |
i32.or | |
i32.store | |
local.get $1 | |
i32.const 0 | |
i32.store offset=16 | |
local.get $1 | |
i32.const 0 | |
i32.store offset=20 | |
local.get $1 | |
local.get $2 | |
i32.add | |
i32.const 16 | |
i32.sub | |
local.tee $2 | |
i32.const 2 | |
i32.store | |
local.get $0 | |
local.get $2 | |
i32.store offset=1568 | |
local.get $0 | |
local.get $1 | |
call $~lib/rt/tlsf/insertBlock | |
) | |
(func $~lib/rt/tlsf/initializeRoot (; 4 ;) (type $FUNCSIG$v) | |
(local $0 i32) | |
(local $1 i32) | |
i32.const 1 | |
memory.size | |
local.tee $0 | |
i32.gt_s | |
if (result i32) | |
i32.const 1 | |
local.get $0 | |
i32.sub | |
memory.grow | |
i32.const 0 | |
i32.lt_s | |
else | |
i32.const 0 | |
end | |
if | |
unreachable | |
end | |
i32.const 464 | |
i32.const 0 | |
i32.store | |
i32.const 2032 | |
i32.const 0 | |
i32.store | |
i32.const 0 | |
local.set $0 | |
loop $repeat|0 | |
block $break|0 | |
local.get $0 | |
i32.const 23 | |
i32.ge_u | |
br_if $break|0 | |
local.get $0 | |
i32.const 2 | |
i32.shl | |
i32.const 464 | |
i32.add | |
i32.const 0 | |
i32.store offset=4 | |
i32.const 0 | |
local.set $1 | |
loop $repeat|1 | |
block $break|1 | |
local.get $1 | |
i32.const 16 | |
i32.ge_u | |
br_if $break|1 | |
local.get $0 | |
i32.const 4 | |
i32.shl | |
local.get $1 | |
i32.add | |
i32.const 2 | |
i32.shl | |
i32.const 464 | |
i32.add | |
i32.const 0 | |
i32.store offset=96 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.set $1 | |
br $repeat|1 | |
end | |
end | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.set $0 | |
br $repeat|0 | |
end | |
end | |
i32.const 464 | |
i32.const 2048 | |
memory.size | |
i32.const 16 | |
i32.shl | |
call $~lib/rt/tlsf/addMemory | |
i32.const 464 | |
global.set $~lib/rt/tlsf/ROOT | |
) | |
(func $~lib/rt/tlsf/prepareSize (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) | |
local.get $0 | |
i32.const 1073741808 | |
i32.ge_u | |
if | |
i32.const 72 | |
i32.const 24 | |
i32.const 447 | |
i32.const 29 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $0 | |
i32.const 15 | |
i32.add | |
i32.const -16 | |
i32.and | |
local.tee $0 | |
i32.const 16 | |
local.get $0 | |
i32.const 16 | |
i32.gt_u | |
select | |
) | |
(func $~lib/rt/tlsf/searchBlock (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) | |
(local $2 i32) | |
local.get $1 | |
i32.const 256 | |
i32.lt_u | |
if (result i32) | |
local.get $1 | |
i32.const 4 | |
i32.shr_u | |
local.set $1 | |
i32.const 0 | |
else | |
local.get $1 | |
i32.const 536870904 | |
i32.lt_u | |
if | |
i32.const 1 | |
i32.const 27 | |
local.get $1 | |
i32.clz | |
i32.sub | |
i32.shl | |
local.get $1 | |
i32.add | |
i32.const 1 | |
i32.sub | |
local.set $1 | |
end | |
local.get $1 | |
i32.const 31 | |
local.get $1 | |
i32.clz | |
i32.sub | |
local.tee $2 | |
i32.const 4 | |
i32.sub | |
i32.shr_u | |
i32.const 16 | |
i32.xor | |
local.set $1 | |
local.get $2 | |
i32.const 7 | |
i32.sub | |
end | |
local.tee $2 | |
i32.const 23 | |
i32.lt_u | |
if (result i32) | |
local.get $1 | |
i32.const 16 | |
i32.lt_u | |
else | |
i32.const 0 | |
end | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 337 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $2 | |
i32.const 2 | |
i32.shl | |
local.get $0 | |
i32.add | |
i32.load offset=4 | |
i32.const -1 | |
local.get $1 | |
i32.shl | |
i32.and | |
local.tee $1 | |
if (result i32) | |
local.get $1 | |
i32.ctz | |
local.get $2 | |
i32.const 4 | |
i32.shl | |
i32.add | |
i32.const 2 | |
i32.shl | |
local.get $0 | |
i32.add | |
i32.load offset=96 | |
else | |
local.get $0 | |
i32.load | |
i32.const -1 | |
local.get $2 | |
i32.const 1 | |
i32.add | |
i32.shl | |
i32.and | |
local.tee $1 | |
if (result i32) | |
local.get $1 | |
i32.ctz | |
local.tee $1 | |
i32.const 2 | |
i32.shl | |
local.get $0 | |
i32.add | |
i32.load offset=4 | |
local.tee $2 | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 350 | |
i32.const 17 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $2 | |
i32.ctz | |
local.get $1 | |
i32.const 4 | |
i32.shl | |
i32.add | |
i32.const 2 | |
i32.shl | |
local.get $0 | |
i32.add | |
i32.load offset=96 | |
else | |
i32.const 0 | |
end | |
end | |
) | |
(func $~lib/rt/tlsf/growMemory (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) | |
(local $2 i32) | |
memory.size | |
local.tee $2 | |
local.get $1 | |
i32.const 65535 | |
i32.add | |
i32.const -65536 | |
i32.and | |
i32.const 16 | |
i32.shr_u | |
local.tee $1 | |
local.get $2 | |
local.get $1 | |
i32.gt_s | |
select | |
memory.grow | |
i32.const 0 | |
i32.lt_s | |
if | |
local.get $1 | |
memory.grow | |
i32.const 0 | |
i32.lt_s | |
if | |
unreachable | |
end | |
end | |
local.get $0 | |
local.get $2 | |
i32.const 16 | |
i32.shl | |
memory.size | |
i32.const 16 | |
i32.shl | |
call $~lib/rt/tlsf/addMemory | |
) | |
(func $~lib/rt/tlsf/prepareBlock (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) | |
(local $3 i32) | |
(local $4 i32) | |
local.get $1 | |
i32.load | |
local.set $3 | |
local.get $2 | |
i32.const 15 | |
i32.and | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 364 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $3 | |
i32.const -4 | |
i32.and | |
local.get $2 | |
i32.sub | |
local.tee $4 | |
i32.const 32 | |
i32.ge_u | |
if | |
local.get $1 | |
local.get $3 | |
i32.const 2 | |
i32.and | |
local.get $2 | |
i32.or | |
i32.store | |
local.get $1 | |
i32.const 16 | |
i32.add | |
local.get $2 | |
i32.add | |
local.tee $1 | |
local.get $4 | |
i32.const 16 | |
i32.sub | |
i32.const 1 | |
i32.or | |
i32.store | |
local.get $0 | |
local.get $1 | |
call $~lib/rt/tlsf/insertBlock | |
else | |
local.get $1 | |
local.get $3 | |
i32.const -2 | |
i32.and | |
i32.store | |
local.get $1 | |
i32.const 16 | |
i32.add | |
local.get $1 | |
i32.load | |
i32.const -4 | |
i32.and | |
i32.add | |
local.get $1 | |
i32.const 16 | |
i32.add | |
local.get $1 | |
i32.load | |
i32.const -4 | |
i32.and | |
i32.add | |
i32.load | |
i32.const -3 | |
i32.and | |
i32.store | |
end | |
) | |
(func $~lib/rt/tlsf/allocateBlock (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) | |
(local $2 i32) | |
(local $3 i32) | |
local.get $0 | |
local.get $1 | |
call $~lib/rt/tlsf/prepareSize | |
local.tee $3 | |
call $~lib/rt/tlsf/searchBlock | |
local.tee $2 | |
i32.eqz | |
if | |
local.get $0 | |
local.get $3 | |
call $~lib/rt/tlsf/growMemory | |
local.get $0 | |
local.get $3 | |
call $~lib/rt/tlsf/searchBlock | |
local.tee $2 | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 477 | |
i32.const 15 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
end | |
local.get $2 | |
i32.load | |
i32.const -4 | |
i32.and | |
local.get $3 | |
i32.lt_u | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 479 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $2 | |
i32.const 0 | |
i32.store offset=4 | |
local.get $2 | |
local.get $1 | |
i32.store offset=12 | |
local.get $0 | |
local.get $2 | |
call $~lib/rt/tlsf/removeBlock | |
local.get $0 | |
local.get $2 | |
local.get $3 | |
call $~lib/rt/tlsf/prepareBlock | |
local.get $2 | |
) | |
(func $~lib/rt/tlsf/__alloc (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) | |
(local $2 i32) | |
global.get $~lib/rt/tlsf/ROOT | |
local.tee $2 | |
if (result i32) | |
local.get $2 | |
else | |
call $~lib/rt/tlsf/initializeRoot | |
global.get $~lib/rt/tlsf/ROOT | |
end | |
local.get $0 | |
call $~lib/rt/tlsf/allocateBlock | |
local.tee $0 | |
local.get $1 | |
i32.store offset=8 | |
local.get $0 | |
i32.const 16 | |
i32.add | |
) | |
(func $~lib/rt/pure/increment (; 11 ;) (type $FUNCSIG$vi) (param $0 i32) | |
(local $1 i32) | |
local.get $0 | |
i32.load offset=4 | |
local.tee $1 | |
i32.const -268435456 | |
i32.and | |
local.get $1 | |
i32.const 1 | |
i32.add | |
i32.const -268435456 | |
i32.and | |
i32.ne | |
if | |
i32.const 0 | |
i32.const 128 | |
i32.const 104 | |
i32.const 2 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
i32.store offset=4 | |
local.get $0 | |
i32.load | |
i32.const 1 | |
i32.and | |
if | |
i32.const 0 | |
i32.const 128 | |
i32.const 107 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
) | |
(func $~lib/rt/pure/__retain (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) | |
local.get $0 | |
i32.const 452 | |
i32.gt_u | |
if | |
local.get $0 | |
i32.const 16 | |
i32.sub | |
call $~lib/rt/pure/increment | |
end | |
local.get $0 | |
) | |
(func $~lib/rt/tlsf/freeBlock (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) | |
(local $2 i32) | |
local.get $1 | |
i32.load | |
local.tee $2 | |
i32.const 1 | |
i32.and | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 531 | |
i32.const 2 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $1 | |
local.get $2 | |
i32.const 1 | |
i32.or | |
i32.store | |
local.get $0 | |
local.get $1 | |
call $~lib/rt/tlsf/insertBlock | |
) | |
(func $~lib/rt/__typeinfo (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) | |
local.get $0 | |
i32.const 416 | |
i32.load | |
i32.gt_u | |
if | |
i32.const 176 | |
i32.const 232 | |
i32.const 22 | |
i32.const 27 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $0 | |
i32.const 3 | |
i32.shl | |
i32.const 420 | |
i32.add | |
i32.load | |
) | |
(func $~lib/util/memory/memcpy (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) | |
(local $3 i32) | |
(local $4 i32) | |
(local $5 i32) | |
loop $continue|0 | |
local.get $1 | |
i32.const 3 | |
i32.and | |
i32.const 0 | |
local.get $2 | |
select | |
if | |
local.get $0 | |
local.tee $3 | |
i32.const 1 | |
i32.add | |
local.set $0 | |
local.get $1 | |
local.tee $4 | |
i32.const 1 | |
i32.add | |
local.set $1 | |
local.get $3 | |
local.get $4 | |
i32.load8_u | |
i32.store8 | |
local.get $2 | |
i32.const 1 | |
i32.sub | |
local.set $2 | |
br $continue|0 | |
end | |
end | |
local.get $0 | |
i32.const 3 | |
i32.and | |
i32.eqz | |
if | |
loop $continue|1 | |
local.get $2 | |
i32.const 16 | |
i32.ge_u | |
if | |
local.get $0 | |
local.get $1 | |
i32.load | |
i32.store | |
local.get $0 | |
i32.const 4 | |
i32.add | |
local.get $1 | |
i32.const 4 | |
i32.add | |
i32.load | |
i32.store | |
local.get $0 | |
i32.const 8 | |
i32.add | |
local.get $1 | |
i32.const 8 | |
i32.add | |
i32.load | |
i32.store | |
local.get $0 | |
i32.const 12 | |
i32.add | |
local.get $1 | |
i32.const 12 | |
i32.add | |
i32.load | |
i32.store | |
local.get $1 | |
i32.const 16 | |
i32.add | |
local.set $1 | |
local.get $0 | |
i32.const 16 | |
i32.add | |
local.set $0 | |
local.get $2 | |
i32.const 16 | |
i32.sub | |
local.set $2 | |
br $continue|1 | |
end | |
end | |
local.get $2 | |
i32.const 8 | |
i32.and | |
if | |
local.get $0 | |
local.get $1 | |
i32.load | |
i32.store | |
local.get $0 | |
i32.const 4 | |
i32.add | |
local.get $1 | |
i32.const 4 | |
i32.add | |
i32.load | |
i32.store | |
local.get $1 | |
i32.const 8 | |
i32.add | |
local.set $1 | |
local.get $0 | |
i32.const 8 | |
i32.add | |
local.set $0 | |
end | |
local.get $2 | |
i32.const 4 | |
i32.and | |
if | |
local.get $0 | |
local.get $1 | |
i32.load | |
i32.store | |
local.get $1 | |
i32.const 4 | |
i32.add | |
local.set $1 | |
local.get $0 | |
i32.const 4 | |
i32.add | |
local.set $0 | |
end | |
local.get $2 | |
i32.const 2 | |
i32.and | |
if | |
local.get $0 | |
local.get $1 | |
i32.load16_u | |
i32.store16 | |
local.get $1 | |
i32.const 2 | |
i32.add | |
local.set $1 | |
local.get $0 | |
i32.const 2 | |
i32.add | |
local.set $0 | |
end | |
local.get $2 | |
i32.const 1 | |
i32.and | |
if | |
local.get $0 | |
local.get $1 | |
i32.load8_u | |
i32.store8 | |
end | |
return | |
end | |
local.get $2 | |
i32.const 32 | |
i32.ge_u | |
if | |
block $break|2 | |
block $case2|2 | |
block $case1|2 | |
local.get $0 | |
i32.const 3 | |
i32.and | |
local.tee $3 | |
i32.const 1 | |
i32.ne | |
if | |
local.get $3 | |
i32.const 2 | |
i32.eq | |
br_if $case1|2 | |
local.get $3 | |
i32.const 3 | |
i32.eq | |
br_if $case2|2 | |
br $break|2 | |
end | |
local.get $1 | |
i32.load | |
local.set $5 | |
local.get $0 | |
local.get $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $3 | |
i32.const 1 | |
i32.add | |
local.set $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $4 | |
i32.const 1 | |
i32.add | |
local.set $1 | |
local.get $3 | |
local.get $4 | |
i32.load8_u | |
i32.store8 | |
local.get $2 | |
i32.const 3 | |
i32.sub | |
local.set $2 | |
loop $continue|3 | |
local.get $2 | |
i32.const 17 | |
i32.ge_u | |
if | |
local.get $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
i32.load | |
local.tee $3 | |
i32.const 8 | |
i32.shl | |
local.get $5 | |
i32.const 24 | |
i32.shr_u | |
i32.or | |
i32.store | |
local.get $0 | |
i32.const 4 | |
i32.add | |
local.get $3 | |
i32.const 24 | |
i32.shr_u | |
local.get $1 | |
i32.const 5 | |
i32.add | |
i32.load | |
local.tee $3 | |
i32.const 8 | |
i32.shl | |
i32.or | |
i32.store | |
local.get $0 | |
i32.const 8 | |
i32.add | |
local.get $3 | |
i32.const 24 | |
i32.shr_u | |
local.get $1 | |
i32.const 9 | |
i32.add | |
i32.load | |
local.tee $3 | |
i32.const 8 | |
i32.shl | |
i32.or | |
i32.store | |
local.get $0 | |
i32.const 12 | |
i32.add | |
local.get $1 | |
i32.const 13 | |
i32.add | |
i32.load | |
local.tee $5 | |
i32.const 8 | |
i32.shl | |
local.get $3 | |
i32.const 24 | |
i32.shr_u | |
i32.or | |
i32.store | |
local.get $1 | |
i32.const 16 | |
i32.add | |
local.set $1 | |
local.get $0 | |
i32.const 16 | |
i32.add | |
local.set $0 | |
local.get $2 | |
i32.const 16 | |
i32.sub | |
local.set $2 | |
br $continue|3 | |
end | |
end | |
br $break|2 | |
end | |
local.get $1 | |
i32.load | |
local.set $5 | |
local.get $0 | |
local.get $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $3 | |
i32.const 1 | |
i32.add | |
local.set $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $4 | |
i32.const 1 | |
i32.add | |
local.set $1 | |
local.get $3 | |
local.get $4 | |
i32.load8_u | |
i32.store8 | |
local.get $2 | |
i32.const 2 | |
i32.sub | |
local.set $2 | |
loop $continue|4 | |
local.get $2 | |
i32.const 18 | |
i32.ge_u | |
if | |
local.get $0 | |
local.get $1 | |
i32.const 2 | |
i32.add | |
i32.load | |
local.tee $3 | |
i32.const 16 | |
i32.shl | |
local.get $5 | |
i32.const 16 | |
i32.shr_u | |
i32.or | |
i32.store | |
local.get $0 | |
i32.const 4 | |
i32.add | |
local.get $3 | |
i32.const 16 | |
i32.shr_u | |
local.get $1 | |
i32.const 6 | |
i32.add | |
i32.load | |
local.tee $3 | |
i32.const 16 | |
i32.shl | |
i32.or | |
i32.store | |
local.get $0 | |
i32.const 8 | |
i32.add | |
local.get $3 | |
i32.const 16 | |
i32.shr_u | |
local.get $1 | |
i32.const 10 | |
i32.add | |
i32.load | |
local.tee $3 | |
i32.const 16 | |
i32.shl | |
i32.or | |
i32.store | |
local.get $0 | |
i32.const 12 | |
i32.add | |
local.get $1 | |
i32.const 14 | |
i32.add | |
i32.load | |
local.tee $5 | |
i32.const 16 | |
i32.shl | |
local.get $3 | |
i32.const 16 | |
i32.shr_u | |
i32.or | |
i32.store | |
local.get $1 | |
i32.const 16 | |
i32.add | |
local.set $1 | |
local.get $0 | |
i32.const 16 | |
i32.add | |
local.set $0 | |
local.get $2 | |
i32.const 16 | |
i32.sub | |
local.set $2 | |
br $continue|4 | |
end | |
end | |
br $break|2 | |
end | |
local.get $1 | |
i32.load | |
local.set $5 | |
local.get $0 | |
local.tee $3 | |
i32.const 1 | |
i32.add | |
local.set $0 | |
local.get $1 | |
local.tee $4 | |
i32.const 1 | |
i32.add | |
local.set $1 | |
local.get $3 | |
local.get $4 | |
i32.load8_u | |
i32.store8 | |
local.get $2 | |
i32.const 1 | |
i32.sub | |
local.set $2 | |
loop $continue|5 | |
local.get $2 | |
i32.const 19 | |
i32.ge_u | |
if | |
local.get $0 | |
local.get $1 | |
i32.const 3 | |
i32.add | |
i32.load | |
local.tee $3 | |
i32.const 24 | |
i32.shl | |
local.get $5 | |
i32.const 8 | |
i32.shr_u | |
i32.or | |
i32.store | |
local.get $0 | |
i32.const 4 | |
i32.add | |
local.get $3 | |
i32.const 8 | |
i32.shr_u | |
local.get $1 | |
i32.const 7 | |
i32.add | |
i32.load | |
local.tee $3 | |
i32.const 24 | |
i32.shl | |
i32.or | |
i32.store | |
local.get $0 | |
i32.const 8 | |
i32.add | |
local.get $3 | |
i32.const 8 | |
i32.shr_u | |
local.get $1 | |
i32.const 11 | |
i32.add | |
i32.load | |
local.tee $3 | |
i32.const 24 | |
i32.shl | |
i32.or | |
i32.store | |
local.get $0 | |
i32.const 12 | |
i32.add | |
local.get $1 | |
i32.const 15 | |
i32.add | |
i32.load | |
local.tee $5 | |
i32.const 24 | |
i32.shl | |
local.get $3 | |
i32.const 8 | |
i32.shr_u | |
i32.or | |
i32.store | |
local.get $1 | |
i32.const 16 | |
i32.add | |
local.set $1 | |
local.get $0 | |
i32.const 16 | |
i32.add | |
local.set $0 | |
local.get $2 | |
i32.const 16 | |
i32.sub | |
local.set $2 | |
br $continue|5 | |
end | |
end | |
end | |
end | |
local.get $2 | |
i32.const 16 | |
i32.and | |
if | |
local.get $0 | |
local.get $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $3 | |
i32.const 1 | |
i32.add | |
local.set $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $4 | |
i32.const 1 | |
i32.add | |
local.set $1 | |
local.get $3 | |
local.get $4 | |
i32.load8_u | |
i32.store8 | |
end | |
local.get $2 | |
i32.const 8 | |
i32.and | |
if | |
local.get $0 | |
local.get $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $3 | |
i32.const 1 | |
i32.add | |
local.set $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $4 | |
i32.const 1 | |
i32.add | |
local.set $1 | |
local.get $3 | |
local.get $4 | |
i32.load8_u | |
i32.store8 | |
end | |
local.get $2 | |
i32.const 4 | |
i32.and | |
if | |
local.get $0 | |
local.get $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $3 | |
i32.const 1 | |
i32.add | |
local.set $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $4 | |
i32.const 1 | |
i32.add | |
local.set $1 | |
local.get $3 | |
local.get $4 | |
i32.load8_u | |
i32.store8 | |
end | |
local.get $2 | |
i32.const 2 | |
i32.and | |
if | |
local.get $0 | |
local.get $1 | |
i32.load8_u | |
i32.store8 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.tee $3 | |
i32.const 1 | |
i32.add | |
local.set $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.tee $4 | |
i32.const 1 | |
i32.add | |
local.set $1 | |
local.get $3 | |
local.get $4 | |
i32.load8_u | |
i32.store8 | |
end | |
local.get $2 | |
i32.const 1 | |
i32.and | |
if | |
local.get $0 | |
local.get $1 | |
i32.load8_u | |
i32.store8 | |
end | |
) | |
(func $~lib/memory/memory.copy (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) | |
(local $3 i32) | |
(local $4 i32) | |
block $~lib/util/memory/memmove|inlined.0 | |
local.get $2 | |
local.set $3 | |
local.get $0 | |
local.get $1 | |
i32.eq | |
br_if $~lib/util/memory/memmove|inlined.0 | |
i32.const 1 | |
local.get $0 | |
local.get $3 | |
i32.add | |
local.get $1 | |
i32.le_u | |
local.get $1 | |
local.get $3 | |
i32.add | |
local.get $0 | |
i32.le_u | |
select | |
if | |
local.get $0 | |
local.get $1 | |
local.get $3 | |
call $~lib/util/memory/memcpy | |
br $~lib/util/memory/memmove|inlined.0 | |
end | |
local.get $0 | |
local.get $1 | |
i32.lt_u | |
if | |
local.get $1 | |
i32.const 7 | |
i32.and | |
local.get $0 | |
i32.const 7 | |
i32.and | |
i32.eq | |
if | |
loop $continue|0 | |
local.get $0 | |
i32.const 7 | |
i32.and | |
if | |
local.get $3 | |
i32.eqz | |
br_if $~lib/util/memory/memmove|inlined.0 | |
local.get $3 | |
i32.const 1 | |
i32.sub | |
local.set $3 | |
local.get $0 | |
local.tee $2 | |
i32.const 1 | |
i32.add | |
local.set $0 | |
local.get $1 | |
local.tee $4 | |
i32.const 1 | |
i32.add | |
local.set $1 | |
local.get $2 | |
local.get $4 | |
i32.load8_u | |
i32.store8 | |
br $continue|0 | |
end | |
end | |
loop $continue|1 | |
local.get $3 | |
i32.const 8 | |
i32.ge_u | |
if | |
local.get $0 | |
local.get $1 | |
i64.load | |
i64.store | |
local.get $3 | |
i32.const 8 | |
i32.sub | |
local.set $3 | |
local.get $0 | |
i32.const 8 | |
i32.add | |
local.set $0 | |
local.get $1 | |
i32.const 8 | |
i32.add | |
local.set $1 | |
br $continue|1 | |
end | |
end | |
end | |
loop $continue|2 | |
local.get $3 | |
if | |
local.get $0 | |
local.tee $2 | |
i32.const 1 | |
i32.add | |
local.set $0 | |
local.get $1 | |
local.tee $4 | |
i32.const 1 | |
i32.add | |
local.set $1 | |
local.get $2 | |
local.get $4 | |
i32.load8_u | |
i32.store8 | |
local.get $3 | |
i32.const 1 | |
i32.sub | |
local.set $3 | |
br $continue|2 | |
end | |
end | |
else | |
local.get $1 | |
i32.const 7 | |
i32.and | |
local.get $0 | |
i32.const 7 | |
i32.and | |
i32.eq | |
if | |
loop $continue|3 | |
local.get $0 | |
local.get $3 | |
i32.add | |
i32.const 7 | |
i32.and | |
if | |
local.get $3 | |
i32.eqz | |
br_if $~lib/util/memory/memmove|inlined.0 | |
local.get $0 | |
local.get $3 | |
i32.const 1 | |
i32.sub | |
local.tee $3 | |
i32.add | |
local.get $1 | |
local.get $3 | |
i32.add | |
i32.load8_u | |
i32.store8 | |
br $continue|3 | |
end | |
end | |
loop $continue|4 | |
local.get $3 | |
i32.const 8 | |
i32.ge_u | |
if | |
local.get $0 | |
local.get $3 | |
i32.const 8 | |
i32.sub | |
local.tee $3 | |
i32.add | |
local.get $1 | |
local.get $3 | |
i32.add | |
i64.load | |
i64.store | |
br $continue|4 | |
end | |
end | |
end | |
loop $continue|5 | |
local.get $3 | |
if | |
local.get $0 | |
local.get $3 | |
i32.const 1 | |
i32.sub | |
local.tee $3 | |
i32.add | |
local.get $1 | |
local.get $3 | |
i32.add | |
i32.load8_u | |
i32.store8 | |
br $continue|5 | |
end | |
end | |
end | |
end | |
) | |
(func $~lib/rt/tlsf/__free (; 17 ;) (type $FUNCSIG$vi) (param $0 i32) | |
global.get $~lib/rt/tlsf/ROOT | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 561 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $0 | |
i32.const 15 | |
i32.and | |
i32.eqz | |
i32.const 0 | |
local.get $0 | |
select | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 24 | |
i32.const 562 | |
i32.const 2 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
global.get $~lib/rt/tlsf/ROOT | |
local.get $0 | |
i32.const 16 | |
i32.sub | |
call $~lib/rt/tlsf/freeBlock | |
) | |
(func $~lib/rt/pure/growRoots (; 18 ;) (type $FUNCSIG$v) | |
(local $0 i32) | |
(local $1 i32) | |
(local $2 i32) | |
(local $3 i32) | |
global.get $~lib/rt/pure/CUR | |
global.get $~lib/rt/pure/ROOTS | |
local.tee $1 | |
i32.sub | |
local.tee $2 | |
i32.const 1 | |
i32.shl | |
local.tee $0 | |
i32.const 256 | |
local.get $0 | |
i32.const 256 | |
i32.gt_u | |
select | |
local.tee $3 | |
i32.const 0 | |
call $~lib/rt/tlsf/__alloc | |
local.tee $0 | |
local.get $1 | |
local.get $2 | |
call $~lib/memory/memory.copy | |
local.get $1 | |
if | |
local.get $1 | |
call $~lib/rt/tlsf/__free | |
end | |
local.get $0 | |
global.set $~lib/rt/pure/ROOTS | |
local.get $0 | |
local.get $2 | |
i32.add | |
global.set $~lib/rt/pure/CUR | |
local.get $0 | |
local.get $3 | |
i32.add | |
global.set $~lib/rt/pure/END | |
) | |
(func $~lib/rt/pure/appendRoot (; 19 ;) (type $FUNCSIG$vi) (param $0 i32) | |
(local $1 i32) | |
global.get $~lib/rt/pure/CUR | |
local.tee $1 | |
global.get $~lib/rt/pure/END | |
i32.ge_u | |
if | |
call $~lib/rt/pure/growRoots | |
global.get $~lib/rt/pure/CUR | |
local.set $1 | |
end | |
local.get $1 | |
local.get $0 | |
i32.store | |
local.get $1 | |
i32.const 4 | |
i32.add | |
global.set $~lib/rt/pure/CUR | |
) | |
(func $~lib/rt/pure/decrement (; 20 ;) (type $FUNCSIG$vi) (param $0 i32) | |
(local $1 i32) | |
(local $2 i32) | |
local.get $0 | |
i32.load offset=4 | |
local.tee $2 | |
i32.const 268435455 | |
i32.and | |
local.set $1 | |
local.get $0 | |
i32.load | |
i32.const 1 | |
i32.and | |
if | |
i32.const 0 | |
i32.const 128 | |
i32.const 115 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $1 | |
i32.const 1 | |
i32.eq | |
if | |
local.get $0 | |
i32.const 16 | |
i32.add | |
i32.const 1 | |
call $~lib/rt/__visit_members | |
local.get $2 | |
i32.const -2147483648 | |
i32.and | |
if | |
local.get $0 | |
i32.const -2147483648 | |
i32.store offset=4 | |
else | |
global.get $~lib/rt/tlsf/ROOT | |
local.get $0 | |
call $~lib/rt/tlsf/freeBlock | |
end | |
else | |
local.get $1 | |
i32.const 0 | |
i32.le_u | |
if | |
i32.const 0 | |
i32.const 128 | |
i32.const 124 | |
i32.const 15 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $0 | |
i32.load offset=8 | |
call $~lib/rt/__typeinfo | |
i32.const 16 | |
i32.and | |
if | |
local.get $0 | |
local.get $1 | |
i32.const 1 | |
i32.sub | |
local.get $2 | |
i32.const -268435456 | |
i32.and | |
i32.or | |
i32.store offset=4 | |
else | |
local.get $0 | |
local.get $1 | |
i32.const 1 | |
i32.sub | |
i32.const -1342177280 | |
i32.or | |
i32.store offset=4 | |
local.get $2 | |
i32.const -2147483648 | |
i32.and | |
i32.eqz | |
if | |
local.get $0 | |
call $~lib/rt/pure/appendRoot | |
end | |
end | |
end | |
) | |
(func $~lib/rt/pure/__release (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) | |
local.get $0 | |
i32.const 452 | |
i32.gt_u | |
if | |
local.get $0 | |
i32.const 16 | |
i32.sub | |
call $~lib/rt/pure/decrement | |
end | |
) | |
(func $~lib/rt/pure/markGray (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) | |
(local $1 i32) | |
local.get $0 | |
i32.load offset=4 | |
local.tee $1 | |
i32.const 1879048192 | |
i32.and | |
i32.const 268435456 | |
i32.ne | |
if | |
local.get $0 | |
local.get $1 | |
i32.const -1879048193 | |
i32.and | |
i32.const 268435456 | |
i32.or | |
i32.store offset=4 | |
local.get $0 | |
i32.const 16 | |
i32.add | |
i32.const 2 | |
call $~lib/rt/__visit_members | |
end | |
) | |
(func $~lib/rt/pure/scanBlack (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) | |
local.get $0 | |
local.get $0 | |
i32.load offset=4 | |
i32.const -1879048193 | |
i32.and | |
i32.store offset=4 | |
local.get $0 | |
i32.const 16 | |
i32.add | |
i32.const 4 | |
call $~lib/rt/__visit_members | |
) | |
(func $~lib/rt/pure/scan (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) | |
(local $1 i32) | |
local.get $0 | |
i32.load offset=4 | |
local.tee $1 | |
i32.const 1879048192 | |
i32.and | |
i32.const 268435456 | |
i32.eq | |
if | |
local.get $1 | |
i32.const 268435455 | |
i32.and | |
i32.const 0 | |
i32.gt_u | |
if | |
local.get $0 | |
call $~lib/rt/pure/scanBlack | |
else | |
local.get $0 | |
local.get $1 | |
i32.const -1879048193 | |
i32.and | |
i32.const 536870912 | |
i32.or | |
i32.store offset=4 | |
local.get $0 | |
i32.const 16 | |
i32.add | |
i32.const 3 | |
call $~lib/rt/__visit_members | |
end | |
end | |
) | |
(func $~lib/rt/pure/collectWhite (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) | |
(local $1 i32) | |
local.get $0 | |
i32.load offset=4 | |
local.tee $1 | |
i32.const 1879048192 | |
i32.and | |
i32.const 536870912 | |
i32.eq | |
if (result i32) | |
local.get $1 | |
i32.const -2147483648 | |
i32.and | |
i32.eqz | |
else | |
i32.const 0 | |
end | |
if | |
local.get $0 | |
local.get $1 | |
i32.const -1879048193 | |
i32.and | |
i32.store offset=4 | |
local.get $0 | |
i32.const 16 | |
i32.add | |
i32.const 5 | |
call $~lib/rt/__visit_members | |
global.get $~lib/rt/tlsf/ROOT | |
local.get $0 | |
call $~lib/rt/tlsf/freeBlock | |
end | |
) | |
(func $~lib/rt/pure/__collect (; 26 ;) (type $FUNCSIG$v) | |
(local $0 i32) | |
(local $1 i32) | |
(local $2 i32) | |
(local $3 i32) | |
(local $4 i32) | |
(local $5 i32) | |
global.get $~lib/rt/pure/ROOTS | |
local.tee $5 | |
local.tee $2 | |
local.set $3 | |
global.get $~lib/rt/pure/CUR | |
local.set $0 | |
loop $repeat|0 | |
block $break|0 | |
local.get $3 | |
local.get $0 | |
i32.ge_u | |
br_if $break|0 | |
local.get $3 | |
i32.load | |
local.tee $4 | |
i32.load offset=4 | |
local.tee $1 | |
i32.const 1879048192 | |
i32.and | |
i32.const 805306368 | |
i32.eq | |
if (result i32) | |
local.get $1 | |
i32.const 268435455 | |
i32.and | |
i32.const 0 | |
i32.gt_u | |
else | |
i32.const 0 | |
end | |
if | |
local.get $4 | |
call $~lib/rt/pure/markGray | |
local.get $2 | |
local.get $4 | |
i32.store | |
local.get $2 | |
i32.const 4 | |
i32.add | |
local.set $2 | |
else | |
i32.const 0 | |
local.get $1 | |
i32.const 268435455 | |
i32.and | |
i32.eqz | |
local.get $1 | |
i32.const 1879048192 | |
i32.and | |
select | |
if | |
global.get $~lib/rt/tlsf/ROOT | |
local.get $4 | |
call $~lib/rt/tlsf/freeBlock | |
else | |
local.get $4 | |
local.get $1 | |
i32.const 2147483647 | |
i32.and | |
i32.store offset=4 | |
end | |
end | |
local.get $3 | |
i32.const 4 | |
i32.add | |
local.set $3 | |
br $repeat|0 | |
end | |
end | |
local.get $2 | |
global.set $~lib/rt/pure/CUR | |
local.get $5 | |
local.set $0 | |
loop $repeat|1 | |
block $break|1 | |
local.get $0 | |
local.get $2 | |
i32.ge_u | |
br_if $break|1 | |
local.get $0 | |
i32.load | |
call $~lib/rt/pure/scan | |
local.get $0 | |
i32.const 4 | |
i32.add | |
local.set $0 | |
br $repeat|1 | |
end | |
end | |
local.get $5 | |
local.set $0 | |
loop $repeat|2 | |
block $break|2 | |
local.get $0 | |
local.get $2 | |
i32.ge_u | |
br_if $break|2 | |
local.get $0 | |
i32.load | |
local.tee $1 | |
local.get $1 | |
i32.load offset=4 | |
i32.const 2147483647 | |
i32.and | |
i32.store offset=4 | |
local.get $1 | |
call $~lib/rt/pure/collectWhite | |
local.get $0 | |
i32.const 4 | |
i32.add | |
local.set $0 | |
br $repeat|2 | |
end | |
end | |
local.get $5 | |
global.set $~lib/rt/pure/CUR | |
) | |
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) | |
(local $2 i32) | |
(local $3 i32) | |
local.get $1 | |
i32.const 268435452 | |
i32.gt_u | |
if | |
i32.const 272 | |
i32.const 320 | |
i32.const 14 | |
i32.const 56 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $1 | |
i32.const 2 | |
i32.shl | |
local.tee $2 | |
i32.const 0 | |
call $~lib/rt/tlsf/__alloc | |
local.set $1 | |
local.get $0 | |
i32.eqz | |
if | |
i32.const 12 | |
i32.const 2 | |
call $~lib/rt/tlsf/__alloc | |
call $~lib/rt/pure/__retain | |
local.set $0 | |
end | |
local.get $0 | |
i32.const 0 | |
i32.store | |
local.get $0 | |
i32.const 0 | |
i32.store offset=4 | |
local.get $0 | |
i32.const 0 | |
i32.store offset=8 | |
local.get $1 | |
local.get $0 | |
i32.load | |
local.tee $3 | |
i32.ne | |
if | |
local.get $1 | |
call $~lib/rt/pure/__retain | |
drop | |
local.get $3 | |
call $~lib/rt/pure/__release | |
end | |
local.get $0 | |
local.get $1 | |
i32.store | |
local.get $0 | |
local.get $1 | |
i32.store offset=4 | |
local.get $0 | |
local.get $2 | |
i32.store offset=8 | |
local.get $0 | |
) | |
(func $~lib/typedarray/Int32Array#__set (; 28 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) | |
local.get $1 | |
local.get $0 | |
i32.load offset=8 | |
i32.const 2 | |
i32.shr_u | |
i32.ge_u | |
if | |
i32.const 176 | |
i32.const 376 | |
i32.const 443 | |
i32.const 63 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $0 | |
i32.load offset=4 | |
local.get $1 | |
i32.const 2 | |
i32.shl | |
i32.add | |
local.get $2 | |
i32.store | |
) | |
(func $~lib/typedarray/Int32Array#__get (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) | |
local.get $1 | |
local.get $0 | |
i32.load offset=8 | |
i32.const 2 | |
i32.shr_u | |
i32.ge_u | |
if | |
i32.const 176 | |
i32.const 376 | |
i32.const 437 | |
i32.const 63 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $0 | |
i32.load offset=4 | |
local.get $1 | |
i32.const 2 | |
i32.shl | |
i32.add | |
i32.load | |
) | |
(func $assembly/index/levenshtein (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) | |
(local $2 i32) | |
(local $3 i32) | |
(local $4 i32) | |
(local $5 i32) | |
(local $6 i32) | |
(local $7 i32) | |
(local $8 i32) | |
(local $9 i32) | |
(local $10 i32) | |
(local $11 i32) | |
(local $12 i32) | |
(local $13 i32) | |
(local $14 i32) | |
(local $15 i32) | |
(local $16 i32) | |
(local $17 i32) | |
(local $18 i32) | |
(local $19 i32) | |
(local $20 i32) | |
(local $21 i32) | |
local.get $0 | |
call $~lib/rt/pure/__retain | |
drop | |
local.get $1 | |
call $~lib/rt/pure/__retain | |
drop | |
local.get $0 | |
i32.const 16 | |
i32.sub | |
i32.load offset=12 | |
i32.const 1 | |
i32.shr_u | |
local.set $2 | |
local.get $1 | |
i32.const 16 | |
i32.sub | |
i32.load offset=12 | |
i32.const 1 | |
i32.shr_u | |
local.set $4 | |
loop $continue|0 | |
local.get $2 | |
i32.const 0 | |
i32.gt_u | |
if (result i32) | |
block $__inlined_func$~lib/string/String#charCodeAt (result i32) | |
i32.const -1 | |
local.get $2 | |
i32.const 1 | |
i32.sub | |
local.tee $5 | |
local.get $0 | |
i32.const 16 | |
i32.sub | |
i32.load offset=12 | |
i32.const 1 | |
i32.shr_u | |
i32.ge_u | |
br_if $__inlined_func$~lib/string/String#charCodeAt | |
drop | |
local.get $5 | |
i32.const 1 | |
i32.shl | |
local.get $0 | |
i32.add | |
i32.load16_u | |
end | |
block $__inlined_func$~lib/string/String#charCodeAt0 (result i32) | |
i32.const -1 | |
local.get $4 | |
i32.const 1 | |
i32.sub | |
local.tee $10 | |
local.get $1 | |
i32.const 16 | |
i32.sub | |
i32.load offset=12 | |
i32.const 1 | |
i32.shr_u | |
i32.ge_u | |
br_if $__inlined_func$~lib/string/String#charCodeAt0 | |
drop | |
local.get $10 | |
i32.const 1 | |
i32.shl | |
local.get $1 | |
i32.add | |
i32.load16_u | |
end | |
i32.eq | |
else | |
i32.const 0 | |
end | |
if | |
local.get $2 | |
i32.const 1 | |
i32.sub | |
local.set $2 | |
local.get $4 | |
i32.const 1 | |
i32.sub | |
local.set $4 | |
br $continue|0 | |
end | |
end | |
loop $continue|1 | |
local.get $6 | |
local.get $2 | |
i32.lt_u | |
if (result i32) | |
block $__inlined_func$~lib/string/String#charCodeAt1 (result i32) | |
i32.const -1 | |
local.get $6 | |
local.tee $5 | |
local.get $0 | |
i32.const 16 | |
i32.sub | |
i32.load offset=12 | |
i32.const 1 | |
i32.shr_u | |
i32.ge_u | |
br_if $__inlined_func$~lib/string/String#charCodeAt1 | |
drop | |
local.get $5 | |
i32.const 1 | |
i32.shl | |
local.get $0 | |
i32.add | |
i32.load16_u | |
end | |
block $__inlined_func$~lib/string/String#charCodeAt2 (result i32) | |
i32.const -1 | |
local.get $6 | |
local.get $1 | |
i32.const 16 | |
i32.sub | |
i32.load offset=12 | |
i32.const 1 | |
i32.shr_u | |
i32.ge_u | |
br_if $__inlined_func$~lib/string/String#charCodeAt2 | |
drop | |
local.get $6 | |
i32.const 1 | |
i32.shl | |
local.get $1 | |
i32.add | |
i32.load16_u | |
end | |
i32.eq | |
else | |
i32.const 0 | |
end | |
if | |
local.get $6 | |
i32.const 1 | |
i32.add | |
local.set $6 | |
br $continue|1 | |
end | |
end | |
local.get $4 | |
local.get $6 | |
i32.sub | |
local.set $13 | |
local.get $2 | |
local.get $6 | |
i32.sub | |
local.tee $2 | |
if (result i32) | |
local.get $13 | |
i32.const 3 | |
i32.lt_u | |
else | |
i32.const 1 | |
end | |
if | |
local.get $0 | |
call $~lib/rt/pure/__release | |
local.get $1 | |
call $~lib/rt/pure/__release | |
local.get $13 | |
return | |
end | |
i32.const -1 | |
local.set $4 | |
i32.const 12 | |
i32.const 3 | |
call $~lib/rt/tlsf/__alloc | |
call $~lib/rt/pure/__retain | |
local.get $2 | |
i32.const 1 | |
i32.shl | |
call $~lib/arraybuffer/ArrayBufferView#constructor | |
local.set $5 | |
loop $repeat|2 | |
local.get $7 | |
local.get $5 | |
i32.load offset=8 | |
i32.const 2 | |
i32.shr_u | |
i32.lt_s | |
if | |
local.get $5 | |
local.get $7 | |
local.get $3 | |
i32.const 1 | |
i32.add | |
local.tee $2 | |
call $~lib/typedarray/Int32Array#__set | |
local.get $7 | |
i32.const 1 | |
i32.add | |
local.tee $10 | |
i32.const 1 | |
i32.add | |
local.set $7 | |
local.get $5 | |
local.get $10 | |
block $__inlined_func$~lib/string/String#charCodeAt3 (result i32) | |
i32.const -1 | |
local.get $3 | |
local.get $6 | |
i32.add | |
local.tee $3 | |
local.get $0 | |
i32.const 16 | |
i32.sub | |
i32.load offset=12 | |
i32.const 1 | |
i32.shr_u | |
i32.ge_u | |
br_if $__inlined_func$~lib/string/String#charCodeAt3 | |
drop | |
local.get $3 | |
i32.const 1 | |
i32.shl | |
local.get $0 | |
i32.add | |
i32.load16_u | |
end | |
call $~lib/typedarray/Int32Array#__set | |
local.get $2 | |
local.set $3 | |
br $repeat|2 | |
end | |
end | |
local.get $5 | |
i32.load offset=8 | |
i32.const 2 | |
i32.shr_u | |
i32.const 1 | |
i32.sub | |
local.set $17 | |
loop $continue|3 | |
local.get $12 | |
local.get $13 | |
i32.const 3 | |
i32.sub | |
i32.lt_u | |
if | |
block $__inlined_func$~lib/string/String#charCodeAt5 (result i32) | |
i32.const -1 | |
local.get $6 | |
local.get $12 | |
local.tee $2 | |
i32.add | |
local.tee $4 | |
local.get $1 | |
local.tee $3 | |
i32.const 16 | |
i32.sub | |
i32.load offset=12 | |
i32.const 1 | |
i32.shr_u | |
i32.ge_u | |
br_if $__inlined_func$~lib/string/String#charCodeAt5 | |
drop | |
local.get $4 | |
i32.const 1 | |
i32.shl | |
local.get $3 | |
i32.add | |
i32.load16_u | |
end | |
local.set $20 | |
block $__inlined_func$~lib/string/String#charCodeAt6 (result i32) | |
i32.const -1 | |
local.get $2 | |
i32.const 1 | |
i32.add | |
local.tee $7 | |
local.get $6 | |
i32.add | |
local.tee $4 | |
local.get $3 | |
i32.const 16 | |
i32.sub | |
i32.load offset=12 | |
i32.const 1 | |
i32.shr_u | |
i32.ge_u | |
br_if $__inlined_func$~lib/string/String#charCodeAt6 | |
drop | |
local.get $4 | |
i32.const 1 | |
i32.shl | |
local.get $3 | |
i32.add | |
i32.load16_u | |
end | |
local.set $21 | |
block $__inlined_func$~lib/string/String#charCodeAt7 (result i32) | |
i32.const -1 | |
local.get $2 | |
i32.const 2 | |
i32.add | |
local.tee $18 | |
local.get $6 | |
i32.add | |
local.tee $4 | |
local.get $3 | |
i32.const 16 | |
i32.sub | |
i32.load offset=12 | |
i32.const 1 | |
i32.shr_u | |
i32.ge_u | |
br_if $__inlined_func$~lib/string/String#charCodeAt7 | |
drop | |
local.get $4 | |
i32.const 1 | |
i32.shl | |
local.get $3 | |
i32.add | |
i32.load16_u | |
end | |
local.set $14 | |
block $__inlined_func$~lib/string/String#charCodeAt8 (result i32) | |
i32.const -1 | |
local.get $2 | |
i32.const 3 | |
i32.add | |
local.tee $19 | |
local.get $6 | |
i32.add | |
local.tee $3 | |
local.get $1 | |
i32.const 16 | |
i32.sub | |
i32.load offset=12 | |
i32.const 1 | |
i32.shr_u | |
i32.ge_u | |
br_if $__inlined_func$~lib/string/String#charCodeAt8 | |
drop | |
local.get $3 | |
i32.const 1 | |
i32.shl | |
local.get $1 | |
i32.add | |
i32.load16_u | |
end | |
local.set $15 | |
local.get $2 | |
i32.const 4 | |
i32.add | |
local.tee $12 | |
local.set $4 | |
i32.const 0 | |
local.set $3 | |
loop $repeat|4 | |
local.get $3 | |
local.get $17 | |
i32.lt_u | |
if | |
local.get $5 | |
local.get $3 | |
call $~lib/typedarray/Int32Array#__get | |
local.tee $10 | |
local.set $8 | |
local.get $5 | |
local.get $3 | |
i32.const 1 | |
i32.add | |
call $~lib/typedarray/Int32Array#__get | |
local.tee $16 | |
local.set $11 | |
i32.const 1 | |
local.get $7 | |
local.tee $9 | |
local.get $2 | |
i32.lt_s | |
local.get $10 | |
local.get $2 | |
i32.lt_s | |
select | |
if (result i32) | |
local.get $9 | |
i32.const 1 | |
i32.add | |
local.get $8 | |
i32.const 1 | |
i32.add | |
local.get $8 | |
local.get $9 | |
i32.gt_s | |
select | |
else | |
local.get $2 | |
i32.const 1 | |
i32.add | |
local.get $2 | |
local.get $11 | |
local.get $20 | |
i32.ne | |
select | |
end | |
local.set $7 | |
local.get $18 | |
local.set $8 | |
i32.const 1 | |
local.get $8 | |
local.get $9 | |
i32.lt_s | |
local.get $7 | |
local.get $9 | |
i32.lt_s | |
select | |
if (result i32) | |
local.get $8 | |
i32.const 1 | |
i32.add | |
local.get $7 | |
i32.const 1 | |
i32.add | |
local.get $7 | |
local.get $8 | |
i32.gt_s | |
select | |
else | |
local.get $9 | |
local.get $9 | |
i32.const 1 | |
i32.add | |
local.get $16 | |
local.get $21 | |
i32.eq | |
select | |
end | |
local.tee $2 | |
local.set $18 | |
i32.const 1 | |
local.get $19 | |
local.tee $11 | |
local.get $8 | |
i32.lt_s | |
local.get $2 | |
local.get $8 | |
i32.lt_s | |
select | |
if (result i32) | |
local.get $11 | |
i32.const 1 | |
i32.add | |
local.get $2 | |
i32.const 1 | |
i32.add | |
local.get $2 | |
local.get $11 | |
i32.gt_s | |
select | |
else | |
local.get $8 | |
local.get $8 | |
i32.const 1 | |
i32.add | |
local.get $14 | |
local.get $16 | |
i32.eq | |
select | |
end | |
local.tee $19 | |
local.set $9 | |
local.get $5 | |
local.get $3 | |
i32.const 1 | |
local.get $4 | |
local.get $11 | |
i32.lt_s | |
local.get $9 | |
local.get $11 | |
i32.lt_s | |
select | |
if (result i32) | |
local.get $4 | |
i32.const 1 | |
i32.add | |
local.get $9 | |
i32.const 1 | |
i32.add | |
local.get $9 | |
local.get $4 | |
i32.gt_s | |
select | |
else | |
local.get $11 | |
local.get $11 | |
i32.const 1 | |
i32.add | |
local.get $15 | |
local.get $16 | |
i32.eq | |
select | |
end | |
local.tee $4 | |
call $~lib/typedarray/Int32Array#__set | |
local.get $10 | |
local.set $2 | |
local.get $3 | |
i32.const 2 | |
i32.add | |
local.set $3 | |
br $repeat|4 | |
end | |
end | |
br $continue|3 | |
end | |
end | |
loop $continue|5 | |
local.get $12 | |
local.get $13 | |
i32.lt_u | |
if | |
block $__inlined_func$~lib/string/String#charCodeAt9 (result i32) | |
i32.const -1 | |
local.get $6 | |
local.get $12 | |
local.tee $2 | |
i32.add | |
local.tee $3 | |
local.get $1 | |
i32.const 16 | |
i32.sub | |
i32.load offset=12 | |
i32.const 1 | |
i32.shr_u | |
i32.ge_u | |
br_if $__inlined_func$~lib/string/String#charCodeAt9 | |
drop | |
local.get $3 | |
i32.const 1 | |
i32.shl | |
local.get $1 | |
i32.add | |
i32.load16_u | |
end | |
local.set $10 | |
local.get $2 | |
i32.const 1 | |
i32.add | |
local.tee $12 | |
local.set $4 | |
i32.const 0 | |
local.set $3 | |
loop $repeat|6 | |
local.get $3 | |
local.get $17 | |
i32.lt_u | |
if | |
local.get $5 | |
local.get $3 | |
call $~lib/typedarray/Int32Array#__get | |
local.tee $7 | |
local.set $14 | |
local.get $5 | |
local.get $3 | |
i32.const 1 | |
i32.add | |
call $~lib/typedarray/Int32Array#__get | |
local.set $15 | |
local.get $5 | |
local.get $3 | |
i32.const 1 | |
local.get $4 | |
local.get $2 | |
i32.lt_s | |
local.get $7 | |
local.get $2 | |
i32.lt_s | |
select | |
if (result i32) | |
local.get $4 | |
i32.const 1 | |
i32.add | |
local.get $14 | |
i32.const 1 | |
i32.add | |
local.get $14 | |
local.get $4 | |
i32.gt_s | |
select | |
else | |
local.get $2 | |
i32.const 1 | |
i32.add | |
local.get $2 | |
local.get $10 | |
local.get $15 | |
i32.ne | |
select | |
end | |
local.tee $4 | |
call $~lib/typedarray/Int32Array#__set | |
local.get $7 | |
local.set $2 | |
local.get $3 | |
i32.const 2 | |
i32.add | |
local.set $3 | |
br $repeat|6 | |
end | |
end | |
br $continue|5 | |
end | |
end | |
local.get $5 | |
call $~lib/rt/pure/__release | |
local.get $0 | |
call $~lib/rt/pure/__release | |
local.get $1 | |
call $~lib/rt/pure/__release | |
local.get $4 | |
) | |
(func $~lib/rt/pure/__visit (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) | |
local.get $0 | |
i32.const 452 | |
i32.lt_u | |
if | |
return | |
end | |
local.get $0 | |
i32.const 16 | |
i32.sub | |
local.set $0 | |
block $break|0 | |
block $case5|0 | |
block $case4|0 | |
block $case3|0 | |
block $case2|0 | |
block $case1|0 | |
local.get $1 | |
i32.const 1 | |
i32.ne | |
if | |
local.get $1 | |
i32.const 2 | |
i32.eq | |
br_if $case1|0 | |
block $tablify|0 | |
local.get $1 | |
i32.const 3 | |
i32.sub | |
br_table $case2|0 $case3|0 $case4|0 $tablify|0 | |
end | |
br $case5|0 | |
end | |
local.get $0 | |
call $~lib/rt/pure/decrement | |
br $break|0 | |
end | |
local.get $0 | |
i32.load offset=4 | |
i32.const 268435455 | |
i32.and | |
i32.const 0 | |
i32.le_u | |
if | |
i32.const 0 | |
i32.const 128 | |
i32.const 75 | |
i32.const 17 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $0 | |
local.get $0 | |
i32.load offset=4 | |
i32.const 1 | |
i32.sub | |
i32.store offset=4 | |
local.get $0 | |
call $~lib/rt/pure/markGray | |
br $break|0 | |
end | |
local.get $0 | |
call $~lib/rt/pure/scan | |
br $break|0 | |
end | |
local.get $0 | |
i32.load offset=4 | |
local.tee $1 | |
i32.const -268435456 | |
i32.and | |
local.get $1 | |
i32.const 1 | |
i32.add | |
i32.const -268435456 | |
i32.and | |
i32.ne | |
if | |
i32.const 0 | |
i32.const 128 | |
i32.const 86 | |
i32.const 6 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
i32.store offset=4 | |
local.get $1 | |
i32.const 1879048192 | |
i32.and | |
if | |
local.get $0 | |
call $~lib/rt/pure/scanBlack | |
end | |
br $break|0 | |
end | |
local.get $0 | |
call $~lib/rt/pure/collectWhite | |
br $break|0 | |
end | |
i32.const 0 | |
i32.const 128 | |
i32.const 97 | |
i32.const 24 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
) | |
(func $~lib/rt/__visit_members (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) | |
block $switch$1$default | |
block $switch$1$case$4 | |
block $switch$1$case$2 | |
local.get $0 | |
i32.const 8 | |
i32.sub | |
i32.load | |
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$4 $switch$1$default | |
end | |
return | |
end | |
local.get $0 | |
i32.load | |
local.tee $0 | |
if | |
local.get $0 | |
local.get $1 | |
call $~lib/rt/pure/__visit | |
end | |
return | |
end | |
unreachable | |
) | |
(func $null (; 33 ;) (type $FUNCSIG$v) | |
nop | |
) | |
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(module | |
(type $FUNCSIG$v (func)) | |
(type $FUNCSIG$iii (func (param i32 i32) (result i32))) | |
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) | |
(type $FUNCSIG$ii (func (param i32) (result i32))) | |
(type $FUNCSIG$vi (func (param i32))) | |
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) | |
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) | |
(memory $0 1) | |
(data (i32.const 8) "\0e\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") | |
(table $0 1 funcref) | |
(elem (i32.const 0) $null) | |
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) | |
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) | |
(export "memory" (memory $0)) | |
(export "table" (table $0)) | |
(export "levenshtein" (func $assembly/index/levenshtein)) | |
(export "memory.compare" (func $~lib/memory/memory.compare)) | |
(export "memory.allocate" (func $~lib/memory/memory.allocate)) | |
(export "memory.free" (func $~lib/memory/memory.free)) | |
(export "memory.reset" (func $~lib/memory/memory.reset)) | |
(start $start) | |
(func $~lib/string/String#charCodeAt (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) | |
local.get $0 | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 8 | |
i32.const 75 | |
i32.const 4 | |
call $~lib/env/abort | |
unreachable | |
end | |
local.get $1 | |
local.get $0 | |
i32.load | |
i32.ge_u | |
if | |
i32.const -1 | |
return | |
end | |
local.get $1 | |
i32.const 1 | |
i32.shl | |
local.get $0 | |
i32.add | |
i32.load16_u offset=4 | |
) | |
(func $~lib/allocator/arena/__memory_allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) | |
(local $1 i32) | |
(local $2 i32) | |
(local $3 i32) | |
local.get $0 | |
i32.const 1073741824 | |
i32.gt_u | |
if | |
unreachable | |
end | |
global.get $~lib/allocator/arena/offset | |
local.tee $1 | |
local.get $0 | |
i32.const 1 | |
local.get $0 | |
i32.const 1 | |
i32.gt_u | |
select | |
i32.add | |
i32.const 7 | |
i32.add | |
i32.const -8 | |
i32.and | |
local.tee $0 | |
current_memory | |
local.tee $2 | |
i32.const 16 | |
i32.shl | |
i32.gt_u | |
if | |
local.get $2 | |
local.get $0 | |
local.get $1 | |
i32.sub | |
i32.const 65535 | |
i32.add | |
i32.const -65536 | |
i32.and | |
i32.const 16 | |
i32.shr_u | |
local.tee $3 | |
local.get $2 | |
local.get $3 | |
i32.gt_s | |
select | |
grow_memory | |
i32.const 0 | |
i32.lt_s | |
if | |
local.get $3 | |
grow_memory | |
i32.const 0 | |
i32.lt_s | |
if | |
unreachable | |
end | |
end | |
end | |
local.get $0 | |
global.set $~lib/allocator/arena/offset | |
local.get $1 | |
) | |
(func $assembly/index/levenshtein (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) | |
(local $2 i32) | |
(local $3 i32) | |
(local $4 i32) | |
(local $5 i32) | |
(local $6 i32) | |
(local $7 i32) | |
(local $8 i32) | |
(local $9 i32) | |
(local $10 i32) | |
(local $11 i32) | |
(local $12 i32) | |
local.get $0 | |
i32.load | |
local.set $2 | |
local.get $1 | |
i32.load | |
local.set $3 | |
loop $continue|0 | |
local.get $2 | |
i32.const 0 | |
i32.gt_u | |
local.tee $4 | |
if (result i32) | |
local.get $0 | |
i32.const 0 | |
local.get $2 | |
i32.sub | |
i32.const -1 | |
i32.xor | |
call $~lib/string/String#charCodeAt | |
local.get $1 | |
i32.const 0 | |
local.get $3 | |
i32.sub | |
i32.const -1 | |
i32.xor | |
call $~lib/string/String#charCodeAt | |
i32.eq | |
else | |
local.get $4 | |
end | |
if | |
local.get $2 | |
i32.const 1 | |
i32.sub | |
local.set $2 | |
local.get $3 | |
i32.const 1 | |
i32.sub | |
local.set $3 | |
br $continue|0 | |
end | |
end | |
loop $continue|1 | |
local.get $6 | |
local.get $2 | |
i32.lt_u | |
local.tee $4 | |
if (result i32) | |
local.get $0 | |
local.get $6 | |
call $~lib/string/String#charCodeAt | |
local.get $1 | |
local.get $6 | |
call $~lib/string/String#charCodeAt | |
i32.eq | |
else | |
local.get $4 | |
end | |
if | |
local.get $6 | |
i32.const 1 | |
i32.add | |
local.set $6 | |
br $continue|1 | |
end | |
end | |
local.get $2 | |
local.get $6 | |
i32.sub | |
local.tee $8 | |
i32.eqz | |
if | |
local.get $3 | |
return | |
end | |
local.get $3 | |
local.get $6 | |
i32.sub | |
local.set $10 | |
i32.const 0 | |
local.set $3 | |
local.get $8 | |
call $~lib/allocator/arena/__memory_allocate | |
local.set $9 | |
loop $continue|2 | |
local.get $5 | |
local.get $8 | |
i32.lt_u | |
if | |
local.get $5 | |
i32.const 1 | |
i32.shl | |
local.get $9 | |
i32.add | |
local.get $5 | |
i32.const 1 | |
i32.add | |
local.tee $5 | |
i32.store16 | |
br $continue|2 | |
end | |
end | |
loop $continue|3 | |
local.get $3 | |
local.get $10 | |
i32.lt_u | |
if | |
local.get $1 | |
local.get $3 | |
local.get $6 | |
i32.add | |
call $~lib/string/String#charCodeAt | |
local.set $11 | |
local.get $3 | |
local.tee $2 | |
i32.const 1 | |
i32.add | |
local.tee $3 | |
i32.const 65535 | |
i32.and | |
local.set $7 | |
i32.const 0 | |
local.set $5 | |
loop $repeat|4 | |
local.get $5 | |
local.get $8 | |
i32.lt_u | |
if | |
local.get $0 | |
local.get $5 | |
i32.const 65535 | |
i32.and | |
local.get $6 | |
i32.add | |
call $~lib/string/String#charCodeAt | |
local.get $11 | |
i32.const 65535 | |
i32.and | |
i32.ne | |
if | |
local.get $2 | |
i32.const 1 | |
i32.add | |
local.set $2 | |
end | |
local.get $2 | |
local.set $4 | |
local.get $5 | |
i32.const 65535 | |
i32.and | |
i32.const 1 | |
i32.shl | |
local.get $9 | |
i32.add | |
local.tee $12 | |
i32.load16_u | |
local.tee $2 | |
local.get $7 | |
i32.gt_u | |
if (result i32) | |
local.get $7 | |
i32.const 1 | |
i32.add | |
local.get $4 | |
i32.const 65535 | |
i32.and | |
local.tee $4 | |
local.get $4 | |
local.get $7 | |
i32.gt_u | |
select | |
else | |
local.get $2 | |
i32.const 1 | |
i32.add | |
local.get $4 | |
local.get $4 | |
i32.const 65535 | |
i32.and | |
local.get $2 | |
i32.gt_u | |
select | |
i32.const 65535 | |
i32.and | |
end | |
local.set $7 | |
local.get $12 | |
local.get $7 | |
i32.store16 | |
local.get $5 | |
i32.const 1 | |
i32.add | |
local.set $5 | |
br $repeat|4 | |
end | |
end | |
br $continue|3 | |
end | |
end | |
local.get $7 | |
) | |
(func $~lib/internal/memory/memcmp (; 4 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) | |
(local $3 i32) | |
local.get $0 | |
local.get $1 | |
i32.eq | |
if | |
i32.const 0 | |
return | |
end | |
loop $continue|0 | |
local.get $2 | |
i32.const 0 | |
i32.ne | |
local.tee $3 | |
if | |
local.get $0 | |
i32.load8_u | |
local.get $1 | |
i32.load8_u | |
i32.eq | |
local.set $3 | |
end | |
local.get $3 | |
if | |
local.get $2 | |
i32.const 1 | |
i32.sub | |
local.set $2 | |
local.get $0 | |
i32.const 1 | |
i32.add | |
local.set $0 | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.set $1 | |
br $continue|0 | |
end | |
end | |
local.get $2 | |
if (result i32) | |
local.get $0 | |
i32.load8_u | |
local.get $1 | |
i32.load8_u | |
i32.sub | |
else | |
i32.const 0 | |
end | |
) | |
(func $~lib/memory/memory.compare (; 5 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) | |
local.get $0 | |
local.get $1 | |
local.get $2 | |
call $~lib/internal/memory/memcmp | |
) | |
(func $~lib/memory/memory.allocate (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) | |
local.get $0 | |
call $~lib/allocator/arena/__memory_allocate | |
) | |
(func $~lib/memory/memory.free (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) | |
nop | |
) | |
(func $~lib/memory/memory.reset (; 8 ;) (type $FUNCSIG$v) | |
global.get $~lib/allocator/arena/startOffset | |
global.set $~lib/allocator/arena/offset | |
) | |
(func $start (; 9 ;) (type $FUNCSIG$v) | |
i32.const 40 | |
global.set $~lib/allocator/arena/startOffset | |
global.get $~lib/allocator/arena/startOffset | |
global.set $~lib/allocator/arena/offset | |
) | |
(func $null (; 10 ;) (type $FUNCSIG$v) | |
nop | |
) | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment