Created
February 28, 2020 22:11
-
-
Save calavera/0e7344bd37495f2bfc413d40a6b8ae57 to your computer and use it in GitHub Desktop.
This file contains hidden or 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 $i32_=>_none (func (param i32))) | |
(type $i32_i32_=>_none (func (param i32 i32))) | |
(type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) | |
(type $i32_i32_i32_=>_none (func (param i32 i32 i32))) | |
(type $i32_=>_i32 (func (param i32) (result i32))) | |
(type $none_=>_none (func)) | |
(type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) | |
(type $none_=>_i32 (func (result i32))) | |
(type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) | |
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) | |
(memory $0 1) | |
(data (i32.const 16) "\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 64) "(\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 128) "\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 176) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10") | |
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) | |
(global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) | |
(global $~lib/rt/__rtti_base i32 (i32.const 176)) | |
(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 "add" (func $assembly/index/add)) | |
(func $~lib/rt/tlsf/removeBlock (; 1 ;) (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 32 | |
i32.const 277 | |
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 32 | |
i32.const 279 | |
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 32 | |
i32.const 292 | |
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 $1 | |
local.get $0 | |
local.get $2 | |
local.get $3 | |
i32.const 4 | |
i32.shl | |
i32.add | |
i32.const 2 | |
i32.shl | |
i32.add | |
i32.load offset=96 | |
i32.eq | |
if | |
local.get $0 | |
local.get $2 | |
local.get $3 | |
i32.const 4 | |
i32.shl | |
i32.add | |
i32.const 2 | |
i32.shl | |
i32.add | |
local.get $4 | |
i32.store offset=96 | |
local.get $4 | |
i32.eqz | |
if | |
local.get $0 | |
local.get $3 | |
i32.const 2 | |
i32.shl | |
i32.add | |
local.get $0 | |
local.get $3 | |
i32.const 2 | |
i32.shl | |
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 ;) (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 32 | |
i32.const 205 | |
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 32 | |
i32.const 207 | |
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 $2 | |
local.get $3 | |
i32.const 3 | |
i32.and | |
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 32 | |
i32.const 228 | |
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 | |
local.get $0 | |
local.get $2 | |
call $~lib/rt/tlsf/removeBlock | |
local.get $2 | |
local.get $7 | |
local.get $6 | |
i32.const 3 | |
i32.and | |
i32.or | |
local.tee $3 | |
i32.store | |
local.get $2 | |
local.set $1 | |
end | |
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 32 | |
i32.const 243 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $2 | |
local.get $1 | |
i32.const 16 | |
i32.add | |
i32.add | |
local.get $4 | |
i32.ne | |
if | |
i32.const 0 | |
i32.const 32 | |
i32.const 244 | |
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 32 | |
i32.const 260 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $0 | |
local.get $4 | |
local.get $3 | |
i32.const 4 | |
i32.shl | |
i32.add | |
i32.const 2 | |
i32.shl | |
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 $0 | |
local.get $4 | |
local.get $3 | |
i32.const 4 | |
i32.shl | |
i32.add | |
i32.const 2 | |
i32.shl | |
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 $0 | |
local.get $3 | |
i32.const 2 | |
i32.shl | |
i32.add | |
local.get $0 | |
local.get $3 | |
i32.const 2 | |
i32.shl | |
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 ;) (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 32 | |
i32.const 386 | |
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 32 | |
i32.const 396 | |
i32.const 15 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $3 | |
local.get $1 | |
i32.const 16 | |
i32.sub | |
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 32 | |
i32.const 408 | |
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/maybeInitialize (; 4 ;) (result i32) | |
(local $0 i32) | |
(local $1 i32) | |
(local $2 i32) | |
global.get $~lib/rt/tlsf/ROOT | |
local.tee $0 | |
i32.eqz | |
if | |
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 208 | |
local.tee $0 | |
i32.const 0 | |
i32.store | |
i32.const 1776 | |
i32.const 0 | |
i32.store | |
loop $for-loop|0 | |
local.get $1 | |
i32.const 23 | |
i32.lt_u | |
if | |
local.get $1 | |
i32.const 2 | |
i32.shl | |
i32.const 208 | |
i32.add | |
i32.const 0 | |
i32.store offset=4 | |
i32.const 0 | |
local.set $2 | |
loop $for-loop|1 | |
local.get $2 | |
i32.const 16 | |
i32.lt_u | |
if | |
local.get $1 | |
i32.const 4 | |
i32.shl | |
local.get $2 | |
i32.add | |
i32.const 2 | |
i32.shl | |
i32.const 208 | |
i32.add | |
i32.const 0 | |
i32.store offset=96 | |
local.get $2 | |
i32.const 1 | |
i32.add | |
local.set $2 | |
br $for-loop|1 | |
end | |
end | |
local.get $1 | |
i32.const 1 | |
i32.add | |
local.set $1 | |
br $for-loop|0 | |
end | |
end | |
i32.const 208 | |
i32.const 1792 | |
memory.size | |
i32.const 16 | |
i32.shl | |
call $~lib/rt/tlsf/addMemory | |
i32.const 208 | |
global.set $~lib/rt/tlsf/ROOT | |
end | |
local.get $0 | |
) | |
(func $~lib/rt/tlsf/prepareSize (; 5 ;) (param $0 i32) (result i32) | |
local.get $0 | |
i32.const 1073741808 | |
i32.ge_u | |
if | |
i32.const 80 | |
i32.const 32 | |
i32.const 457 | |
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 ;) (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 | |
local.get $1 | |
i32.const 1 | |
i32.const 27 | |
local.get $1 | |
i32.clz | |
i32.sub | |
i32.shl | |
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 32 | |
i32.const 338 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $0 | |
local.get $2 | |
i32.const 2 | |
i32.shl | |
i32.add | |
i32.load offset=4 | |
i32.const -1 | |
local.get $1 | |
i32.shl | |
i32.and | |
local.tee $1 | |
if (result i32) | |
local.get $0 | |
local.get $1 | |
i32.ctz | |
local.get $2 | |
i32.const 4 | |
i32.shl | |
i32.add | |
i32.const 2 | |
i32.shl | |
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 $0 | |
local.get $1 | |
i32.ctz | |
local.tee $1 | |
i32.const 2 | |
i32.shl | |
i32.add | |
i32.load offset=4 | |
local.tee $2 | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 32 | |
i32.const 351 | |
i32.const 17 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $0 | |
local.get $2 | |
i32.ctz | |
local.get $1 | |
i32.const 4 | |
i32.shl | |
i32.add | |
i32.const 2 | |
i32.shl | |
i32.add | |
i32.load offset=96 | |
else | |
i32.const 0 | |
end | |
end | |
) | |
(func $~lib/rt/tlsf/growMemory (; 7 ;) (param $0 i32) (param $1 i32) | |
(local $2 i32) | |
memory.size | |
local.tee $2 | |
i32.const 16 | |
local.get $0 | |
i32.load offset=1568 | |
local.get $2 | |
i32.const 16 | |
i32.shl | |
i32.const 16 | |
i32.sub | |
i32.ne | |
i32.shl | |
local.get $1 | |
i32.const 1 | |
i32.const 27 | |
local.get $1 | |
i32.clz | |
i32.sub | |
i32.shl | |
i32.const 1 | |
i32.sub | |
i32.add | |
local.get $1 | |
local.get $1 | |
i32.const 536870904 | |
i32.lt_u | |
select | |
i32.add | |
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 ;) (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 32 | |
i32.const 365 | |
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 $2 | |
local.get $3 | |
i32.const 2 | |
i32.and | |
i32.or | |
i32.store | |
local.get $2 | |
local.get $1 | |
i32.const 16 | |
i32.add | |
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 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) | |
(local $3 i32) | |
(local $4 i32) | |
global.get $~lib/rt/tlsf/collectLock | |
if | |
i32.const 0 | |
i32.const 32 | |
i32.const 490 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $0 | |
local.get $1 | |
call $~lib/rt/tlsf/prepareSize | |
local.tee $4 | |
call $~lib/rt/tlsf/searchBlock | |
local.tee $3 | |
i32.eqz | |
if | |
i32.const 1 | |
global.set $~lib/rt/tlsf/collectLock | |
i32.const 0 | |
global.set $~lib/rt/tlsf/collectLock | |
local.get $0 | |
local.get $4 | |
call $~lib/rt/tlsf/searchBlock | |
local.tee $3 | |
i32.eqz | |
if | |
local.get $0 | |
local.get $4 | |
call $~lib/rt/tlsf/growMemory | |
local.get $0 | |
local.get $4 | |
call $~lib/rt/tlsf/searchBlock | |
local.tee $3 | |
i32.eqz | |
if | |
i32.const 0 | |
i32.const 32 | |
i32.const 502 | |
i32.const 19 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
end | |
end | |
local.get $3 | |
i32.load | |
i32.const -4 | |
i32.and | |
local.get $4 | |
i32.lt_u | |
if | |
i32.const 0 | |
i32.const 32 | |
i32.const 510 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $3 | |
i32.const 0 | |
i32.store offset=4 | |
local.get $3 | |
local.get $2 | |
i32.store offset=8 | |
local.get $3 | |
local.get $1 | |
i32.store offset=12 | |
local.get $0 | |
local.get $3 | |
call $~lib/rt/tlsf/removeBlock | |
local.get $0 | |
local.get $3 | |
local.get $4 | |
call $~lib/rt/tlsf/prepareBlock | |
local.get $3 | |
) | |
(func $~lib/rt/tlsf/__alloc (; 10 ;) (param $0 i32) (param $1 i32) (result i32) | |
call $~lib/rt/tlsf/maybeInitialize | |
local.get $0 | |
local.get $1 | |
call $~lib/rt/tlsf/allocateBlock | |
i32.const 16 | |
i32.add | |
) | |
(func $~lib/rt/pure/increment (; 11 ;) (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 144 | |
i32.const 109 | |
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 144 | |
i32.const 112 | |
i32.const 13 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
) | |
(func $~lib/rt/pure/__retain (; 12 ;) (param $0 i32) (result i32) | |
local.get $0 | |
i32.const 204 | |
i32.gt_u | |
if | |
local.get $0 | |
i32.const 16 | |
i32.sub | |
call $~lib/rt/pure/increment | |
end | |
local.get $0 | |
) | |
(func $~lib/rt/pure/__release (; 13 ;) (param $0 i32) | |
local.get $0 | |
i32.const 204 | |
i32.gt_u | |
if | |
local.get $0 | |
i32.const 16 | |
i32.sub | |
call $~lib/rt/pure/decrement | |
end | |
) | |
(func $assembly/index/add (; 14 ;) (param $0 i32) (param $1 i32) (result i32) | |
local.get $0 | |
local.get $1 | |
i32.add | |
) | |
(func $~lib/rt/pure/__collect (; 15 ;) | |
nop | |
) | |
(func $~lib/rt/pure/decrement (; 16 ;) (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 144 | |
i32.const 122 | |
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 | |
call $~lib/rt/__visit_members | |
local.get $2 | |
i32.const -2147483648 | |
i32.and | |
if | |
i32.const 0 | |
i32.const 144 | |
i32.const 126 | |
i32.const 17 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
local.get $0 | |
local.get $0 | |
i32.load | |
i32.const 1 | |
i32.or | |
i32.store | |
global.get $~lib/rt/tlsf/ROOT | |
local.get $0 | |
call $~lib/rt/tlsf/insertBlock | |
else | |
local.get $1 | |
i32.const 0 | |
i32.le_u | |
if | |
i32.const 0 | |
i32.const 144 | |
i32.const 136 | |
i32.const 15 | |
call $~lib/builtins/abort | |
unreachable | |
end | |
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 | |
end | |
) | |
(func $~lib/rt/__visit_members (; 17 ;) (param $0 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$default | |
end | |
return | |
end | |
local.get $0 | |
i32.load | |
local.tee $0 | |
if | |
local.get $0 | |
i32.const 204 | |
i32.ge_u | |
if | |
local.get $0 | |
i32.const 16 | |
i32.sub | |
call $~lib/rt/pure/decrement | |
end | |
end | |
return | |
end | |
unreachable | |
) | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment