summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2019-03-01 10:28:07 -0800
committerGitHub <noreply@github.com>2019-03-01 10:28:07 -0800
commit689fe405a3417fbfd59456035add6f6f53149f35 (patch)
treed6f1dcaf0cbb85eb3ae830f68a46c9a6627d1562 /test
parentf59c3033e678ced61bc8c78e8ac9fbee31ef0210 (diff)
downloadbinaryen-689fe405a3417fbfd59456035add6f6f53149f35.tar.gz
binaryen-689fe405a3417fbfd59456035add6f6f53149f35.tar.bz2
binaryen-689fe405a3417fbfd59456035add6f6f53149f35.zip
Consistently optimize small added constants into load/store offsets (#1924)
See #1919 - we did not do this consistently before. This adds a lowMemoryUnused option to PassOptions. It can be passed on the commandline with --low-memory-unused. If enabled, we run the new optimize-added-constants pass, which does the real work here, replacing older code in post-emscripten. Aside from running at the proper time (unlike the old pass, see #1919), this also has a -propagate mode, which can do stuff like this: y = x + 10 [..] load(y) [..] load(y) => y = x + 10 [..] load(x, offset=10) [..] load(x, offset=10) That is, it can propagate such offsets to the loads/stores. This pattern is common in big interpreter loops, where the pointers are offsets into a big struct of state. The pass does this propagation by using a new feature of LocalGraph, which can verify which locals are in SSA mode. Binaryen IR is not SSA (intentionally, since it's a later IR), but if a local only has a single set for all gets, that means that local is in such a state, and can be optimized. The tricky thing is that all locals are initialized to zero, so there are at minimum two sets. But if we verify that the real set dominates all the gets, then the zero initialization cannot reach them, and we are safe. This PR also makes safe-heap aware of lowMemoryUnused. If so, we check for not just an access of 0, but the range 0-1023. This makes zlib 5% faster, with either the wasm backend or asm2wasm. It also makes it 0.5% smaller. Also helps sqlite (1.5% faster) and lua (1% faster)
Diffstat (limited to 'test')
-rw-r--r--test/emcc_O2_hello_world.fromasm221
-rw-r--r--test/emcc_O2_hello_world.fromasm.clamp221
-rw-r--r--test/emcc_O2_hello_world.fromasm.imprecise217
-rw-r--r--test/emcc_hello_world.fromasm9413
-rw-r--r--test/emcc_hello_world.fromasm.clamp9413
-rw-r--r--test/emcc_hello_world.fromasm.imprecise9345
-rw-r--r--test/memorygrowth.fromasm204
-rw-r--r--test/memorygrowth.fromasm.clamp204
-rw-r--r--test/memorygrowth.fromasm.imprecise209
-rw-r--r--test/passes/optimize-added-constants-propagate_low-memory-unused.txt410
-rw-r--r--test/passes/optimize-added-constants-propagate_low-memory-unused.wast415
-rw-r--r--test/passes/optimize-added-constants_low-memory-unused.txt383
-rw-r--r--test/passes/optimize-added-constants_low-memory-unused.wast391
-rw-r--r--test/passes/post-emscripten.txt117
-rw-r--r--test/passes/post-emscripten.wast151
-rw-r--r--test/passes/precompute-propagate.txt1
-rw-r--r--test/passes/precompute-propagate.wast1
-rw-r--r--test/passes/safe-heap_low-memory-unused.txt9800
-rw-r--r--test/passes/safe-heap_low-memory-unused.wast56
19 files changed, 26046 insertions, 15126 deletions
diff --git a/test/emcc_O2_hello_world.fromasm b/test/emcc_O2_hello_world.fromasm
index 7ea5ff8d6..b62a74e88 100644
--- a/test/emcc_O2_hello_world.fromasm
+++ b/test/emcc_O2_hello_world.fromasm
@@ -7641,9 +7641,7 @@
(local $13 i32)
(local $14 i32)
(local $15 i32)
- (local $16 i32)
- (local $17 i32)
- (local.set $12
+ (local.set $7
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -7652,29 +7650,25 @@
(i32.const 48)
)
)
- (local.set $9
+ (local.set $11
(i32.add
- (local.get $12)
+ (local.get $7)
(i32.const 16)
)
)
+ (local.set $9
+ (local.get $7)
+ )
(i32.store
(local.tee $3
(i32.add
- (local.tee $10
- (local.get $12)
- )
+ (local.get $7)
(i32.const 32)
)
)
- (local.tee $11
- (i32.load
- (local.tee $7
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (local.tee $10
+ (i32.load offset=28
+ (local.get $0)
)
)
)
@@ -7682,15 +7676,10 @@
(local.get $3)
(local.tee $8
(i32.sub
- (i32.load
- (local.tee $13
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
- (local.get $11)
+ (local.get $10)
)
)
)
@@ -7708,7 +7697,7 @@
(i32.const 60)
)
)
- (local.set $11
+ (local.set $10
(i32.add
(local.get $0)
(i32.const 44)
@@ -7742,24 +7731,24 @@
(local.get $0)
)
(i32.store
- (local.get $10)
+ (local.get $9)
(i32.load
(local.get $1)
)
)
(i32.store offset=4
- (local.get $10)
+ (local.get $9)
(local.get $5)
)
(i32.store offset=8
- (local.get $10)
+ (local.get $9)
(local.get $3)
)
(local.set $8
(call $___syscall_ret
(call $___syscall146
(i32.const 146)
- (local.get $10)
+ (local.get $9)
)
)
)
@@ -7769,24 +7758,24 @@
(local.get $8)
)
(block (result i32)
- (i32.store
- (local.get $9)
+ (i32.store offset=16
+ (local.get $7)
(i32.load
(local.get $1)
)
)
(i32.store offset=4
- (local.get $9)
+ (local.get $11)
(local.get $5)
)
(i32.store offset=8
- (local.get $9)
+ (local.get $11)
(local.get $3)
)
(call $___syscall_ret
(call $___syscall146
(i32.const 146)
- (local.get $9)
+ (local.get $11)
)
)
)
@@ -7806,10 +7795,10 @@
(i32.const 0)
)
(block
- (local.set $16
+ (local.set $14
(local.get $5)
)
- (local.set $17
+ (local.set $15
(local.get $3)
)
(local.set $1
@@ -7827,7 +7816,7 @@
(if
(i32.le_u
(local.get $6)
- (local.tee $14
+ (local.tee $12
(i32.load offset=4
(local.get $5)
)
@@ -7840,12 +7829,12 @@
(i32.const 2)
)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(i32.add
(local.get $6)
- (i32.load
- (local.get $7)
+ (i32.load offset=28
+ (local.get $0)
)
)
)
@@ -7855,20 +7844,20 @@
)
)
(local.set $4
- (local.get $14)
+ (local.get $12)
)
)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(local.tee $4
(i32.load
- (local.get $11)
+ (local.get $10)
)
)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(local.get $4)
)
(local.set $4
@@ -7879,7 +7868,7 @@
(local.set $6
(i32.sub
(local.get $6)
- (local.get $14)
+ (local.get $12)
)
)
(local.set $5
@@ -7918,7 +7907,7 @@
(br $while-in)
)
)
- (local.set $15
+ (local.set $13
(if (result i32)
(i32.eq
(local.get $1)
@@ -7930,7 +7919,7 @@
(i32.add
(local.tee $4
(i32.load
- (local.get $11)
+ (local.get $10)
)
)
(i32.load offset=48
@@ -7938,12 +7927,12 @@
)
)
)
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(local.get $4)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(local.get $4)
)
(local.get $2)
@@ -7958,12 +7947,12 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
(i32.store
@@ -7977,26 +7966,26 @@
)
(if (result i32)
(i32.eq
- (local.get $17)
+ (local.get $15)
(i32.const 2)
)
(i32.const 0)
(i32.sub
(local.get $2)
(i32.load offset=4
- (local.get $16)
+ (local.get $14)
)
)
)
)
- (local.get $15)
+ (local.get $13)
)
)
)
(global.set $STACKTOP
- (local.get $12)
+ (local.get $7)
)
- (local.get $15)
+ (local.get $13)
)
(func $___fwritex (; 18 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -8109,15 +8098,12 @@
)
(if
(i32.ne
- (i32.load8_s
- (i32.add
- (local.tee $5
- (i32.add
- (local.get $2)
- (i32.const -1)
- )
+ (i32.load8_s offset=672
+ (local.tee $5
+ (i32.add
+ (local.get $2)
+ (i32.const -1)
)
- (i32.const 672)
)
)
(i32.const 10)
@@ -8538,28 +8524,14 @@
(func $___fflush_unlocked (; 22 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
- (local $3 i32)
- (local $4 i32)
- (local $5 i32)
- (local $6 i32)
(if (result i32)
(if (result i32)
(i32.gt_u
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (i32.load offset=28
+ (local.get $0)
)
)
(block (result i32)
@@ -8580,8 +8552,8 @@
)
)
(i32.eqz
- (i32.load
- (local.get $1)
+ (i32.load offset=20
+ (local.get $0)
)
)
)
@@ -8591,24 +8563,14 @@
(block (result i32)
(if
(i32.lt_u
- (local.tee $4
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 4)
- )
- )
+ (local.tee $1
+ (i32.load offset=4
+ (local.get $0)
)
)
- (local.tee $6
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
+ (local.tee $2
+ (i32.load offset=8
+ (local.get $0)
)
)
)
@@ -8616,8 +8578,8 @@
(call_indirect (type $FUNCSIG$iiii)
(local.get $0)
(i32.sub
- (local.get $4)
- (local.get $6)
+ (local.get $1)
+ (local.get $2)
)
(i32.const 1)
(i32.add
@@ -8636,20 +8598,20 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $2)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $1)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $5)
+ (i32.store offset=8
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $3)
+ (i32.store offset=4
+ (local.get $0)
(i32.const 0)
)
(i32.const 0)
@@ -9022,8 +8984,7 @@
)
(func $___stdio_seek (; 27 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
- (local $4 i32)
- (local.set $4
+ (local.set $3
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -9033,9 +8994,7 @@
)
)
(i32.store
- (local.tee $3
- (local.get $4)
- )
+ (local.get $3)
(i32.load offset=60
(local.get $0)
)
@@ -9050,11 +9009,9 @@
)
(i32.store offset=12
(local.get $3)
- (local.tee $0
- (i32.add
- (local.get $3)
- (i32.const 20)
- )
+ (i32.add
+ (local.get $3)
+ (i32.const 20)
)
)
(i32.store offset=16
@@ -9073,19 +9030,19 @@
(i32.const 0)
)
(block (result i32)
- (i32.store
- (local.get $0)
+ (i32.store offset=20
+ (local.get $3)
(i32.const -1)
)
(i32.const -1)
)
- (i32.load
- (local.get $0)
+ (i32.load offset=20
+ (local.get $3)
)
)
)
(global.set $STACKTOP
- (local.get $4)
+ (local.get $3)
)
(local.get $0)
)
diff --git a/test/emcc_O2_hello_world.fromasm.clamp b/test/emcc_O2_hello_world.fromasm.clamp
index 7ea5ff8d6..b62a74e88 100644
--- a/test/emcc_O2_hello_world.fromasm.clamp
+++ b/test/emcc_O2_hello_world.fromasm.clamp
@@ -7641,9 +7641,7 @@
(local $13 i32)
(local $14 i32)
(local $15 i32)
- (local $16 i32)
- (local $17 i32)
- (local.set $12
+ (local.set $7
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -7652,29 +7650,25 @@
(i32.const 48)
)
)
- (local.set $9
+ (local.set $11
(i32.add
- (local.get $12)
+ (local.get $7)
(i32.const 16)
)
)
+ (local.set $9
+ (local.get $7)
+ )
(i32.store
(local.tee $3
(i32.add
- (local.tee $10
- (local.get $12)
- )
+ (local.get $7)
(i32.const 32)
)
)
- (local.tee $11
- (i32.load
- (local.tee $7
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (local.tee $10
+ (i32.load offset=28
+ (local.get $0)
)
)
)
@@ -7682,15 +7676,10 @@
(local.get $3)
(local.tee $8
(i32.sub
- (i32.load
- (local.tee $13
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
- (local.get $11)
+ (local.get $10)
)
)
)
@@ -7708,7 +7697,7 @@
(i32.const 60)
)
)
- (local.set $11
+ (local.set $10
(i32.add
(local.get $0)
(i32.const 44)
@@ -7742,24 +7731,24 @@
(local.get $0)
)
(i32.store
- (local.get $10)
+ (local.get $9)
(i32.load
(local.get $1)
)
)
(i32.store offset=4
- (local.get $10)
+ (local.get $9)
(local.get $5)
)
(i32.store offset=8
- (local.get $10)
+ (local.get $9)
(local.get $3)
)
(local.set $8
(call $___syscall_ret
(call $___syscall146
(i32.const 146)
- (local.get $10)
+ (local.get $9)
)
)
)
@@ -7769,24 +7758,24 @@
(local.get $8)
)
(block (result i32)
- (i32.store
- (local.get $9)
+ (i32.store offset=16
+ (local.get $7)
(i32.load
(local.get $1)
)
)
(i32.store offset=4
- (local.get $9)
+ (local.get $11)
(local.get $5)
)
(i32.store offset=8
- (local.get $9)
+ (local.get $11)
(local.get $3)
)
(call $___syscall_ret
(call $___syscall146
(i32.const 146)
- (local.get $9)
+ (local.get $11)
)
)
)
@@ -7806,10 +7795,10 @@
(i32.const 0)
)
(block
- (local.set $16
+ (local.set $14
(local.get $5)
)
- (local.set $17
+ (local.set $15
(local.get $3)
)
(local.set $1
@@ -7827,7 +7816,7 @@
(if
(i32.le_u
(local.get $6)
- (local.tee $14
+ (local.tee $12
(i32.load offset=4
(local.get $5)
)
@@ -7840,12 +7829,12 @@
(i32.const 2)
)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(i32.add
(local.get $6)
- (i32.load
- (local.get $7)
+ (i32.load offset=28
+ (local.get $0)
)
)
)
@@ -7855,20 +7844,20 @@
)
)
(local.set $4
- (local.get $14)
+ (local.get $12)
)
)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(local.tee $4
(i32.load
- (local.get $11)
+ (local.get $10)
)
)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(local.get $4)
)
(local.set $4
@@ -7879,7 +7868,7 @@
(local.set $6
(i32.sub
(local.get $6)
- (local.get $14)
+ (local.get $12)
)
)
(local.set $5
@@ -7918,7 +7907,7 @@
(br $while-in)
)
)
- (local.set $15
+ (local.set $13
(if (result i32)
(i32.eq
(local.get $1)
@@ -7930,7 +7919,7 @@
(i32.add
(local.tee $4
(i32.load
- (local.get $11)
+ (local.get $10)
)
)
(i32.load offset=48
@@ -7938,12 +7927,12 @@
)
)
)
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(local.get $4)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(local.get $4)
)
(local.get $2)
@@ -7958,12 +7947,12 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
(i32.store
@@ -7977,26 +7966,26 @@
)
(if (result i32)
(i32.eq
- (local.get $17)
+ (local.get $15)
(i32.const 2)
)
(i32.const 0)
(i32.sub
(local.get $2)
(i32.load offset=4
- (local.get $16)
+ (local.get $14)
)
)
)
)
- (local.get $15)
+ (local.get $13)
)
)
)
(global.set $STACKTOP
- (local.get $12)
+ (local.get $7)
)
- (local.get $15)
+ (local.get $13)
)
(func $___fwritex (; 18 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -8109,15 +8098,12 @@
)
(if
(i32.ne
- (i32.load8_s
- (i32.add
- (local.tee $5
- (i32.add
- (local.get $2)
- (i32.const -1)
- )
+ (i32.load8_s offset=672
+ (local.tee $5
+ (i32.add
+ (local.get $2)
+ (i32.const -1)
)
- (i32.const 672)
)
)
(i32.const 10)
@@ -8538,28 +8524,14 @@
(func $___fflush_unlocked (; 22 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
- (local $3 i32)
- (local $4 i32)
- (local $5 i32)
- (local $6 i32)
(if (result i32)
(if (result i32)
(i32.gt_u
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (i32.load offset=28
+ (local.get $0)
)
)
(block (result i32)
@@ -8580,8 +8552,8 @@
)
)
(i32.eqz
- (i32.load
- (local.get $1)
+ (i32.load offset=20
+ (local.get $0)
)
)
)
@@ -8591,24 +8563,14 @@
(block (result i32)
(if
(i32.lt_u
- (local.tee $4
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 4)
- )
- )
+ (local.tee $1
+ (i32.load offset=4
+ (local.get $0)
)
)
- (local.tee $6
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
+ (local.tee $2
+ (i32.load offset=8
+ (local.get $0)
)
)
)
@@ -8616,8 +8578,8 @@
(call_indirect (type $FUNCSIG$iiii)
(local.get $0)
(i32.sub
- (local.get $4)
- (local.get $6)
+ (local.get $1)
+ (local.get $2)
)
(i32.const 1)
(i32.add
@@ -8636,20 +8598,20 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $2)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $1)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $5)
+ (i32.store offset=8
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $3)
+ (i32.store offset=4
+ (local.get $0)
(i32.const 0)
)
(i32.const 0)
@@ -9022,8 +8984,7 @@
)
(func $___stdio_seek (; 27 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
- (local $4 i32)
- (local.set $4
+ (local.set $3
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -9033,9 +8994,7 @@
)
)
(i32.store
- (local.tee $3
- (local.get $4)
- )
+ (local.get $3)
(i32.load offset=60
(local.get $0)
)
@@ -9050,11 +9009,9 @@
)
(i32.store offset=12
(local.get $3)
- (local.tee $0
- (i32.add
- (local.get $3)
- (i32.const 20)
- )
+ (i32.add
+ (local.get $3)
+ (i32.const 20)
)
)
(i32.store offset=16
@@ -9073,19 +9030,19 @@
(i32.const 0)
)
(block (result i32)
- (i32.store
- (local.get $0)
+ (i32.store offset=20
+ (local.get $3)
(i32.const -1)
)
(i32.const -1)
)
- (i32.load
- (local.get $0)
+ (i32.load offset=20
+ (local.get $3)
)
)
)
(global.set $STACKTOP
- (local.get $4)
+ (local.get $3)
)
(local.get $0)
)
diff --git a/test/emcc_O2_hello_world.fromasm.imprecise b/test/emcc_O2_hello_world.fromasm.imprecise
index c493e11b2..5be7015b2 100644
--- a/test/emcc_O2_hello_world.fromasm.imprecise
+++ b/test/emcc_O2_hello_world.fromasm.imprecise
@@ -7642,9 +7642,7 @@
(local $13 i32)
(local $14 i32)
(local $15 i32)
- (local $16 i32)
- (local $17 i32)
- (local.set $12
+ (local.set $7
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -7653,29 +7651,25 @@
(i32.const 48)
)
)
- (local.set $9
+ (local.set $11
(i32.add
- (local.get $12)
+ (local.get $7)
(i32.const 16)
)
)
+ (local.set $9
+ (local.get $7)
+ )
(i32.store
(local.tee $3
(i32.add
- (local.tee $10
- (local.get $12)
- )
+ (local.get $7)
(i32.const 32)
)
)
- (local.tee $11
- (i32.load
- (local.tee $7
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (local.tee $10
+ (i32.load offset=28
+ (local.get $0)
)
)
)
@@ -7683,15 +7677,10 @@
(local.get $3)
(local.tee $8
(i32.sub
- (i32.load
- (local.tee $13
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
- (local.get $11)
+ (local.get $10)
)
)
)
@@ -7709,7 +7698,7 @@
(i32.const 60)
)
)
- (local.set $11
+ (local.set $10
(i32.add
(local.get $0)
(i32.const 44)
@@ -7743,24 +7732,24 @@
(local.get $0)
)
(i32.store
- (local.get $10)
+ (local.get $9)
(i32.load
(local.get $1)
)
)
(i32.store offset=4
- (local.get $10)
+ (local.get $9)
(local.get $5)
)
(i32.store offset=8
- (local.get $10)
+ (local.get $9)
(local.get $3)
)
(local.set $8
(call $___syscall_ret
(call $___syscall146
(i32.const 146)
- (local.get $10)
+ (local.get $9)
)
)
)
@@ -7770,24 +7759,24 @@
(local.get $8)
)
(block (result i32)
- (i32.store
- (local.get $9)
+ (i32.store offset=16
+ (local.get $7)
(i32.load
(local.get $1)
)
)
(i32.store offset=4
- (local.get $9)
+ (local.get $11)
(local.get $5)
)
(i32.store offset=8
- (local.get $9)
+ (local.get $11)
(local.get $3)
)
(call $___syscall_ret
(call $___syscall146
(i32.const 146)
- (local.get $9)
+ (local.get $11)
)
)
)
@@ -7807,10 +7796,10 @@
(i32.const 0)
)
(block
- (local.set $15
+ (local.set $13
(local.get $5)
)
- (local.set $16
+ (local.set $14
(local.get $3)
)
(local.set $1
@@ -7828,7 +7817,7 @@
(if
(i32.le_u
(local.get $6)
- (local.tee $14
+ (local.tee $12
(i32.load offset=4
(local.get $5)
)
@@ -7841,12 +7830,12 @@
(i32.const 2)
)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(i32.add
(local.get $6)
- (i32.load
- (local.get $7)
+ (i32.load offset=28
+ (local.get $0)
)
)
)
@@ -7856,20 +7845,20 @@
)
)
(local.set $4
- (local.get $14)
+ (local.get $12)
)
)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(local.tee $4
(i32.load
- (local.get $11)
+ (local.get $10)
)
)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(local.get $4)
)
(local.set $4
@@ -7880,7 +7869,7 @@
(local.set $6
(i32.sub
(local.get $6)
- (local.get $14)
+ (local.get $12)
)
)
(local.set $5
@@ -7920,7 +7909,7 @@
)
)
(global.set $STACKTOP
- (local.get $12)
+ (local.get $7)
)
(if (result i32)
(i32.eq
@@ -7933,7 +7922,7 @@
(i32.add
(local.tee $4
(i32.load
- (local.get $11)
+ (local.get $10)
)
)
(i32.load offset=48
@@ -7941,12 +7930,12 @@
)
)
)
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(local.get $4)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(local.get $4)
)
(local.get $2)
@@ -7961,12 +7950,12 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
(i32.store
@@ -7983,16 +7972,16 @@
(i32.sub
(local.get $2)
(i32.load offset=4
- (local.get $15)
+ (local.get $13)
)
)
(i32.eq
- (local.get $16)
+ (local.get $14)
(i32.const 2)
)
)
)
- (local.get $17)
+ (local.get $15)
)
)
)
@@ -8107,15 +8096,12 @@
)
(if
(i32.ne
- (i32.load8_s
- (i32.add
- (local.tee $5
- (i32.add
- (local.get $2)
- (i32.const -1)
- )
+ (i32.load8_s offset=672
+ (local.tee $5
+ (i32.add
+ (local.get $2)
+ (i32.const -1)
)
- (i32.const 672)
)
)
(i32.const 10)
@@ -8531,28 +8517,14 @@
(func $___fflush_unlocked (; 22 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
- (local $3 i32)
- (local $4 i32)
- (local $5 i32)
- (local $6 i32)
(if (result i32)
(if (result i32)
(i32.gt_u
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (i32.load offset=28
+ (local.get $0)
)
)
(block (result i32)
@@ -8573,8 +8545,8 @@
)
)
(i32.eqz
- (i32.load
- (local.get $1)
+ (i32.load offset=20
+ (local.get $0)
)
)
)
@@ -8584,24 +8556,14 @@
(block (result i32)
(if
(i32.lt_u
- (local.tee $4
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 4)
- )
- )
+ (local.tee $1
+ (i32.load offset=4
+ (local.get $0)
)
)
- (local.tee $6
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
+ (local.tee $2
+ (i32.load offset=8
+ (local.get $0)
)
)
)
@@ -8609,8 +8571,8 @@
(call_indirect (type $FUNCSIG$iiii)
(local.get $0)
(i32.sub
- (local.get $4)
- (local.get $6)
+ (local.get $1)
+ (local.get $2)
)
(i32.const 1)
(i32.add
@@ -8629,20 +8591,20 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $2)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $1)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $5)
+ (i32.store offset=8
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $3)
+ (i32.store offset=4
+ (local.get $0)
(i32.const 0)
)
(i32.const 0)
@@ -9034,8 +8996,7 @@
)
(func $___stdio_seek (; 27 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
- (local $4 i32)
- (local.set $4
+ (local.set $3
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -9045,9 +9006,7 @@
)
)
(i32.store
- (local.tee $3
- (local.get $4)
- )
+ (local.get $3)
(i32.load offset=60
(local.get $0)
)
@@ -9062,11 +9021,9 @@
)
(i32.store offset=12
(local.get $3)
- (local.tee $0
- (i32.add
- (local.get $3)
- (i32.const 20)
- )
+ (i32.add
+ (local.get $3)
+ (i32.const 20)
)
)
(i32.store offset=16
@@ -9085,19 +9042,19 @@
(i32.const 0)
)
(block (result i32)
- (i32.store
- (local.get $0)
+ (i32.store offset=20
+ (local.get $3)
(i32.const -1)
)
(i32.const -1)
)
- (i32.load
- (local.get $0)
+ (i32.load offset=20
+ (local.get $3)
)
)
)
(global.set $STACKTOP
- (local.get $4)
+ (local.get $3)
)
(local.get $0)
)
diff --git a/test/emcc_hello_world.fromasm b/test/emcc_hello_world.fromasm
index 16adc1457..917f9589f 100644
--- a/test/emcc_hello_world.fromasm
+++ b/test/emcc_hello_world.fromasm
@@ -264,8 +264,11 @@
(loop $while-in
(if
(i32.ne
- (i32.load8_u offset=687
- (local.get $1)
+ (i32.load8_u
+ (i32.add
+ (local.get $1)
+ (i32.const 687)
+ )
)
(local.get $0)
)
@@ -499,11 +502,9 @@
)
(i32.store offset=12
(local.get $3)
- (local.tee $0
- (i32.add
- (local.get $3)
- (i32.const 20)
- )
+ (i32.add
+ (local.get $3)
+ (i32.const 20)
)
)
(i32.store offset=16
@@ -522,14 +523,14 @@
(i32.const 0)
)
(block (result i32)
- (i32.store
- (local.get $0)
+ (i32.store offset=20
+ (local.get $4)
(i32.const -1)
)
(i32.const -1)
)
- (i32.load
- (local.get $0)
+ (i32.load offset=20
+ (local.get $4)
)
)
)
@@ -666,11 +667,7 @@
(local $8 i32)
(local $9 i32)
(local $10 i32)
- (local $11 i32)
- (local $12 i32)
- (local $13 i32)
- (local $14 i32)
- (local.set $10
+ (local.set $8
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -686,43 +683,33 @@
)
(call $abort)
)
- (local.set $8
+ (local.set $9
(i32.add
- (local.get $10)
+ (local.get $8)
(i32.const 16)
)
)
- (i32.store
- (local.tee $4
- (i32.add
- (local.tee $9
- (local.get $10)
- )
- (i32.const 32)
- )
+ (i32.store offset=32
+ (local.tee $6
+ (local.get $8)
)
(local.tee $3
- (i32.load
- (local.tee $6
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (i32.load offset=28
+ (local.get $0)
)
)
)
(i32.store offset=4
- (local.get $4)
+ (local.tee $4
+ (i32.add
+ (local.get $6)
+ (i32.const 32)
+ )
+ )
(local.tee $3
(i32.sub
- (i32.load
- (local.tee $11
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
(local.get $3)
)
@@ -736,25 +723,13 @@
(local.get $4)
(local.get $2)
)
- (local.set $13
- (i32.add
- (local.get $0)
- (i32.const 60)
- )
- )
- (local.set $14
- (i32.add
- (local.get $0)
- (i32.const 44)
- )
- )
(local.set $1
(local.get $4)
)
(local.set $4
(i32.const 2)
)
- (local.set $12
+ (local.set $10
(i32.add
(local.get $2)
(local.get $3)
@@ -774,24 +749,24 @@
(local.get $0)
)
(i32.store
- (local.get $9)
- (i32.load
- (local.get $13)
+ (local.get $6)
+ (i32.load offset=60
+ (local.get $0)
)
)
(i32.store offset=4
- (local.get $9)
+ (local.get $6)
(local.get $1)
)
(i32.store offset=8
- (local.get $9)
+ (local.get $6)
(local.get $4)
)
(local.set $3
(call $___syscall_ret
(call $___syscall146
(i32.const 146)
- (local.get $9)
+ (local.get $6)
)
)
)
@@ -800,25 +775,25 @@
)
)
(block
- (i32.store
+ (i32.store offset=16
(local.get $8)
- (i32.load
- (local.get $13)
+ (i32.load offset=60
+ (local.get $0)
)
)
(i32.store offset=4
- (local.get $8)
+ (local.get $9)
(local.get $1)
)
(i32.store offset=8
- (local.get $8)
+ (local.get $9)
(local.get $4)
)
(local.set $3
(call $___syscall_ret
(call $___syscall146
(i32.const 146)
- (local.get $8)
+ (local.get $9)
)
)
)
@@ -827,7 +802,7 @@
(br_if $__rjti$0
(i32.eq
(local.get $3)
- (local.get $12)
+ (local.get $10)
)
)
(br_if $__rjti$1
@@ -841,27 +816,33 @@
(i32.gt_u
(local.get $3)
(local.tee $5
- (i32.load offset=4
- (local.get $1)
+ (i32.load
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
)
)
)
(block (result i32)
- (i32.store
- (local.get $6)
+ (i32.store offset=28
+ (local.get $0)
(local.tee $7
- (i32.load
- (local.get $14)
+ (i32.load offset=44
+ (local.get $0)
)
)
)
- (i32.store
- (local.get $11)
+ (i32.store offset=20
+ (local.get $0)
(local.get $7)
)
(local.set $7
- (i32.load offset=12
- (local.get $1)
+ (i32.load
+ (i32.add
+ (local.get $1)
+ (i32.const 12)
+ )
)
)
(local.set $1
@@ -888,11 +869,11 @@
(i32.const 2)
)
(block
- (i32.store
- (local.get $6)
+ (i32.store offset=28
+ (local.get $0)
(i32.add
- (i32.load
- (local.get $6)
+ (i32.load offset=28
+ (local.get $0)
)
(local.get $3)
)
@@ -921,16 +902,19 @@
(local.get $5)
)
)
- (i32.store offset=4
- (local.get $1)
+ (i32.store
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
(i32.sub
(local.get $7)
(local.get $5)
)
)
- (local.set $12
+ (local.set $10
(i32.sub
- (local.get $12)
+ (local.get $10)
(local.get $3)
)
)
@@ -941,8 +925,8 @@
(local.get $0)
(i32.add
(local.tee $1
- (i32.load
- (local.get $14)
+ (i32.load offset=44
+ (local.get $0)
)
)
(i32.load offset=48
@@ -950,12 +934,12 @@
)
)
)
- (i32.store
- (local.get $6)
+ (i32.store offset=28
+ (local.get $0)
(local.get $1)
)
- (i32.store
- (local.get $11)
+ (i32.store offset=20
+ (local.get $0)
(local.get $1)
)
(br $__rjto$1)
@@ -964,12 +948,12 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $6)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $11)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
(i32.store
@@ -998,7 +982,7 @@
)
)
(global.set $STACKTOP
- (local.get $10)
+ (local.get $8)
)
(local.get $2)
)
@@ -1010,11 +994,7 @@
(local $6 i32)
(local $7 i32)
(local $8 i32)
- (local $9 i32)
- (local $10 i32)
- (local $11 i32)
- (local $12 i32)
- (local.set $6
+ (local.set $2
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -1030,26 +1010,27 @@
)
(call $abort)
)
- (local.set $3
+ (local.set $6
(i32.add
- (local.get $6)
+ (local.get $2)
(i32.const 120)
)
)
- (local.set $5
+ (local.set $7
+ (local.get $2)
+ )
+ (local.set $4
(i32.add
- (local.tee $4
- (local.get $6)
- )
+ (local.get $2)
(i32.const 136)
)
)
- (local.set $8
+ (local.set $5
(i32.add
- (local.tee $2
- (local.tee $7
+ (local.tee $3
+ (local.tee $8
(i32.add
- (local.get $4)
+ (local.get $2)
(i32.const 80)
)
)
@@ -1059,23 +1040,23 @@
)
(loop $do-in
(i32.store
- (local.get $2)
+ (local.get $3)
(i32.const 0)
)
(br_if $do-in
(i32.lt_s
- (local.tee $2
+ (local.tee $3
(i32.add
- (local.get $2)
+ (local.get $3)
(i32.const 4)
)
)
- (local.get $8)
+ (local.get $5)
)
)
)
- (i32.store
- (local.get $3)
+ (i32.store offset=120
+ (local.get $2)
(i32.load
(local.get $1)
)
@@ -1085,9 +1066,9 @@
(i32.lt_s
(call $_printf_core
(i32.const 0)
- (local.get $3)
- (local.get $4)
+ (local.get $6)
(local.get $7)
+ (local.get $8)
)
(i32.const 0)
)
@@ -1098,7 +1079,7 @@
(local.get $0)
)
)
- (local.set $9
+ (local.set $3
(i32.load
(local.get $0)
)
@@ -1113,87 +1094,62 @@
(i32.store
(local.get $0)
(i32.and
- (local.get $9)
+ (local.get $3)
(i32.const -33)
)
)
)
(if
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 48)
- )
- )
+ (i32.load offset=48
+ (local.get $0)
)
(drop
(call $_printf_core
(local.get $0)
- (local.get $3)
- (local.get $4)
+ (local.get $6)
(local.get $7)
+ (local.get $8)
)
)
(block
- (local.set $11
- (i32.load
- (local.tee $10
- (i32.add
- (local.get $0)
- (i32.const 44)
- )
- )
+ (local.set $5
+ (i32.load offset=44
+ (local.get $0)
)
)
- (i32.store
- (local.get $10)
- (local.get $5)
+ (i32.store offset=44
+ (local.get $0)
+ (local.get $4)
)
- (i32.store
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
- (local.get $5)
+ (i32.store offset=28
+ (local.get $0)
+ (local.get $4)
)
- (i32.store
- (local.tee $12
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
- (local.get $5)
+ (i32.store offset=20
+ (local.get $0)
+ (local.get $4)
)
- (i32.store
- (local.get $1)
+ (i32.store offset=48
+ (local.get $0)
(i32.const 80)
)
- (i32.store
- (local.tee $8
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- )
+ (i32.store offset=16
+ (local.get $0)
(i32.add
- (local.get $5)
+ (local.get $4)
(i32.const 80)
)
)
(drop
(call $_printf_core
(local.get $0)
- (local.get $3)
- (local.get $4)
+ (local.get $6)
(local.get $7)
+ (local.get $8)
)
)
(if
- (local.get $11)
+ (local.get $5)
(block
(drop
(call_indirect (type $FUNCSIG$iiii)
@@ -1212,28 +1168,28 @@
)
)
(drop
- (i32.load
- (local.get $12)
+ (i32.load offset=20
+ (local.get $0)
)
)
- (i32.store
- (local.get $10)
- (local.get $11)
+ (i32.store offset=44
+ (local.get $0)
+ (local.get $5)
)
- (i32.store
- (local.get $1)
+ (i32.store offset=48
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $8)
+ (i32.store offset=16
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $2)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $12)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
)
@@ -1247,7 +1203,7 @@
(local.get $0)
)
(i32.and
- (local.get $9)
+ (local.get $3)
(i32.const 32)
)
)
@@ -1257,25 +1213,19 @@
)
)
(global.set $STACKTOP
- (local.get $6)
+ (local.get $2)
)
)
(func $___fwritex (; 37 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
- (local $6 i32)
(block $label$break$L5
(block $__rjti$0
(br_if $__rjti$0
(local.tee $3
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $2)
- (i32.const 16)
- )
- )
+ (i32.load offset=16
+ (local.get $2)
)
)
)
@@ -1287,8 +1237,8 @@
)
(block
(local.set $3
- (i32.load
- (local.get $4)
+ (i32.load offset=16
+ (local.get $2)
)
)
(br $__rjti$0)
@@ -1301,13 +1251,8 @@
(i32.sub
(local.get $3)
(local.tee $4
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $2)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $2)
)
)
)
@@ -1359,7 +1304,7 @@
(i32.load8_s
(i32.add
(local.get $0)
- (local.tee $6
+ (local.tee $5
(i32.add
(local.get $3)
(i32.const -1)
@@ -1371,7 +1316,7 @@
)
(block
(local.set $3
- (local.get $6)
+ (local.get $5)
)
(br $while-in)
)
@@ -1397,8 +1342,8 @@
)
)
(local.set $4
- (i32.load
- (local.get $5)
+ (i32.load offset=20
+ (local.get $2)
)
)
(local.set $1
@@ -1425,11 +1370,11 @@
(local.get $1)
)
)
- (i32.store
- (local.get $5)
+ (i32.store offset=20
+ (local.get $2)
(i32.add
- (i32.load
- (local.get $5)
+ (i32.load offset=20
+ (local.get $2)
)
(local.get $1)
)
@@ -1438,21 +1383,14 @@
)
(func $___towrite (; 38 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
- (local $2 i32)
- (local.set $1
- (i32.load8_s
- (local.tee $2
- (i32.add
+ (i32.store8 offset=74
+ (local.get $0)
+ (i32.or
+ (local.tee $1
+ (i32.load8_s offset=74
(local.get $0)
- (i32.const 74)
)
)
- )
- )
- (i32.store8
- (local.get $2)
- (i32.or
- (local.get $1)
(i32.add
(local.get $1)
(i32.const 255)
@@ -1910,29 +1848,15 @@
(local $1 i32)
(local $2 i32)
(local $3 i32)
- (local $4 i32)
- (local $5 i32)
- (local $6 i32)
- (local $7 i32)
(block $__rjto$0 (result i32)
(block $__rjti$0
(br_if $__rjti$0
(i32.le_u
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (i32.load offset=28
+ (local.get $0)
)
)
)
@@ -1956,8 +1880,8 @@
)
)
(br_if $__rjti$0
- (i32.load
- (local.get $2)
+ (i32.load offset=20
+ (local.get $0)
)
)
(br $__rjto$0
@@ -1966,29 +1890,19 @@
)
(if
(i32.lt_u
- (local.tee $4
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 4)
- )
- )
+ (local.tee $1
+ (i32.load offset=4
+ (local.get $0)
)
)
- (local.tee $6
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
+ (local.tee $2
+ (i32.load offset=8
+ (local.get $0)
)
)
)
(block
- (local.set $7
+ (local.set $3
(i32.load offset=40
(local.get $0)
)
@@ -1997,13 +1911,13 @@
(call_indirect (type $FUNCSIG$iiii)
(local.get $0)
(i32.sub
- (local.get $4)
- (local.get $6)
+ (local.get $1)
+ (local.get $2)
)
(i32.const 1)
(i32.add
(i32.and
- (local.get $7)
+ (local.get $3)
(i32.const 7)
)
(i32.const 2)
@@ -2016,20 +1930,20 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $3)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $2)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $5)
+ (i32.store offset=8
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $1)
+ (i32.store offset=4
+ (local.get $0)
(i32.const 0)
)
(i32.const 0)
@@ -2133,8 +2047,7 @@
(local $48 i32)
(local $49 i32)
(local $50 i32)
- (local $51 i32)
- (local.set $34
+ (local.set $20
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -2150,16 +2063,16 @@
)
(call $abort)
)
- (local.set $20
+ (local.set $39
(i32.add
- (local.get $34)
+ (local.get $20)
(i32.const 16)
)
)
- (local.set $35
+ (local.set $33
(i32.add
(local.tee $13
- (local.get $34)
+ (local.get $20)
)
(i32.const 528)
)
@@ -2170,7 +2083,7 @@
(i32.const 0)
)
)
- (local.set $38
+ (local.set $36
(local.tee $25
(i32.add
(local.tee $4
@@ -2183,21 +2096,16 @@
)
)
)
- (local.set $39
+ (local.set $40
(i32.add
(local.get $4)
(i32.const 39)
)
)
- (local.set $43
+ (local.set $41
(i32.add
- (local.tee $40
- (i32.add
- (local.get $13)
- (i32.const 8)
- )
- )
- (i32.const 4)
+ (local.get $13)
+ (i32.const 8)
)
)
(local.set $32
@@ -2211,18 +2119,18 @@
(i32.const 12)
)
)
- (local.set $41
+ (local.set $42
(i32.add
(local.get $4)
(i32.const 11)
)
)
- (local.set $44
+ (local.set $43
(i32.sub
(local.tee $27
(local.get $32)
)
- (local.tee $36
+ (local.tee $34
(local.tee $23
(i32.add
(local.get $13)
@@ -2232,21 +2140,21 @@
)
)
)
- (local.set $45
+ (local.set $44
(i32.sub
(i32.const -2)
- (local.get $36)
+ (local.get $34)
)
)
- (local.set $46
+ (local.set $45
(i32.add
(local.get $27)
(i32.const 2)
)
)
- (local.set $48
+ (local.set $47
(i32.add
- (local.tee $47
+ (local.tee $46
(i32.add
(local.get $13)
(i32.const 24)
@@ -2255,7 +2163,7 @@
(i32.const 288)
)
)
- (local.set $42
+ (local.set $37
(local.tee $29
(i32.add
(local.get $23)
@@ -2263,7 +2171,7 @@
)
)
)
- (local.set $33
+ (local.set $38
(i32.add
(local.get $23)
(i32.const 8)
@@ -3571,7 +3479,7 @@
(local.tee $10
(i32.add
(i32.sub
- (local.get $38)
+ (local.get $36)
(local.tee $6
(local.get $7)
)
@@ -3699,14 +3607,14 @@
(local.get $13)
)
)
- (i32.store8
- (local.get $39)
+ (i32.store8 offset=575
+ (local.get $13)
(i32.load
(local.get $13)
)
)
(local.set $4
- (local.get $39)
+ (local.get $40)
)
(local.set $10
(local.get $7)
@@ -3751,19 +3659,19 @@
(local.get $13)
)
)
- (i32.store
- (local.get $40)
+ (i32.store offset=8
+ (local.get $20)
(i32.load
(local.get $13)
)
)
- (i32.store
- (local.get $43)
+ (i32.store offset=12
+ (local.get $13)
(i32.const 0)
)
(i32.store
(local.get $13)
- (local.get $40)
+ (local.get $41)
)
(local.set $7
(i32.const -1)
@@ -3797,7 +3705,7 @@
(local.get $13)
)
)
- (i32.store
+ (i32.store offset=16
(local.get $20)
(i32.const 0)
)
@@ -3886,7 +3794,7 @@
(f64.mul
(call $_frexp
(local.get $15)
- (local.get $20)
+ (local.get $39)
)
(f64.const 2)
)
@@ -3894,10 +3802,10 @@
(f64.const 0)
)
)
- (i32.store
+ (i32.store offset=16
(local.get $20)
(i32.add
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
(i32.const -1)
@@ -4011,7 +3919,7 @@
(i32.sub
(i32.const 0)
(local.tee $6
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
)
@@ -4039,12 +3947,12 @@
(local.get $32)
)
(block
- (i32.store8
- (local.get $41)
+ (i32.store8 offset=587
+ (local.get $13)
(i32.const 48)
)
(local.set $4
- (local.get $41)
+ (local.get $42)
)
)
)
@@ -4131,7 +4039,7 @@
(i32.const 1)
)
)
- (local.get $36)
+ (local.get $34)
)
(i32.const 1)
)
@@ -4180,14 +4088,14 @@
(i32.sub
(i32.add
(local.get $5)
- (local.get $46)
+ (local.get $45)
)
(local.get $7)
)
(i32.add
(local.get $4)
(i32.sub
- (local.get $44)
+ (local.get $43)
(local.get $7)
)
)
@@ -4199,7 +4107,7 @@
(i32.lt_s
(i32.add
(local.get $4)
- (local.get $45)
+ (local.get $44)
)
(local.get $5)
)
@@ -4238,7 +4146,7 @@
(local.set $4
(i32.sub
(local.get $4)
- (local.get $36)
+ (local.get $34)
)
)
(if
@@ -4315,11 +4223,11 @@
(if (result f64)
(local.get $4)
(block (result f64)
- (i32.store
+ (i32.store offset=16
(local.get $20)
(local.tee $4
(i32.add
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
(i32.const -28)
@@ -4333,7 +4241,7 @@
)
(block (result f64)
(local.set $4
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
)
@@ -4344,8 +4252,8 @@
(local.set $6
(local.tee $7
(select
+ (local.get $46)
(local.get $47)
- (local.get $48)
(i32.lt_s
(local.get $4)
(i32.const 0)
@@ -4388,7 +4296,7 @@
(if
(i32.gt_s
(local.tee $8
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
)
@@ -4508,11 +4416,11 @@
)
)
)
- (i32.store
+ (i32.store offset=16
(local.get $20)
(local.tee $8
(i32.sub
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
(local.get $12)
@@ -4603,7 +4511,7 @@
(i32.const -1)
)
)
- (local.set $37
+ (local.set $35
(i32.shr_u
(i32.const 1000000000)
(local.get $12)
@@ -4636,7 +4544,7 @@
(local.get $8)
(local.get $11)
)
- (local.get $37)
+ (local.get $35)
)
)
(br_if $while-in74
@@ -4720,11 +4628,11 @@
)
)
)
- (i32.store
+ (i32.store offset=16
(local.get $20)
(local.tee $8
(i32.add
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
(local.get $12)
@@ -4842,7 +4750,7 @@
(i32.const 103)
)
)
- (local.tee $37
+ (local.tee $35
(i32.ne
(local.get $17)
(i32.const 0)
@@ -4946,7 +4854,7 @@
(if
(i32.eqz
(i32.and
- (local.tee $49
+ (local.tee $48
(i32.eq
(i32.add
(local.get $5)
@@ -4961,7 +4869,7 @@
)
)
(block $do-once81
- (local.set $50
+ (local.set $49
(call $i32u-div
(local.get $24)
(local.get $11)
@@ -4971,7 +4879,7 @@
(if (result f64)
(i32.lt_u
(local.get $12)
- (local.tee $51
+ (local.tee $50
(call $i32s-div
(local.get $11)
(i32.const 2)
@@ -4983,10 +4891,10 @@
(f64.const 1)
(f64.const 1.5)
(i32.and
- (local.get $49)
+ (local.get $48)
(i32.eq
(local.get $12)
- (local.get $51)
+ (local.get $50)
)
)
)
@@ -4997,7 +4905,7 @@
(f64.const 9007199254740994)
(f64.const 9007199254740992)
(i32.and
- (local.get $50)
+ (local.get $49)
(i32.const 1)
)
)
@@ -5232,7 +5140,7 @@
(i32.add
(local.get $17)
(i32.xor
- (local.get $37)
+ (local.get $35)
(i32.const 1)
)
)
@@ -5657,12 +5565,12 @@
(local.get $29)
)
)
- (i32.store8
- (local.get $33)
+ (i32.store8 offset=596
+ (local.get $13)
(i32.const 48)
)
(local.set $6
- (local.get $33)
+ (local.get $38)
)
)
(block
@@ -5704,7 +5612,7 @@
(call $___fwritex
(local.get $6)
(i32.sub
- (local.get $42)
+ (local.get $37)
(local.get $6)
)
(local.get $0)
@@ -5901,12 +5809,12 @@
(local.get $29)
)
(block
- (i32.store8
- (local.get $33)
+ (i32.store8 offset=596
+ (local.get $13)
(i32.const 48)
)
(local.set $4
- (local.get $33)
+ (local.get $38)
)
)
)
@@ -5990,7 +5898,7 @@
)
(local.set $7
(i32.sub
- (local.get $42)
+ (local.get $37)
(local.get $4)
)
)
@@ -6403,7 +6311,7 @@
(i32.lt_s
(local.tee $6
(call $_wctomb
- (local.get $35)
+ (local.get $33)
(local.get $8)
)
)
@@ -6488,7 +6396,7 @@
(i32.add
(local.tee $7
(call $_wctomb
- (local.get $35)
+ (local.get $33)
(local.get $7)
)
)
@@ -6509,7 +6417,7 @@
)
)
(call $___fwritex
- (local.get $35)
+ (local.get $33)
(local.get $7)
(local.get $0)
)
@@ -6600,7 +6508,7 @@
(i32.const 1)
)
(i32.sub
- (local.get $38)
+ (local.get $36)
(local.tee $4
(local.get $6)
)
@@ -6815,7 +6723,7 @@
)
)
(global.set $STACKTOP
- (local.get $34)
+ (local.get $20)
)
(local.get $16)
)
@@ -6900,8 +6808,11 @@
(local.get $0)
(local.get $1)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.shr_s
(i32.shl
(i32.lt_s
@@ -6941,8 +6852,11 @@
(local.get $0)
(local.get $3)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.const 0)
)
(br $label$break$L1)
@@ -6965,8 +6879,11 @@
)
)
(local.set $3
- (i32.load offset=4
- (local.get $3)
+ (i32.load
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
)
)
(i32.store
@@ -6980,8 +6897,11 @@
(local.get $0)
(local.get $5)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(local.get $3)
)
(br $label$break$L1)
@@ -7023,8 +6943,11 @@
)
)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.shr_s
(i32.shl
(i32.lt_s
@@ -7067,8 +6990,11 @@
(i32.const 65535)
)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.const 0)
)
(br $label$break$L1)
@@ -7110,8 +7036,11 @@
)
)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.shr_s
(i32.shl
(i32.lt_s
@@ -7154,8 +7083,11 @@
(i32.const 255)
)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.const 0)
)
(br $label$break$L1)
@@ -7496,569 +7428,575 @@
(local $16 i32)
(local $17 i32)
(local $18 i32)
- (local.set $0
- (if (result i32)
- (i32.lt_u
- (local.get $0)
- (i32.const 245)
- )
- (block (result i32)
- (if
- (i32.and
- (local.tee $10
- (i32.shr_u
- (local.tee $6
- (i32.load
- (i32.const 176)
+ (block $folding-inner1
+ (local.set $0
+ (if (result i32)
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 245)
+ )
+ (block (result i32)
+ (if
+ (i32.and
+ (local.tee $12
+ (i32.shr_u
+ (local.tee $6
+ (i32.load
+ (i32.const 176)
+ )
)
- )
- (local.tee $13
- (i32.shr_u
- (local.tee $2
- (select
- (i32.const 16)
- (i32.and
- (i32.add
+ (local.tee $13
+ (i32.shr_u
+ (local.tee $4
+ (select
+ (i32.const 16)
+ (i32.and
+ (i32.add
+ (local.get $0)
+ (i32.const 11)
+ )
+ (i32.const -8)
+ )
+ (i32.lt_u
(local.get $0)
(i32.const 11)
)
- (i32.const -8)
- )
- (i32.lt_u
- (local.get $0)
- (i32.const 11)
)
)
+ (i32.const 3)
)
- (i32.const 3)
)
)
)
+ (i32.const 3)
)
- (i32.const 3)
- )
- (block
- (if
- (i32.eq
- (local.tee $7
- (i32.load
- (local.tee $1
- (i32.add
- (local.tee $11
- (i32.load
- (local.tee $3
- (i32.add
- (local.tee $2
+ (block
+ (if
+ (i32.eq
+ (local.tee $2
+ (i32.load offset=8
+ (local.tee $3
+ (i32.load offset=8
+ (local.tee $1
+ (i32.add
+ (i32.shl
+ (local.tee $0
(i32.add
- (i32.shl
- (local.tee $4
- (i32.add
- (i32.xor
- (i32.and
- (local.get $10)
- (i32.const 1)
- )
- (i32.const 1)
- )
- (local.get $13)
- )
+ (i32.xor
+ (i32.and
+ (local.get $12)
+ (i32.const 1)
)
- (i32.const 3)
+ (i32.const 1)
)
- (i32.const 216)
+ (local.get $13)
)
)
- (i32.const 8)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
)
- (i32.const 8)
)
)
)
+ (local.get $1)
)
- (local.get $2)
- )
- (i32.store
- (i32.const 176)
- (i32.and
- (local.get $6)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $4)
- )
- (i32.const -1)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.get $7)
- (i32.load
- (i32.const 192)
+ (i32.store
+ (i32.const 176)
+ (i32.and
+ (local.get $6)
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ (i32.const -1)
)
)
- (call $_abort)
)
- (if
- (i32.eq
- (local.get $11)
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $7)
- (i32.const 12)
- )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $2)
+ (i32.load
+ (i32.const 192)
)
)
+ (call $_abort)
)
- (block
- (i32.store
- (local.get $0)
- (local.get $2)
- )
- (i32.store
+ (if
+ (i32.eq
(local.get $3)
- (local.get $7)
+ (i32.load offset=12
+ (local.get $2)
+ )
)
+ (block
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store offset=8
+ (local.get $1)
+ (local.get $2)
+ )
+ )
+ (call $_abort)
)
- (call $_abort)
)
)
- )
- (i32.store offset=4
- (local.get $11)
- (i32.or
- (local.tee $0
- (i32.shl
- (local.get $4)
- (i32.const 3)
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (i32.const 3)
+ )
)
+ (i32.const 3)
)
- (i32.const 3)
)
- )
- (i32.store
- (local.tee $0
- (i32.add
+ (i32.store offset=4
+ (local.tee $0
(i32.add
(local.get $0)
- (local.get $11)
+ (local.get $3)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.load
- (local.get $0)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const 1)
)
- (i32.const 1)
)
- )
- (return
- (local.get $1)
+ (br $folding-inner1)
)
)
- )
- (if (result i32)
- (i32.gt_u
- (local.get $2)
- (local.tee $0
- (i32.load
- (i32.const 184)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $4)
+ (local.tee $0
+ (i32.load
+ (i32.const 184)
+ )
)
)
- )
- (block (result i32)
- (if
- (local.get $10)
- (block
- (if
- (i32.eq
- (local.tee $8
- (i32.load
- (local.tee $4
- (i32.add
- (local.tee $10
- (i32.load
- (local.tee $3
- (i32.add
- (local.tee $7
+ (block (result i32)
+ (if
+ (local.get $12)
+ (block
+ (if
+ (i32.eq
+ (local.tee $9
+ (i32.load offset=8
+ (local.tee $11
+ (i32.load offset=8
+ (local.tee $7
+ (i32.add
+ (i32.shl
+ (local.tee $2
(i32.add
- (i32.shl
- (local.tee $11
- (i32.add
+ (i32.or
+ (i32.or
+ (i32.or
(i32.or
- (i32.or
- (i32.or
- (i32.or
- (local.tee $3
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.add
- (i32.and
- (local.tee $3
- (i32.and
- (i32.or
- (local.tee $3
- (i32.shl
- (i32.const 2)
- (local.get $13)
- )
- )
- (i32.sub
- (i32.const 0)
- (local.get $3)
- )
- )
- (i32.shl
- (local.get $10)
- (local.get $13)
- )
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
+ (i32.add
+ (i32.and
+ (local.tee $2
+ (i32.and
+ (i32.or
+ (local.tee $2
+ (i32.shl
+ (i32.const 2)
+ (local.get $13)
)
)
(i32.sub
(i32.const 0)
- (local.get $3)
+ (local.get $2)
)
)
- (i32.const -1)
+ (i32.shl
+ (local.get $12)
+ (local.get $13)
+ )
)
)
- (i32.const 12)
- )
- (i32.const 16)
- )
- )
- (local.tee $3
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $3)
- )
+ (i32.sub
+ (i32.const 0)
+ (local.get $2)
)
- (i32.const 5)
)
- (i32.const 8)
+ (i32.const -1)
)
)
+ (i32.const 12)
)
- (local.tee $3
- (i32.and
+ (i32.const 16)
+ )
+ )
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
(i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $3)
- )
- )
- (i32.const 2)
+ (local.get $7)
+ (local.get $2)
)
- (i32.const 4)
)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (local.tee $3
- (i32.and
+ )
+ )
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
(i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $3)
- )
- )
- (i32.const 1)
+ (local.get $7)
+ (local.get $2)
)
- (i32.const 2)
)
+ (i32.const 2)
)
+ (i32.const 4)
)
- (local.tee $3
- (i32.and
+ )
+ )
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
(i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $3)
- )
- )
- (i32.const 1)
+ (local.get $7)
+ (local.get $2)
)
- (i32.const 1)
)
+ (i32.const 1)
)
+ (i32.const 2)
)
+ )
+ )
+ (local.tee $2
+ (i32.and
(i32.shr_u
- (local.get $4)
- (local.get $3)
+ (local.tee $7
+ (i32.shr_u
+ (local.get $7)
+ (local.get $2)
+ )
+ )
+ (i32.const 1)
)
+ (i32.const 1)
)
)
- (i32.const 3)
)
- (i32.const 216)
+ (i32.shr_u
+ (local.get $7)
+ (local.get $2)
+ )
)
)
- (i32.const 8)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
)
- (i32.const 8)
)
)
)
+ (local.get $7)
)
- (local.get $7)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.and
- (local.get $6)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $11)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.and
+ (local.get $6)
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $2)
+ )
+ (i32.const -1)
)
- (i32.const -1)
)
)
- )
- (local.set $9
- (local.get $0)
- )
- )
- (block
- (if
- (i32.lt_u
- (local.get $8)
- (i32.load
- (i32.const 192)
- )
+ (local.set $8
+ (local.get $0)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $8)
- (i32.const 12)
- )
- )
- )
- (local.get $10)
- )
- (block
- (i32.store
- (local.get $0)
- (local.get $7)
- )
- (i32.store
- (local.get $3)
- (local.get $8)
- )
- (local.set $9
+ (block
+ (if
+ (i32.lt_u
+ (local.get $9)
(i32.load
- (i32.const 184)
+ (i32.const 192)
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- )
- )
- (i32.store offset=4
- (local.get $10)
- (i32.or
- (local.get $2)
- (i32.const 3)
- )
- )
- (i32.store offset=4
- (local.tee $7
- (i32.add
- (local.get $2)
- (local.get $10)
- )
- )
- (i32.or
- (local.tee $11
- (i32.sub
- (i32.shl
+ (if
+ (i32.eq
+ (i32.load offset=12
+ (local.get $9)
+ )
(local.get $11)
- (i32.const 3)
)
- (local.get $2)
+ (block
+ (i32.store offset=12
+ (local.get $9)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $9)
+ )
+ (local.set $8
+ (i32.load
+ (i32.const 184)
+ )
+ )
+ )
+ (call $_abort)
)
)
- (i32.const 1)
)
- )
- (i32.store
- (i32.add
- (local.get $7)
+ (i32.store offset=4
(local.get $11)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
+ )
)
- (local.get $11)
- )
- (if
- (local.get $9)
- (block
- (local.set $6
- (i32.load
- (i32.const 196)
+ (i32.store offset=4
+ (local.tee $7
+ (i32.add
+ (local.get $4)
+ (local.get $11)
)
)
- (local.set $2
- (i32.add
- (i32.shl
- (local.tee $0
- (i32.shr_u
- (local.get $9)
- (i32.const 3)
- )
+ (i32.or
+ (local.tee $9
+ (i32.sub
+ (i32.shl
+ (local.get $2)
+ (i32.const 3)
)
- (i32.const 3)
+ (local.get $4)
)
- (i32.const 216)
)
+ (i32.const 1)
)
- (if
- (i32.and
- (local.tee $3
- (i32.load
- (i32.const 176)
- )
+ )
+ (i32.store
+ (i32.add
+ (local.get $7)
+ (local.get $9)
+ )
+ (local.get $9)
+ )
+ (if
+ (local.get $8)
+ (block
+ (local.set $6
+ (i32.load
+ (i32.const 196)
)
- (local.tee $0
+ )
+ (local.set $4
+ (i32.add
(i32.shl
- (i32.const 1)
- (local.get $0)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $8)
+ (i32.const 3)
+ )
+ )
+ (i32.const 3)
)
+ (i32.const 216)
)
)
(if
- (i32.lt_u
- (local.tee $0
+ (i32.and
+ (local.tee $2
(i32.load
- (local.tee $3
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
+ (i32.const 176)
)
)
- (i32.load
- (i32.const 192)
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
- (call $_abort)
(block
- (local.set $5
- (local.get $3)
+ (local.set $2
+ (i32.add
+ (local.get $4)
+ (i32.const 8)
+ )
)
- (local.set $1
- (local.get $0)
+ (if
+ (i32.lt_u
+ (local.tee $0
+ (i32.load offset=8
+ (local.get $4)
+ )
+ )
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ (block
+ (local.set $3
+ (local.get $2)
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ )
)
)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $0)
- (local.get $3)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $0)
+ (local.get $2)
+ )
)
- )
- (local.set $5
- (i32.add
- (local.get $2)
- (i32.const 8)
+ (local.set $3
+ (i32.add
+ (local.get $4)
+ (i32.const 8)
+ )
+ )
+ (local.set $1
+ (local.get $4)
)
)
- (local.set $1
- (local.get $2)
+ )
+ (i32.store
+ (local.get $3)
+ (local.get $6)
+ )
+ (i32.store
+ (i32.add
+ (local.get $1)
+ (i32.const 12)
)
+ (local.get $6)
+ )
+ (i32.store offset=8
+ (local.get $6)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $6)
+ (local.get $4)
)
)
- (i32.store
- (local.get $5)
- (local.get $6)
- )
- (i32.store offset=12
- (local.get $1)
- (local.get $6)
- )
- (i32.store offset=8
- (local.get $6)
- (local.get $1)
- )
- (i32.store offset=12
- (local.get $6)
- (local.get $2)
+ )
+ (i32.store
+ (i32.const 184)
+ (local.get $9)
+ )
+ (i32.store
+ (i32.const 196)
+ (local.get $7)
+ )
+ (return
+ (i32.add
+ (local.get $11)
+ (i32.const 8)
)
)
)
- (i32.store
- (i32.const 184)
- (local.get $11)
- )
- (i32.store
- (i32.const 196)
- (local.get $7)
- )
- (return
- (local.get $4)
- )
)
- )
- (if (result i32)
- (local.tee $0
- (i32.load
- (i32.const 180)
+ (if (result i32)
+ (local.tee $0
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (block
- (local.set $11
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.tee $0
- (i32.load offset=480
- (i32.shl
+ (block
+ (local.set $7
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (local.tee $0
+ (i32.load
(i32.add
- (i32.or
- (i32.or
+ (i32.shl
+ (i32.add
(i32.or
(i32.or
- (local.tee $0
- (i32.and
- (i32.shr_u
- (local.tee $1
- (i32.add
- (i32.and
- (local.get $0)
- (i32.sub
- (i32.const 0)
+ (i32.or
+ (i32.or
+ (local.tee $0
+ (i32.and
+ (i32.shr_u
+ (local.tee $1
+ (i32.add
+ (i32.and
+ (local.get $0)
+ (i32.sub
+ (i32.const 0)
+ (local.get $0)
+ )
+ )
+ (i32.const -1)
+ )
+ )
+ (i32.const 12)
+ )
+ (i32.const 16)
+ )
+ )
+ (local.tee $0
+ (i32.and
+ (i32.shr_u
+ (local.tee $1
+ (i32.shr_u
+ (local.get $1)
(local.get $0)
)
)
- (i32.const -1)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (i32.const 12)
)
- (i32.const 16)
+ )
+ (local.tee $0
+ (i32.and
+ (i32.shr_u
+ (local.tee $1
+ (i32.shr_u
+ (local.get $1)
+ (local.get $0)
+ )
+ )
+ (i32.const 2)
+ )
+ (i32.const 4)
+ )
)
)
(local.tee $0
@@ -8070,9 +8008,9 @@
(local.get $0)
)
)
- (i32.const 5)
+ (i32.const 1)
)
- (i32.const 8)
+ (i32.const 2)
)
)
)
@@ -8085,881 +8023,876 @@
(local.get $0)
)
)
- (i32.const 2)
- )
- (i32.const 4)
- )
- )
- )
- (local.tee $0
- (i32.and
- (i32.shr_u
- (local.tee $1
- (i32.shr_u
- (local.get $1)
- (local.get $0)
- )
+ (i32.const 1)
)
(i32.const 1)
)
- (i32.const 2)
)
)
- )
- (local.tee $0
- (i32.and
- (i32.shr_u
- (local.tee $1
- (i32.shr_u
- (local.get $1)
- (local.get $0)
- )
- )
- (i32.const 1)
- )
- (i32.const 1)
+ (i32.shr_u
+ (local.get $1)
+ (local.get $0)
)
)
+ (i32.const 2)
)
- (i32.shr_u
- (local.get $1)
- (local.get $0)
- )
+ (i32.const 480)
)
- (i32.const 2)
)
)
)
+ (i32.const -8)
)
- (i32.const -8)
+ (local.get $4)
)
- (local.get $2)
)
- )
- (local.set $7
- (local.get $0)
- )
- (loop $while-in
- (block $while-out
- (if
- (local.tee $1
- (i32.load offset=16
- (local.get $0)
- )
- )
- (local.set $0
- (local.get $1)
- )
+ (local.set $3
+ (local.tee $1
+ (local.get $0)
+ )
+ )
+ (loop $while-in
+ (block $while-out
(if
(i32.eqz
(local.tee $0
- (i32.load offset=20
- (local.get $0)
+ (i32.load
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
)
)
)
- (block
- (local.set $6
- (local.get $11)
+ (if
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (i32.add
+ (local.get $1)
+ (i32.const 20)
+ )
+ )
+ )
)
- (local.set $8
- (local.get $7)
+ (block
+ (local.set $9
+ (local.get $7)
+ )
+ (local.set $6
+ (local.get $3)
+ )
+ (br $while-out)
)
- (br $while-out)
)
)
- )
- (local.set $6
- (i32.lt_u
- (local.tee $1
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.get $0)
+ (local.set $9
+ (i32.lt_u
+ (local.tee $1
+ (i32.sub
+ (i32.and
+ (i32.load
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
+ )
+ (i32.const -8)
)
- (i32.const -8)
+ (local.get $4)
)
- (local.get $2)
)
+ (local.get $7)
)
- (local.get $11)
)
- )
- (local.set $11
- (select
- (local.get $1)
- (local.get $11)
- (local.get $6)
+ (local.set $7
+ (select
+ (local.get $1)
+ (local.get $7)
+ (local.get $9)
+ )
)
- )
- (local.set $7
- (select
- (local.get $0)
- (local.get $7)
- (local.get $6)
+ (local.set $3
+ (select
+ (local.tee $1
+ (local.get $0)
+ )
+ (local.get $3)
+ (local.get $9)
+ )
)
+ (br $while-in)
)
- (br $while-in)
)
- )
- (if
- (i32.lt_u
- (local.get $8)
- (local.tee $10
- (i32.load
- (i32.const 192)
+ (if
+ (i32.lt_u
+ (local.get $6)
+ (local.tee $11
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- (if
- (i32.ge_u
- (local.get $8)
- (local.tee $5
- (i32.add
- (local.get $2)
- (local.get $8)
+ (if
+ (i32.ge_u
+ (local.get $6)
+ (local.tee $12
+ (i32.add
+ (local.get $4)
+ (local.get $6)
+ )
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- (local.set $9
- (i32.load offset=24
- (local.get $8)
+ (local.set $8
+ (i32.load offset=24
+ (local.get $6)
+ )
)
- )
- (if
- (i32.eq
- (local.tee $0
- (i32.load offset=12
- (local.get $8)
+ (if
+ (i32.eq
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $6)
+ )
)
+ (local.get $6)
)
- (local.get $8)
- )
- (block $do-once4
- (if
- (i32.eqz
- (local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $8)
- (i32.const 20)
- )
- )
- )
+ (block $do-once4
+ (local.set $0
+ (i32.add
+ (local.get $6)
+ (i32.const 20)
)
)
- (br_if $do-once4
+ (if
(i32.eqz
(local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $8)
- (i32.const 16)
+ (i32.load offset=20
+ (local.get $6)
+ )
+ )
+ )
+ (block
+ (local.set $0
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
+ )
+ (br_if $do-once4
+ (i32.eqz
+ (local.tee $1
+ (i32.load offset=16
+ (local.get $6)
)
)
)
)
)
)
- )
- (loop $while-in7
- (if
- (local.tee $7
- (i32.load
- (local.tee $11
- (i32.add
- (local.get $1)
- (i32.const 20)
+ (loop $while-in7
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $7
+ (i32.add
+ (local.get $1)
+ (i32.const 20)
+ )
)
)
)
- )
- (block
- (local.set $1
- (local.get $7)
- )
- (local.set $0
- (local.get $11)
+ (block
+ (local.set $1
+ (local.get $3)
+ )
+ (local.set $0
+ (local.get $7)
+ )
+ (br $while-in7)
)
- (br $while-in7)
)
- )
- (if
- (local.tee $7
- (i32.load
- (local.tee $11
- (i32.add
- (local.get $1)
- (i32.const 16)
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $7
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
)
)
)
- )
- (block
- (local.set $1
- (local.get $7)
- )
- (local.set $0
- (local.get $11)
+ (block
+ (local.set $1
+ (local.get $3)
+ )
+ (local.set $0
+ (local.get $7)
+ )
+ (br $while-in7)
)
- (br $while-in7)
)
)
- )
- (if
- (i32.lt_u
- (local.get $0)
- (local.get $10)
- )
- (call $_abort)
- (block
- (i32.store
+ (if
+ (i32.lt_u
(local.get $0)
- (i32.const 0)
- )
- (local.set $4
- (local.get $1)
+ (local.get $11)
)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.tee $11
- (i32.load offset=8
- (local.get $8)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $0)
+ (i32.const 0)
)
- )
- (local.get $10)
- )
- (call $_abort)
- )
- (if
- (i32.ne
- (local.get $8)
- (i32.load
- (local.tee $7
- (i32.add
- (local.get $11)
- (i32.const 12)
- )
+ (local.set $10
+ (local.get $1)
)
)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
+ (block
+ (if
+ (i32.lt_u
(local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 8)
+ (i32.load offset=8
+ (local.get $6)
)
)
+ (local.get $11)
)
- (local.get $8)
+ (call $_abort)
)
- (block
- (i32.store
- (local.get $7)
- (local.get $0)
+ (if
+ (i32.ne
+ (local.get $6)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (i32.store
- (local.get $1)
- (local.get $11)
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load offset=8
+ (local.get $0)
+ )
+ (local.get $6)
)
- (local.set $4
- (local.get $0)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $10
+ (local.get $0)
+ )
)
+ (call $_abort)
)
- (call $_abort)
)
)
- )
- (if
- (local.get $9)
- (block $do-once8
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (i32.shl
- (local.tee $1
- (i32.load offset=28
- (local.get $8)
+ (if
+ (local.get $8)
+ (block $do-once8
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.tee $1
+ (i32.load offset=28
+ (local.get $6)
+ )
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
)
+ (local.get $6)
)
- (local.get $8)
- )
- (block
- (i32.store
- (local.get $0)
- (local.get $4)
- )
- (if
- (i32.eqz
- (local.get $4)
+ (block
+ (i32.store
+ (local.get $0)
+ (local.get $10)
)
- (block
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (if
+ (i32.eqz
+ (local.get $10)
+ )
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ (i32.const -1)
)
- (i32.const -1)
)
)
+ (br $do-once8)
)
- (br $do-once8)
)
)
- )
- (block
- (if
- (i32.lt_u
- (local.get $9)
- (i32.load
- (i32.const 192)
+ (block
+ (if
+ (i32.lt_u
+ (local.get $8)
+ (i32.load
+ (i32.const 192)
+ )
)
+ (call $_abort)
)
- (call $_abort)
- )
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $9)
- (i32.const 16)
- )
+ (if
+ (i32.eq
+ (i32.load offset=16
+ (local.get $8)
)
+ (local.get $6)
+ )
+ (i32.store offset=16
+ (local.get $8)
+ (local.get $10)
+ )
+ (i32.store offset=20
+ (local.get $8)
+ (local.get $10)
)
- (local.get $8)
- )
- (i32.store
- (local.get $0)
- (local.get $4)
- )
- (i32.store offset=20
- (local.get $9)
- (local.get $4)
)
- )
- (br_if $do-once8
- (i32.eqz
- (local.get $4)
+ (br_if $do-once8
+ (i32.eqz
+ (local.get $10)
+ )
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $4)
- (local.tee $0
- (i32.load
- (i32.const 192)
+ (if
+ (i32.lt_u
+ (local.get $10)
+ (local.tee $0
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- (i32.store offset=24
- (local.get $4)
- (local.get $9)
- )
- (if
- (local.tee $1
- (i32.load offset=16
- (local.get $8)
+ (i32.store
+ (i32.add
+ (local.get $10)
+ (i32.const 24)
)
+ (local.get $8)
)
(if
- (i32.lt_u
- (local.get $1)
- (local.get $0)
+ (local.tee $1
+ (i32.load offset=16
+ (local.get $6)
+ )
)
- (call $_abort)
- (block
- (i32.store offset=16
- (local.get $4)
+ (if
+ (i32.lt_u
(local.get $1)
+ (local.get $0)
)
- (i32.store offset=24
- (local.get $1)
- (local.get $4)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.add
+ (local.get $10)
+ (i32.const 16)
+ )
+ (local.get $1)
+ )
+ (i32.store offset=24
+ (local.get $1)
+ (local.get $10)
+ )
)
)
)
- )
- (if
- (local.tee $0
- (i32.load offset=20
- (local.get $8)
- )
- )
(if
- (i32.lt_u
- (local.get $0)
- (i32.load
- (i32.const 192)
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $6)
)
)
- (call $_abort)
- (block
- (i32.store offset=20
- (local.get $4)
+ (if
+ (i32.lt_u
(local.get $0)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.store offset=24
- (local.get $0)
- (local.get $4)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.add
+ (local.get $10)
+ (i32.const 20)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $10)
+ )
)
)
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $6)
- (i32.const 16)
- )
- (block
- (i32.store offset=4
- (local.get $8)
- (i32.or
- (local.tee $0
- (i32.add
- (local.get $2)
- (local.get $6)
+ (if
+ (i32.lt_u
+ (local.get $9)
+ (i32.const 16)
+ )
+ (block
+ (i32.store offset=4
+ (local.get $6)
+ (i32.or
+ (local.tee $0
+ (i32.add
+ (local.get $4)
+ (local.get $9)
+ )
)
+ (i32.const 3)
)
- (i32.const 3)
)
- )
- (i32.store
- (local.tee $0
- (i32.add
+ (i32.store offset=4
+ (local.tee $0
(i32.add
(local.get $0)
- (local.get $8)
+ (local.get $6)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.load
- (local.get $0)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const 1)
)
- (i32.const 1)
)
)
- )
- (block
- (i32.store offset=4
- (local.get $8)
- (i32.or
- (local.get $2)
- (i32.const 3)
- )
- )
- (i32.store offset=4
- (local.get $5)
- (i32.or
+ (block
+ (i32.store offset=4
(local.get $6)
- (i32.const 1)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
+ )
)
- )
- (i32.store
- (i32.add
- (local.get $5)
- (local.get $6)
+ (i32.store offset=4
+ (local.get $12)
+ (i32.or
+ (local.get $9)
+ (i32.const 1)
+ )
)
- (local.get $6)
- )
- (if
- (local.tee $0
- (i32.load
- (i32.const 184)
+ (i32.store
+ (i32.add
+ (local.get $9)
+ (local.get $12)
)
+ (local.get $9)
)
- (block
- (local.set $4
+ (if
+ (local.tee $0
(i32.load
- (i32.const 196)
+ (i32.const 184)
)
)
- (local.set $2
- (i32.add
- (i32.shl
- (local.tee $0
- (i32.shr_u
- (local.get $0)
- (i32.const 3)
- )
- )
- (i32.const 3)
+ (block
+ (local.set $4
+ (i32.load
+ (i32.const 196)
)
- (i32.const 216)
)
- )
- (if
- (i32.and
- (local.tee $1
- (i32.load
- (i32.const 176)
- )
- )
- (local.tee $0
+ (local.set $3
+ (i32.add
(i32.shl
- (i32.const 1)
- (local.get $0)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
+ )
+ )
+ (i32.const 3)
)
+ (i32.const 216)
)
)
(if
- (i32.lt_u
- (local.tee $0
+ (i32.and
+ (local.tee $1
(i32.load
- (local.tee $1
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
+ (i32.const 176)
)
)
- (i32.load
- (i32.const 192)
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
- (call $_abort)
(block
- (local.set $12
- (local.get $1)
+ (local.set $1
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
)
- (local.set $3
- (local.get $0)
+ (if
+ (i32.lt_u
+ (local.tee $0
+ (i32.load offset=8
+ (local.get $3)
+ )
+ )
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ (block
+ (local.set $5
+ (local.get $1)
+ )
+ (local.set $2
+ (local.get $0)
+ )
+ )
)
)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $0)
- (local.get $1)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
)
- )
- (local.set $12
- (i32.add
- (local.get $2)
- (i32.const 8)
+ (local.set $5
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
+ (local.set $2
+ (local.get $3)
)
)
- (local.set $3
+ )
+ (i32.store
+ (local.get $5)
+ (local.get $4)
+ )
+ (i32.store
+ (i32.add
(local.get $2)
+ (i32.const 12)
)
+ (local.get $4)
+ )
+ (i32.store offset=8
+ (local.get $4)
+ (local.get $2)
+ )
+ (i32.store offset=12
+ (local.get $4)
+ (local.get $3)
)
)
- (i32.store
- (local.get $12)
- (local.get $4)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $4)
- )
- (i32.store offset=8
- (local.get $4)
- (local.get $3)
- )
- (i32.store offset=12
- (local.get $4)
- (local.get $2)
- )
+ )
+ (i32.store
+ (i32.const 184)
+ (local.get $9)
+ )
+ (i32.store
+ (i32.const 196)
+ (local.get $12)
)
)
- (i32.store
- (i32.const 184)
+ )
+ (return
+ (i32.add
(local.get $6)
- )
- (i32.store
- (i32.const 196)
- (local.get $5)
+ (i32.const 8)
)
)
)
- (return
- (i32.add
- (local.get $8)
- (i32.const 8)
- )
- )
+ (local.get $4)
)
- (local.get $2)
)
+ (local.get $4)
)
- (local.get $2)
)
- )
- (if (result i32)
- (i32.gt_u
- (local.get $0)
- (i32.const -65)
- )
- (i32.const -1)
- (block $do-once (result i32)
- (local.set $2
- (i32.and
- (local.tee $0
- (i32.add
- (local.get $0)
- (i32.const 11)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $0)
+ (i32.const -65)
+ )
+ (i32.const -1)
+ (block $do-once (result i32)
+ (local.set $3
+ (i32.and
+ (local.tee $0
+ (i32.add
+ (local.get $0)
+ (i32.const 11)
+ )
)
+ (i32.const -8)
)
- (i32.const -8)
)
- )
- (if (result i32)
- (local.tee $18
- (i32.load
- (i32.const 180)
+ (if (result i32)
+ (local.tee $18
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (block (result i32)
- (local.set $14
- (if (result i32)
- (local.tee $0
- (i32.shr_u
- (local.get $0)
- (i32.const 8)
- )
- )
+ (block (result i32)
+ (local.set $14
(if (result i32)
- (i32.gt_u
- (local.get $2)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $4
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $0)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $3)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $4
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $0)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (local.set $3
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.get $4)
+ (local.set $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.get $4)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $2)
- (i32.add
- (local.tee $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $3)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
- (local.get $1)
- (local.get $4)
+ (i32.or
+ (local.get $1)
+ (local.get $4)
+ )
+ (local.get $2)
)
- (local.get $3)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $0)
- (local.get $3)
+ (i32.shr_u
+ (i32.shl
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $0)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
- )
- (local.set $3
- (i32.sub
- (i32.const 0)
- (local.get $2)
+ (local.set $2
+ (i32.sub
+ (i32.const 0)
+ (local.get $3)
+ )
)
- )
- (block $__rjto$3
- (block $__rjti$3
- (local.set $0
- (if (result i32)
- (local.tee $0
- (i32.load offset=480
- (i32.shl
- (local.get $14)
- (i32.const 2)
+ (block $__rjto$3
+ (block $__rjti$3
+ (local.set $0
+ (if (result i32)
+ (local.tee $0
+ (i32.load
+ (i32.add
+ (i32.shl
+ (local.get $14)
+ (i32.const 2)
+ )
+ (i32.const 480)
+ )
)
)
- )
- (block (result i32)
- (local.set $9
- (i32.shl
- (local.get $2)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
+ (block (result i32)
+ (local.set $8
+ (i32.shl
+ (local.get $3)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $14)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
(local.get $14)
- (i32.const 1)
+ (i32.const 31)
)
)
- (i32.eq
- (local.get $14)
- (i32.const 31)
- )
)
)
- )
- (local.set $1
- (i32.const 0)
- )
- (loop $while-in14 (result i32)
- (if
- (i32.lt_u
- (local.tee $4
- (i32.sub
- (local.tee $12
- (i32.and
- (i32.load offset=4
- (local.get $0)
+ (local.set $1
+ (i32.const 0)
+ )
+ (loop $while-in14 (result i32)
+ (if
+ (i32.lt_u
+ (local.tee $4
+ (i32.sub
+ (local.tee $10
+ (i32.and
+ (i32.load
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
+ )
+ (i32.const -8)
)
- (i32.const -8)
)
+ (local.get $3)
)
- (local.get $2)
)
+ (local.get $2)
)
- (local.get $3)
- )
- (local.set $1
- (if (result i32)
- (i32.eq
- (local.get $2)
- (local.get $12)
- )
- (block
- (local.set $1
- (local.get $4)
+ (local.set $1
+ (if (result i32)
+ (i32.eq
+ (local.get $3)
+ (local.get $10)
)
- (local.set $3
- (local.get $0)
+ (block
+ (local.set $1
+ (local.get $4)
+ )
+ (local.set $2
+ (local.get $0)
+ )
+ (br $__rjti$3)
)
- (br $__rjti$3)
- )
- (block (result i32)
- (local.set $3
- (local.get $4)
+ (block (result i32)
+ (local.set $2
+ (local.get $4)
+ )
+ (local.get $0)
)
- (local.get $0)
)
)
)
- )
- (local.set $0
- (select
- (local.get $5)
- (local.tee $4
- (i32.load offset=20
- (local.get $0)
- )
- )
- (i32.or
- (i32.eqz
- (local.get $4)
+ (local.set $0
+ (select
+ (local.get $5)
+ (local.tee $4
+ (i32.load
+ (i32.add
+ (local.get $0)
+ (i32.const 20)
+ )
+ )
)
- (i32.eq
- (local.get $4)
- (local.tee $12
- (i32.load
- (i32.add
+ (i32.or
+ (i32.eqz
+ (local.get $4)
+ )
+ (i32.eq
+ (local.get $4)
+ (local.tee $10
+ (i32.load
(i32.add
- (local.get $0)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $9)
- (i32.const 31)
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $8)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
@@ -8967,109 +8900,139 @@
)
)
)
- )
- (local.set $4
- (i32.shl
- (local.get $9)
- (i32.xor
- (local.tee $5
- (i32.eqz
- (local.get $12)
+ (local.set $4
+ (i32.shl
+ (local.get $8)
+ (i32.xor
+ (local.tee $5
+ (i32.eqz
+ (local.get $10)
+ )
)
+ (i32.const 1)
)
- (i32.const 1)
- )
- )
- )
- (if (result i32)
- (local.get $5)
- (block (result i32)
- (local.set $4
- (local.get $0)
)
- (local.get $1)
)
- (block
- (local.set $5
- (local.get $0)
- )
- (local.set $9
- (local.get $4)
+ (if (result i32)
+ (local.get $5)
+ (block (result i32)
+ (local.set $4
+ (local.get $0)
+ )
+ (local.get $1)
)
- (local.set $0
- (local.get $12)
+ (block
+ (local.set $5
+ (local.get $0)
+ )
+ (local.set $8
+ (local.get $4)
+ )
+ (local.set $0
+ (local.get $10)
+ )
+ (br $while-in14)
)
- (br $while-in14)
)
)
)
- )
- (block (result i32)
- (local.set $4
+ (block (result i32)
+ (local.set $4
+ (i32.const 0)
+ )
(i32.const 0)
)
- (i32.const 0)
)
)
- )
- (if
- (i32.eqz
- (i32.or
- (local.get $0)
- (local.get $4)
+ (if
+ (i32.eqz
+ (i32.or
+ (local.get $0)
+ (local.get $4)
+ )
)
- )
- (block
- (drop
- (br_if $do-once
- (local.get $2)
- (i32.eqz
- (local.tee $1
- (i32.and
- (local.get $18)
- (i32.or
- (local.tee $1
- (i32.shl
- (i32.const 2)
- (local.get $14)
+ (block
+ (drop
+ (br_if $do-once
+ (local.get $3)
+ (i32.eqz
+ (local.tee $1
+ (i32.and
+ (local.get $18)
+ (i32.or
+ (local.tee $1
+ (i32.shl
+ (i32.const 2)
+ (local.get $14)
+ )
+ )
+ (i32.sub
+ (i32.const 0)
+ (local.get $1)
)
- )
- (i32.sub
- (i32.const 0)
- (local.get $1)
)
)
)
)
)
)
- )
- (local.set $4
- (i32.load offset=480
- (i32.shl
+ (local.set $4
+ (i32.load
(i32.add
- (i32.or
- (i32.or
+ (i32.shl
+ (i32.add
(i32.or
(i32.or
- (local.tee $1
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.add
- (i32.and
- (local.get $1)
- (i32.sub
- (i32.const 0)
+ (i32.or
+ (i32.or
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (local.tee $4
+ (i32.add
+ (i32.and
+ (local.get $1)
+ (i32.sub
+ (i32.const 0)
+ (local.get $1)
+ )
+ )
+ (i32.const -1)
+ )
+ )
+ (i32.const 12)
+ )
+ (i32.const 16)
+ )
+ )
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (local.tee $4
+ (i32.shr_u
+ (local.get $4)
(local.get $1)
)
)
- (i32.const -1)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (i32.const 12)
)
- (i32.const 16)
+ )
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (local.tee $4
+ (i32.shr_u
+ (local.get $4)
+ (local.get $1)
+ )
+ )
+ (i32.const 2)
+ )
+ (i32.const 4)
+ )
)
)
(local.tee $1
@@ -9081,9 +9044,9 @@
(local.get $1)
)
)
- (i32.const 5)
+ (i32.const 1)
)
- (i32.const 8)
+ (i32.const 2)
)
)
)
@@ -9096,1889 +9059,1852 @@
(local.get $1)
)
)
- (i32.const 2)
- )
- (i32.const 4)
- )
- )
- )
- (local.tee $1
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $1)
- )
+ (i32.const 1)
)
(i32.const 1)
)
- (i32.const 2)
)
)
- )
- (local.tee $1
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $1)
- )
- )
- (i32.const 1)
- )
- (i32.const 1)
+ (i32.shr_u
+ (local.get $4)
+ (local.get $1)
)
)
+ (i32.const 2)
)
- (i32.shr_u
- (local.get $4)
- (local.get $1)
- )
+ (i32.const 480)
)
- (i32.const 2)
)
)
)
)
- )
- (local.set $4
- (if (result i32)
- (local.get $4)
- (block
- (local.set $1
- (local.get $3)
- )
- (local.set $3
- (local.get $4)
+ (local.set $4
+ (if (result i32)
+ (local.get $4)
+ (block
+ (local.set $1
+ (local.get $2)
+ )
+ (local.set $2
+ (local.get $4)
+ )
+ (br $__rjti$3)
)
- (br $__rjti$3)
+ (local.get $0)
)
- (local.get $0)
)
+ (br $__rjto$3)
)
- (br $__rjto$3)
- )
- (local.set $3
- (loop $while-in16 (result i32)
- (local.set $12
- (i32.lt_u
- (local.tee $4
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.get $3)
+ (local.set $2
+ (loop $while-in16 (result i32)
+ (local.set $10
+ (i32.lt_u
+ (local.tee $4
+ (i32.sub
+ (i32.and
+ (i32.load
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ )
+ (i32.const -8)
)
- (i32.const -8)
+ (local.get $3)
)
- (local.get $2)
)
+ (local.get $1)
)
- (local.get $1)
- )
- )
- (local.set $1
- (select
- (local.get $4)
- (local.get $1)
- (local.get $12)
)
- )
- (local.set $0
- (select
- (local.get $3)
- (local.get $0)
- (local.get $12)
+ (local.set $1
+ (select
+ (local.get $4)
+ (local.get $1)
+ (local.get $10)
+ )
)
- )
- (if
- (local.tee $4
- (i32.load offset=16
- (local.get $3)
+ (local.set $0
+ (select
+ (local.get $2)
+ (local.get $0)
+ (local.get $10)
)
)
- (block
- (local.set $3
- (local.get $4)
+ (if
+ (local.tee $4
+ (i32.load
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ )
+ )
+ (block
+ (local.set $2
+ (local.get $4)
+ )
+ (br $while-in16)
)
- (br $while-in16)
)
- )
- (br_if $while-in16
- (local.tee $3
- (i32.load offset=20
- (local.get $3)
+ (br_if $while-in16
+ (local.tee $2
+ (i32.load
+ (i32.add
+ (local.get $2)
+ (i32.const 20)
+ )
+ )
)
)
+ (local.set $4
+ (local.get $0)
+ )
+ (local.get $1)
)
- (local.set $4
- (local.get $0)
- )
- (local.get $1)
)
)
- )
- (if (result i32)
- (local.get $4)
(if (result i32)
- (i32.lt_u
- (local.get $3)
- (i32.sub
- (i32.load
- (i32.const 184)
- )
+ (local.get $4)
+ (if (result i32)
+ (i32.lt_u
(local.get $2)
- )
- )
- (block
- (if
- (i32.lt_u
- (local.get $4)
- (local.tee $8
- (i32.load
- (i32.const 192)
- )
+ (i32.sub
+ (i32.load
+ (i32.const 184)
)
+ (local.get $3)
)
- (call $_abort)
)
- (if
- (i32.ge_u
- (local.get $4)
- (local.tee $5
- (i32.add
- (local.get $2)
- (local.get $4)
+ (block
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (local.tee $11
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- (local.set $12
- (i32.load offset=24
- (local.get $4)
+ (if
+ (i32.ge_u
+ (local.get $4)
+ (local.tee $5
+ (i32.add
+ (local.get $3)
+ (local.get $4)
+ )
+ )
+ )
+ (call $_abort)
)
- )
- (if
- (i32.eq
- (local.tee $0
- (i32.load offset=12
+ (local.set $10
+ (i32.load
+ (i32.add
(local.get $4)
+ (i32.const 24)
)
)
- (local.get $4)
)
- (block $do-once17
- (if
- (i32.eqz
- (local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $4)
- (i32.const 20)
- )
- )
+ (if
+ (i32.eq
+ (local.tee $0
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 12)
)
)
)
- (br_if $do-once17
+ (local.get $4)
+ )
+ (block $do-once17
+ (if
(i32.eqz
(local.tee $1
(i32.load
(local.tee $0
(i32.add
(local.get $4)
- (i32.const 16)
+ (i32.const 20)
)
)
)
)
)
- )
- )
- (loop $while-in20
- (if
- (local.tee $7
- (i32.load
- (local.tee $11
- (i32.add
- (local.get $1)
- (i32.const 20)
+ (br_if $do-once17
+ (i32.eqz
+ (local.tee $1
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $4)
+ (i32.const 16)
+ )
+ )
)
)
)
)
- (block
- (local.set $1
- (local.get $7)
- )
- (local.set $0
- (local.get $11)
- )
- (br $while-in20)
- )
)
- (if
- (local.tee $7
- (i32.load
- (local.tee $11
- (i32.add
- (local.get $1)
- (i32.const 16)
+ (loop $while-in20
+ (if
+ (local.tee $7
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $1)
+ (i32.const 20)
+ )
)
)
)
+ (block
+ (local.set $1
+ (local.get $7)
+ )
+ (local.set $0
+ (local.get $9)
+ )
+ (br $while-in20)
+ )
)
- (block
- (local.set $1
- (local.get $7)
+ (if
+ (local.tee $7
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
+ )
+ )
)
- (local.set $0
- (local.get $11)
+ (block
+ (local.set $1
+ (local.get $7)
+ )
+ (local.set $0
+ (local.get $9)
+ )
+ (br $while-in20)
)
- (br $while-in20)
)
)
- )
- (if
- (i32.lt_u
- (local.get $0)
- (local.get $8)
- )
- (call $_abort)
- (block
- (i32.store
+ (if
+ (i32.lt_u
(local.get $0)
- (i32.const 0)
- )
- (local.set $10
- (local.get $1)
+ (local.get $11)
)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.tee $11
- (i32.load offset=8
- (local.get $4)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $0)
+ (i32.const 0)
)
- )
- (local.get $8)
- )
- (call $_abort)
- )
- (if
- (i32.ne
- (local.get $4)
- (i32.load
- (local.tee $7
- (i32.add
- (local.get $11)
- (i32.const 12)
- )
+ (local.set $12
+ (local.get $1)
)
)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
+ (block
+ (if
+ (i32.lt_u
(local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 8)
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 8)
+ )
)
)
+ (local.get $11)
)
- (local.get $4)
+ (call $_abort)
)
- (block
- (i32.store
- (local.get $7)
- (local.get $0)
+ (if
+ (i32.ne
+ (local.get $4)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (i32.store
- (local.get $1)
- (local.get $11)
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load offset=8
+ (local.get $0)
+ )
+ (local.get $4)
)
- (local.set $10
- (local.get $0)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $12
+ (local.get $0)
+ )
)
+ (call $_abort)
)
- (call $_abort)
)
)
- )
- (if
- (local.get $12)
- (block $do-once21
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (i32.shl
- (local.tee $1
- (i32.load offset=28
- (local.get $4)
+ (if
+ (local.get $10)
+ (block $do-once21
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.tee $1
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 28)
+ )
+ )
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
)
+ (local.get $4)
)
- (local.get $4)
- )
- (block
- (i32.store
- (local.get $0)
- (local.get $10)
- )
- (if
- (i32.eqz
- (local.get $10)
+ (block
+ (i32.store
+ (local.get $0)
+ (local.get $12)
)
- (block
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (if
+ (i32.eqz
+ (local.get $12)
+ )
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ (i32.const -1)
)
- (i32.const -1)
)
)
+ (br $do-once21)
)
- (br $do-once21)
)
)
- )
- (block
- (if
- (i32.lt_u
- (local.get $12)
- (i32.load
- (i32.const 192)
+ (block
+ (if
+ (i32.lt_u
+ (local.get $10)
+ (i32.load
+ (i32.const 192)
+ )
)
+ (call $_abort)
)
- (call $_abort)
- )
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $12)
- (i32.const 16)
- )
+ (if
+ (i32.eq
+ (i32.load offset=16
+ (local.get $10)
)
+ (local.get $4)
+ )
+ (i32.store offset=16
+ (local.get $10)
+ (local.get $12)
+ )
+ (i32.store offset=20
+ (local.get $10)
+ (local.get $12)
)
- (local.get $4)
- )
- (i32.store
- (local.get $0)
- (local.get $10)
- )
- (i32.store offset=20
- (local.get $12)
- (local.get $10)
)
- )
- (br_if $do-once21
- (i32.eqz
- (local.get $10)
+ (br_if $do-once21
+ (i32.eqz
+ (local.get $12)
+ )
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $10)
- (local.tee $0
- (i32.load
- (i32.const 192)
+ (if
+ (i32.lt_u
+ (local.get $12)
+ (local.tee $0
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- (i32.store offset=24
- (local.get $10)
- (local.get $12)
- )
- (if
- (local.tee $1
- (i32.load offset=16
- (local.get $4)
+ (i32.store
+ (i32.add
+ (local.get $12)
+ (i32.const 24)
)
+ (local.get $10)
)
(if
- (i32.lt_u
- (local.get $1)
- (local.get $0)
+ (local.tee $1
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 16)
+ )
+ )
)
- (call $_abort)
- (block
- (i32.store offset=16
- (local.get $10)
+ (if
+ (i32.lt_u
(local.get $1)
+ (local.get $0)
)
- (i32.store offset=24
- (local.get $1)
- (local.get $10)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.add
+ (local.get $12)
+ (i32.const 16)
+ )
+ (local.get $1)
+ )
+ (i32.store offset=24
+ (local.get $1)
+ (local.get $12)
+ )
)
)
)
- )
- (if
- (local.tee $0
- (i32.load offset=20
- (local.get $4)
- )
- )
(if
- (i32.lt_u
- (local.get $0)
+ (local.tee $0
(i32.load
- (i32.const 192)
+ (i32.add
+ (local.get $4)
+ (i32.const 20)
+ )
)
)
- (call $_abort)
- (block
- (i32.store offset=20
- (local.get $10)
+ (if
+ (i32.lt_u
(local.get $0)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.store offset=24
- (local.get $0)
- (local.get $10)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.add
+ (local.get $12)
+ (i32.const 20)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $12)
+ )
)
)
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $3)
- (i32.const 16)
- )
- (block
- (i32.store offset=4
- (local.get $4)
- (i32.or
- (local.tee $0
- (i32.add
- (local.get $2)
- (local.get $3)
+ (if
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 16)
+ )
+ (block
+ (i32.store
+ (i32.add
+ (local.get $4)
+ (i32.const 4)
+ )
+ (i32.or
+ (local.tee $0
+ (i32.add
+ (local.get $2)
+ (local.get $3)
+ )
)
+ (i32.const 3)
)
- (i32.const 3)
)
- )
- (i32.store
- (local.tee $0
- (i32.add
+ (i32.store offset=4
+ (local.tee $0
(i32.add
(local.get $0)
(local.get $4)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.load
- (local.get $0)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const 1)
)
- (i32.const 1)
- )
- )
- )
- (block $do-once25
- (i32.store offset=4
- (local.get $4)
- (i32.or
- (local.get $2)
- (i32.const 3)
)
)
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.get $3)
- (i32.const 1)
+ (block $do-once25
+ (i32.store
+ (i32.add
+ (local.get $4)
+ (i32.const 4)
+ )
+ (i32.or
+ (local.get $3)
+ (i32.const 3)
+ )
)
- )
- (i32.store
- (i32.add
- (local.get $3)
+ (i32.store offset=4
(local.get $5)
+ (i32.or
+ (local.get $2)
+ (i32.const 1)
+ )
)
- (local.get $3)
- )
- (local.set $0
- (i32.shr_u
- (local.get $3)
- (i32.const 3)
+ (i32.store
+ (i32.add
+ (local.get $2)
+ (local.get $5)
+ )
+ (local.get $2)
)
- )
- (if
- (i32.lt_u
- (local.get $3)
- (i32.const 256)
+ (local.set $0
+ (i32.shr_u
+ (local.get $2)
+ (i32.const 3)
+ )
)
- (block
- (local.set $3
- (i32.add
- (i32.shl
- (local.get $0)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (if
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 256)
)
- (if
- (i32.and
- (local.tee $1
- (i32.load
- (i32.const 176)
- )
- )
- (local.tee $0
+ (block
+ (local.set $2
+ (i32.add
(i32.shl
- (i32.const 1)
(local.get $0)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
(if
- (i32.lt_u
- (local.tee $0
+ (i32.and
+ (local.tee $1
(i32.load
- (local.tee $1
- (i32.add
- (local.get $3)
- (i32.const 8)
+ (i32.const 176)
+ )
+ )
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ )
+ )
+ (block
+ (local.set $1
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $0
+ (i32.load offset=8
+ (local.get $2)
)
)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ (block
+ (local.set $13
+ (local.get $1)
+ )
+ (local.set $6
+ (local.get $0)
+ )
)
- )
- (i32.load
- (i32.const 192)
)
)
- (call $_abort)
(block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
+ )
(local.set $13
- (local.get $1)
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
)
(local.set $6
- (local.get $0)
+ (local.get $2)
)
)
)
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $0)
- (local.get $1)
- )
- )
- (local.set $13
- (i32.add
- (local.get $3)
- (i32.const 8)
- )
- )
- (local.set $6
- (local.get $3)
+ (i32.store
+ (local.get $13)
+ (local.get $5)
+ )
+ (i32.store
+ (i32.add
+ (local.get $6)
+ (i32.const 12)
)
+ (local.get $5)
)
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $6)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $2)
+ )
+ (br $do-once25)
)
- (i32.store
- (local.get $13)
- (local.get $5)
- )
- (i32.store offset=12
- (local.get $6)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $6)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $3)
- )
- (br $do-once25)
)
- )
- (local.set $2
- (i32.add
- (i32.shl
- (local.tee $7
- (if (result i32)
- (local.tee $0
- (i32.shr_u
- (local.get $3)
- (i32.const 8)
- )
- )
+ (local.set $3
+ (i32.add
+ (i32.shl
+ (local.tee $7
(if (result i32)
- (i32.gt_u
- (local.get $3)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $2)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $7
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $0)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $2)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $7
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $0)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (local.set $2
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.get $7)
+ (local.set $3
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.get $7)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $3)
- (i32.add
- (local.tee $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $2)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
- (local.get $1)
- (local.get $7)
+ (i32.or
+ (local.get $1)
+ (local.get $7)
+ )
+ (local.get $3)
)
- (local.get $2)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $0)
- (local.get $2)
+ (i32.shr_u
+ (i32.shl
+ (local.get $0)
+ (local.get $3)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $0)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
- )
- (i32.store offset=28
- (local.get $5)
- (local.get $7)
- )
- (i32.store offset=4
- (local.tee $0
+ (i32.store offset=28
+ (local.get $5)
+ (local.get $7)
+ )
+ (i32.store offset=4
(i32.add
(local.get $5)
(i32.const 16)
)
+ (i32.const 0)
)
- (i32.const 0)
- )
- (i32.store
- (local.get $0)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $1
- (i32.load
- (i32.const 180)
+ (i32.store offset=16
+ (local.get $5)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $1
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (local.tee $0
- (i32.shl
- (i32.const 1)
- (local.get $7)
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
+ (local.get $7)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (local.get $0)
- (local.get $1)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
)
+ (i32.store
+ (local.get $3)
+ (local.get $5)
+ )
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
+ )
+ (br $do-once25)
)
- (i32.store
- (local.get $2)
- (local.get $5)
- )
- (i32.store offset=24
- (local.get $5)
- (local.get $2)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $5)
- )
- (br $do-once25)
)
- )
- (local.set $7
- (i32.shl
- (local.get $3)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
+ (local.set $7
+ (i32.shl
+ (local.get $2)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $7)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
(local.get $7)
- (i32.const 1)
+ (i32.const 31)
)
)
- (i32.eq
- (local.get $7)
- (i32.const 31)
- )
)
)
- )
- (local.set $0
- (i32.load
- (local.get $2)
+ (local.set $0
+ (i32.load
+ (local.get $3)
+ )
)
- )
- (block $__rjto$1
- (block $__rjti$1
- (loop $while-in28
- (br_if $__rjti$1
- (i32.eq
- (i32.and
- (i32.load offset=4
- (local.get $0)
+ (block $__rjto$1
+ (block $__rjti$1
+ (loop $while-in28
+ (br_if $__rjti$1
+ (i32.eq
+ (i32.and
+ (i32.load
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
+ )
+ (i32.const -8)
)
- (i32.const -8)
+ (local.get $2)
)
- (local.get $3)
)
- )
- (local.set $2
- (i32.shl
- (local.get $7)
- (i32.const 1)
+ (local.set $3
+ (i32.shl
+ (local.get $7)
+ (i32.const 1)
+ )
)
- )
- (if
- (local.tee $1
- (i32.load
- (local.tee $7
- (i32.add
+ (if
+ (local.tee $1
+ (i32.load
+ (local.tee $7
(i32.add
- (local.get $0)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $7)
- (i32.const 31)
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $7)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
)
+ (block
+ (local.set $7
+ (local.get $3)
+ )
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in28)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $7)
+ (i32.load
+ (i32.const 192)
+ )
)
+ (call $_abort)
(block
- (local.set $7
- (local.get $2)
+ (i32.store
+ (local.get $7)
+ (local.get $5)
)
- (local.set $0
- (local.get $1)
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $0)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
)
- (br $while-in28)
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
+ )
+ (br $do-once25)
)
)
+ (br $__rjto$1)
)
(if
- (i32.lt_u
- (local.get $7)
- (i32.load
- (i32.const 192)
+ (i32.and
+ (i32.ge_u
+ (local.tee $2
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (local.tee $1
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $1)
)
)
- (call $_abort)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=12
+ (local.get $2)
(local.get $5)
)
- (i32.store offset=24
- (local.get $5)
+ (i32.store offset=8
(local.get $0)
- )
- (i32.store offset=12
- (local.get $5)
(local.get $5)
)
(i32.store offset=8
(local.get $5)
- (local.get $5)
+ (local.get $2)
)
- (br $do-once25)
- )
- )
- (br $__rjto$1)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $2
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
- )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $0)
)
- (local.tee $1
- (i32.load
- (i32.const 192)
- )
+ (i32.store offset=24
+ (local.get $5)
+ (i32.const 0)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $1)
- )
- )
- (block
- (i32.store offset=12
- (local.get $2)
- (local.get $5)
- )
- (i32.store
- (local.get $3)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $2)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $0)
- )
- (i32.store offset=24
- (local.get $5)
- (i32.const 0)
- )
+ (call $_abort)
)
- (call $_abort)
)
)
)
- )
- (return
- (i32.add
- (local.get $4)
- (i32.const 8)
+ (return
+ (i32.add
+ (local.get $4)
+ (i32.const 8)
+ )
)
)
+ (local.get $3)
)
- (local.get $2)
+ (local.get $3)
)
- (local.get $2)
)
+ (local.get $3)
)
- (local.get $2)
)
)
)
)
- )
- (if
- (i32.ge_u
- (local.tee $1
- (i32.load
- (i32.const 184)
- )
- )
- (local.get $0)
- )
- (block
- (local.set $2
- (i32.load
- (i32.const 196)
+ (if
+ (i32.ge_u
+ (local.tee $1
+ (i32.load
+ (i32.const 184)
+ )
)
+ (local.get $0)
)
- (if
- (i32.gt_u
- (local.tee $3
- (i32.sub
- (local.get $1)
- (local.get $0)
- )
+ (block
+ (local.set $3
+ (i32.load
+ (i32.const 196)
)
- (i32.const 15)
)
- (block
- (i32.store
- (i32.const 196)
- (local.tee $1
- (i32.add
+ (if
+ (i32.gt_u
+ (local.tee $2
+ (i32.sub
+ (local.get $1)
(local.get $0)
- (local.get $2)
)
)
+ (i32.const 15)
)
- (i32.store
- (i32.const 184)
- (local.get $3)
- )
- (i32.store offset=4
- (local.get $1)
- (i32.or
- (local.get $3)
- (i32.const 1)
+ (block
+ (i32.store
+ (i32.const 196)
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (local.get $3)
+ )
+ )
)
- )
- (i32.store
- (i32.add
+ (i32.store
+ (i32.const 184)
+ (local.get $2)
+ )
+ (i32.store offset=4
(local.get $1)
+ (i32.or
+ (local.get $2)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $1)
+ (local.get $2)
+ )
+ (local.get $2)
+ )
+ (i32.store offset=4
(local.get $3)
+ (i32.or
+ (local.get $0)
+ (i32.const 3)
+ )
)
- (local.get $3)
)
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $0)
- (i32.const 3)
+ (block
+ (i32.store
+ (i32.const 184)
+ (i32.const 0)
)
- )
- )
- (block
- (i32.store
- (i32.const 184)
- (i32.const 0)
- )
- (i32.store
- (i32.const 196)
- (i32.const 0)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $1)
- (i32.const 3)
+ (i32.store
+ (i32.const 196)
+ (i32.const 0)
)
- )
- (i32.store
- (local.tee $0
- (i32.add
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.get $1)
+ (i32.const 3)
+ )
+ )
+ (i32.store offset=4
+ (local.tee $0
(i32.add
(local.get $1)
- (local.get $2)
+ (local.get $3)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.load
- (local.get $0)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const 1)
)
- (i32.const 1)
)
)
)
- )
- (return
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
+ (br $folding-inner1)
)
)
- )
- (block $folding-inner0
- (br_if $folding-inner0
- (i32.gt_u
- (local.tee $1
- (i32.load
- (i32.const 188)
+ (block $folding-inner0
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $1
+ (i32.load
+ (i32.const 188)
+ )
)
- )
- (local.get $0)
- )
- )
- (if
- (i32.eqz
- (i32.load
- (i32.const 648)
+ (local.get $0)
)
)
(if
- (i32.and
- (local.tee $1
- (call $_sysconf
- (i32.const 30)
- )
- )
- (i32.add
- (local.get $1)
- (i32.const -1)
+ (i32.eqz
+ (i32.load
+ (i32.const 648)
)
)
- (call $_abort)
- (block
- (i32.store
- (i32.const 656)
- (local.get $1)
- )
- (i32.store
- (i32.const 652)
- (local.get $1)
- )
- (i32.store
- (i32.const 660)
- (i32.const -1)
- )
- (i32.store
- (i32.const 664)
- (i32.const -1)
- )
- (i32.store
- (i32.const 668)
- (i32.const 0)
- )
- (i32.store
- (i32.const 620)
- (i32.const 0)
+ (if
+ (i32.and
+ (local.tee $1
+ (call $_sysconf
+ (i32.const 30)
+ )
+ )
+ (i32.add
+ (local.get $1)
+ (i32.const -1)
+ )
)
- (i32.store
- (i32.const 648)
- (i32.xor
- (i32.and
- (call $_time
- (i32.const 0)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.const 656)
+ (local.get $1)
+ )
+ (i32.store
+ (i32.const 652)
+ (local.get $1)
+ )
+ (i32.store
+ (i32.const 660)
+ (i32.const -1)
+ )
+ (i32.store
+ (i32.const 664)
+ (i32.const -1)
+ )
+ (i32.store
+ (i32.const 668)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 620)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 648)
+ (i32.xor
+ (i32.and
+ (call $_time
+ (i32.const 0)
+ )
+ (i32.const -16)
)
- (i32.const -16)
+ (i32.const 1431655768)
)
- (i32.const 1431655768)
)
)
)
)
- )
- (if
- (i32.le_u
- (local.tee $6
- (i32.and
- (local.tee $5
- (i32.add
- (local.tee $1
- (i32.load
- (i32.const 656)
+ (if
+ (i32.le_u
+ (local.tee $6
+ (i32.and
+ (local.tee $5
+ (i32.add
+ (local.tee $1
+ (i32.load
+ (i32.const 656)
+ )
)
- )
- (local.tee $9
- (i32.add
- (local.get $0)
- (i32.const 47)
+ (local.tee $8
+ (i32.add
+ (local.get $0)
+ (i32.const 47)
+ )
)
)
)
- )
- (local.tee $12
- (i32.sub
- (i32.const 0)
- (local.get $1)
+ (local.tee $10
+ (i32.sub
+ (i32.const 0)
+ (local.get $1)
+ )
)
)
)
+ (local.get $0)
)
- (local.get $0)
- )
- (return
- (i32.const 0)
- )
- )
- (if
- (local.tee $2
- (i32.load
- (i32.const 616)
+ (return
+ (i32.const 0)
)
)
(if
- (i32.or
- (i32.le_u
- (local.tee $1
- (i32.add
- (local.tee $3
- (i32.load
- (i32.const 608)
+ (local.tee $3
+ (i32.load
+ (i32.const 616)
+ )
+ )
+ (if
+ (i32.or
+ (i32.le_u
+ (local.tee $1
+ (i32.add
+ (local.tee $2
+ (i32.load
+ (i32.const 608)
+ )
)
+ (local.get $6)
)
- (local.get $6)
)
+ (local.get $2)
+ )
+ (i32.gt_u
+ (local.get $1)
+ (local.get $3)
)
- (local.get $3)
)
- (i32.gt_u
- (local.get $1)
- (local.get $2)
+ (return
+ (i32.const 0)
)
)
- (return
- (i32.const 0)
- )
)
- )
- (local.set $10
- (i32.add
- (local.get $0)
- (i32.const 48)
+ (local.set $12
+ (i32.add
+ (local.get $0)
+ (i32.const 48)
+ )
)
- )
- (block $__rjto$13
- (block $__rjti$13
- (if
- (i32.eqz
- (i32.and
- (i32.load
- (i32.const 620)
+ (block $__rjto$13
+ (block $__rjti$13
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (i32.const 620)
+ )
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (block
- (block $label$break$L279
- (block $__rjti$5
- (block $__rjti$4
- (br_if $__rjti$4
- (i32.eqz
- (local.tee $4
- (i32.load
- (i32.const 200)
+ (block
+ (block $label$break$L279
+ (block $__rjti$5
+ (block $__rjti$4
+ (br_if $__rjti$4
+ (i32.eqz
+ (local.tee $4
+ (i32.load
+ (i32.const 200)
+ )
)
)
)
- )
- (local.set $1
- (i32.const 624)
- )
- (loop $while-in34
- (block $while-out33
- (if
- (i32.le_u
- (local.tee $3
- (i32.load
- (local.get $1)
- )
- )
- (local.get $4)
- )
+ (local.set $1
+ (i32.const 624)
+ )
+ (loop $while-in34
+ (block $while-out33
(if
- (i32.gt_u
- (i32.add
- (local.get $3)
+ (i32.le_u
+ (local.tee $2
(i32.load
- (local.tee $2
- (i32.add
- (local.get $1)
- (i32.const 4)
- )
- )
+ (local.get $1)
)
)
(local.get $4)
)
- (block
- (local.set $4
- (local.get $1)
+ (if
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
+ )
+ )
+ )
+ (local.get $4)
+ )
+ (block
+ (local.set $4
+ (local.get $1)
+ )
+ (br $while-out33)
)
- (br $while-out33)
- )
- )
- )
- (br_if $while-in34
- (local.tee $1
- (i32.load offset=8
- (local.get $1)
)
)
- )
- (br $__rjti$4)
- )
- )
- (if
- (i32.lt_u
- (local.tee $3
- (i32.and
- (i32.sub
- (local.get $5)
+ (br_if $while-in34
+ (local.tee $1
(i32.load
- (i32.const 188)
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
)
)
- (local.get $12)
)
+ (br $__rjti$4)
)
- (i32.const 2147483647)
)
- (block
- (local.set $1
- (call $_sbrk
- (local.get $3)
- )
- )
- (if
- (i32.eq
- (i32.add
- (i32.load
- (local.get $4)
- )
- (i32.load
- (local.get $2)
+ (if
+ (i32.lt_u
+ (local.tee $2
+ (i32.and
+ (i32.sub
+ (local.get $5)
+ (i32.load
+ (i32.const 188)
+ )
)
+ (local.get $10)
)
- (local.get $1)
)
- (br_if $__rjti$13
- (i32.ne
- (local.get $1)
- (i32.const -1)
+ (i32.const 2147483647)
+ )
+ (block
+ (local.set $1
+ (call $_sbrk
+ (local.get $2)
)
)
- (block
- (local.set $2
+ (if
+ (i32.eq
+ (i32.add
+ (i32.load
+ (local.get $4)
+ )
+ (i32.load
+ (local.get $3)
+ )
+ )
(local.get $1)
)
- (br $__rjti$5)
+ (br_if $__rjti$13
+ (i32.ne
+ (local.get $1)
+ (i32.const -1)
+ )
+ )
+ (block
+ (local.set $3
+ (local.get $1)
+ )
+ (br $__rjti$5)
+ )
)
)
)
+ (br $label$break$L279)
)
- (br $label$break$L279)
- )
- (if
- (i32.ne
- (local.tee $1
- (call $_sbrk
- (i32.const 0)
+ (if
+ (i32.ne
+ (local.tee $1
+ (call $_sbrk
+ (i32.const 0)
+ )
)
+ (i32.const -1)
)
- (i32.const -1)
- )
- (block
- (local.set $3
- (if (result i32)
- (i32.and
- (local.tee $3
- (local.get $1)
- )
- (local.tee $2
- (i32.add
- (local.tee $4
- (i32.load
- (i32.const 652)
+ (block
+ (local.set $2
+ (if (result i32)
+ (i32.and
+ (local.tee $2
+ (local.get $1)
+ )
+ (local.tee $3
+ (i32.add
+ (local.tee $4
+ (i32.load
+ (i32.const 652)
+ )
)
+ (i32.const -1)
)
- (i32.const -1)
)
)
- )
- (i32.add
- (i32.sub
- (local.get $6)
- (local.get $3)
- )
- (i32.and
- (i32.add
+ (i32.add
+ (i32.sub
+ (local.get $6)
(local.get $2)
- (local.get $3)
)
- (i32.sub
- (i32.const 0)
- (local.get $4)
+ (i32.and
+ (i32.add
+ (local.get $2)
+ (local.get $3)
+ )
+ (i32.sub
+ (i32.const 0)
+ (local.get $4)
+ )
)
)
+ (local.get $6)
)
- (local.get $6)
)
- )
- (local.set $12
- (i32.add
- (local.tee $4
- (i32.load
- (i32.const 608)
+ (local.set $10
+ (i32.add
+ (local.tee $4
+ (i32.load
+ (i32.const 608)
+ )
)
- )
- (local.get $3)
- )
- )
- (if
- (i32.and
- (i32.lt_u
- (local.get $3)
- (i32.const 2147483647)
- )
- (i32.gt_u
- (local.get $3)
- (local.get $0)
+ (local.get $2)
)
)
- (block
- (if
- (local.tee $2
- (i32.load
- (i32.const 616)
- )
+ (if
+ (i32.and
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 2147483647)
)
- (br_if $label$break$L279
- (i32.or
- (i32.le_u
- (local.get $12)
- (local.get $4)
+ (i32.gt_u
+ (local.get $2)
+ (local.get $0)
+ )
+ )
+ (block
+ (if
+ (local.tee $3
+ (i32.load
+ (i32.const 616)
)
- (i32.gt_u
- (local.get $12)
- (local.get $2)
+ )
+ (br_if $label$break$L279
+ (i32.or
+ (i32.le_u
+ (local.get $10)
+ (local.get $4)
+ )
+ (i32.gt_u
+ (local.get $10)
+ (local.get $3)
+ )
)
)
)
- )
- (br_if $__rjti$13
- (i32.eq
- (local.get $1)
- (local.tee $2
- (call $_sbrk
- (local.get $3)
+ (br_if $__rjti$13
+ (i32.eq
+ (local.get $1)
+ (local.tee $3
+ (call $_sbrk
+ (local.get $2)
+ )
)
)
)
+ (br $__rjti$5)
)
- (br $__rjti$5)
)
)
)
+ (br $label$break$L279)
)
- (br $label$break$L279)
- )
- (local.set $1
- (local.get $3)
- )
- (local.set $4
- (i32.sub
- (i32.const 0)
- (local.get $1)
+ (local.set $1
+ (local.get $2)
)
- )
- (local.set $3
- (if (result i32)
- (i32.and
+ (local.set $4
+ (i32.sub
+ (i32.const 0)
+ (local.get $1)
+ )
+ )
+ (local.set $2
+ (if (result i32)
(i32.and
- (i32.ne
- (local.get $2)
- (i32.const -1)
+ (i32.and
+ (i32.ne
+ (local.get $3)
+ (i32.const -1)
+ )
+ (i32.lt_u
+ (local.get $1)
+ (i32.const 2147483647)
+ )
)
- (i32.lt_u
+ (i32.gt_u
+ (local.get $12)
(local.get $1)
- (i32.const 2147483647)
)
)
- (i32.gt_u
- (local.get $10)
- (local.get $1)
- )
- )
- (if (result i32)
- (i32.lt_u
- (local.tee $3
- (i32.and
- (i32.add
- (local.tee $3
- (i32.load
- (i32.const 656)
+ (if (result i32)
+ (i32.lt_u
+ (local.tee $2
+ (i32.and
+ (i32.add
+ (local.tee $2
+ (i32.load
+ (i32.const 656)
+ )
+ )
+ (i32.sub
+ (local.get $8)
+ (local.get $1)
)
)
(i32.sub
- (local.get $9)
- (local.get $1)
+ (i32.const 0)
+ (local.get $2)
)
)
- (i32.sub
- (i32.const 0)
- (local.get $3)
- )
)
+ (i32.const 2147483647)
)
- (i32.const 2147483647)
- )
- (if (result i32)
- (i32.eq
- (call $_sbrk
- (local.get $3)
- )
- (i32.const -1)
- )
- (block
- (drop
+ (if (result i32)
+ (i32.eq
(call $_sbrk
- (local.get $4)
+ (local.get $2)
)
+ (i32.const -1)
+ )
+ (block
+ (drop
+ (call $_sbrk
+ (local.get $4)
+ )
+ )
+ (br $label$break$L279)
+ )
+ (i32.add
+ (local.get $1)
+ (local.get $2)
)
- (br $label$break$L279)
- )
- (i32.add
- (local.get $1)
- (local.get $3)
)
+ (local.get $1)
)
(local.get $1)
)
- (local.get $1)
)
- )
- (if
- (i32.ne
- (local.get $2)
- (i32.const -1)
- )
- (block
- (local.set $1
- (local.get $2)
+ (if
+ (i32.ne
+ (local.get $3)
+ (i32.const -1)
+ )
+ (block
+ (local.set $1
+ (local.get $3)
+ )
+ (br $__rjti$13)
)
- (br $__rjti$13)
)
)
- )
- (i32.store
- (i32.const 620)
- (i32.or
- (i32.load
- (i32.const 620)
+ (i32.store
+ (i32.const 620)
+ (i32.or
+ (i32.load
+ (i32.const 620)
+ )
+ (i32.const 4)
)
- (i32.const 4)
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $6)
- (i32.const 2147483647)
- )
(if
- (i32.and
- (i32.lt_u
- (local.tee $1
- (call $_sbrk
- (local.get $6)
+ (i32.lt_u
+ (local.get $6)
+ (i32.const 2147483647)
+ )
+ (if
+ (i32.and
+ (i32.lt_u
+ (local.tee $1
+ (call $_sbrk
+ (local.get $6)
+ )
+ )
+ (local.tee $2
+ (call $_sbrk
+ (i32.const 0)
+ )
)
)
- (local.tee $3
- (call $_sbrk
- (i32.const 0)
+ (i32.and
+ (i32.ne
+ (local.get $1)
+ (i32.const -1)
+ )
+ (i32.ne
+ (local.get $2)
+ (i32.const -1)
)
)
)
- (i32.and
- (i32.ne
- (local.get $1)
- (i32.const -1)
- )
- (i32.ne
- (local.get $3)
- (i32.const -1)
+ (br_if $__rjti$13
+ (i32.gt_u
+ (local.tee $2
+ (i32.sub
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (i32.add
+ (local.get $0)
+ (i32.const 40)
+ )
)
)
)
- (br_if $__rjti$13
- (i32.gt_u
- (local.tee $3
- (i32.sub
- (local.get $3)
- (local.get $1)
- )
- )
- (i32.add
- (local.get $0)
- (i32.const 40)
- )
+ )
+ (br $__rjto$13)
+ )
+ (i32.store
+ (i32.const 608)
+ (local.tee $3
+ (i32.add
+ (i32.load
+ (i32.const 608)
)
+ (local.get $2)
)
)
)
- (br $__rjto$13)
- )
- (i32.store
- (i32.const 608)
- (local.tee $2
- (i32.add
+ (if
+ (i32.gt_u
+ (local.get $3)
(i32.load
- (i32.const 608)
+ (i32.const 612)
)
- (local.get $3)
)
- )
- )
- (if
- (i32.gt_u
- (local.get $2)
- (i32.load
+ (i32.store
(i32.const 612)
+ (local.get $3)
)
)
- (i32.store
- (i32.const 612)
- (local.get $2)
- )
- )
- (if
- (local.tee $5
- (i32.load
- (i32.const 200)
- )
- )
- (block $do-once40
- (local.set $2
- (i32.const 624)
+ (if
+ (local.tee $5
+ (i32.load
+ (i32.const 200)
+ )
)
- (block $__rjto$10
- (block $__rjti$10
- (loop $while-in45
- (br_if $__rjti$10
- (i32.eq
- (i32.add
- (local.tee $10
- (i32.load
- (local.get $2)
+ (block $do-once40
+ (local.set $3
+ (i32.const 624)
+ )
+ (block $__rjto$10
+ (block $__rjti$10
+ (loop $while-in45
+ (br_if $__rjti$10
+ (i32.eq
+ (i32.add
+ (local.tee $12
+ (i32.load
+ (local.get $3)
+ )
)
- )
- (local.tee $6
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $2)
- (i32.const 4)
+ (local.tee $6
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
)
)
)
)
+ (local.get $1)
)
- (local.get $1)
)
- )
- (br_if $while-in45
- (local.tee $2
- (i32.load offset=8
- (local.get $2)
+ (br_if $while-in45
+ (local.tee $3
+ (i32.load
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
)
)
)
- )
- (br $__rjto$10)
- )
- (if
- (i32.eqz
- (i32.and
- (i32.load offset=12
- (local.get $2)
- )
- (i32.const 8)
- )
+ (br $__rjto$10)
)
(if
- (i32.and
- (i32.lt_u
- (local.get $5)
- (local.get $1)
- )
- (i32.ge_u
- (local.get $5)
- (local.get $10)
- )
- )
- (block
- (i32.store
- (local.get $4)
- (i32.add
+ (i32.eqz
+ (i32.and
+ (i32.load offset=12
(local.get $3)
- (local.get $6)
)
+ (i32.const 8)
)
- (local.set $2
- (i32.add
+ )
+ (if
+ (i32.and
+ (i32.lt_u
(local.get $5)
- (local.tee $1
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $1
- (i32.add
- (local.get $5)
- (i32.const 8)
+ (local.get $1)
+ )
+ (i32.ge_u
+ (local.get $5)
+ (local.get $12)
+ )
+ )
+ (block
+ (i32.store
+ (local.get $4)
+ (i32.add
+ (local.get $2)
+ (local.get $6)
+ )
+ )
+ (local.set $3
+ (i32.add
+ (local.get $5)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $5)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $1)
- (i32.const 7)
)
)
)
)
- )
- (local.set $1
- (i32.add
- (i32.load
- (i32.const 188)
- )
- (i32.sub
- (local.get $3)
- (local.get $1)
+ (local.set $1
+ (i32.add
+ (i32.load
+ (i32.const 188)
+ )
+ (i32.sub
+ (local.get $2)
+ (local.get $1)
+ )
)
)
- )
- (i32.store
- (i32.const 200)
- (local.get $2)
- )
- (i32.store
- (i32.const 188)
- (local.get $1)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $1)
- (i32.const 1)
+ (i32.store
+ (i32.const 200)
+ (local.get $3)
)
- )
- (i32.store offset=4
- (i32.add
+ (i32.store
+ (i32.const 188)
(local.get $1)
- (local.get $2)
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (i32.add
+ (local.get $1)
+ (local.get $3)
+ )
+ (i32.const 40)
)
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
+ )
+ (br $do-once40)
)
- (br $do-once40)
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $1)
- (local.tee $4
- (i32.load
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.tee $4
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (block
+ (i32.store
(i32.const 192)
+ (local.get $1)
+ )
+ (local.set $4
+ (local.get $1)
)
)
)
- (block
- (i32.store
- (i32.const 192)
- (local.get $1)
- )
- (local.set $4
+ (local.set $12
+ (i32.add
(local.get $1)
+ (local.get $2)
)
)
- )
- (local.set $10
- (i32.add
- (local.get $1)
- (local.get $3)
+ (local.set $3
+ (i32.const 624)
)
- )
- (local.set $2
- (i32.const 624)
- )
- (local.set $4
- (block $__rjto$11 (result i32)
- (block $__rjti$11
- (br $__rjto$11
- (loop $while-in47 (result i32)
- (if
- (i32.eq
- (i32.load
- (local.get $2)
+ (local.set $4
+ (block $__rjto$11 (result i32)
+ (block $__rjti$11
+ (br $__rjto$11
+ (loop $while-in47 (result i32)
+ (if
+ (i32.eq
+ (i32.load
+ (local.get $3)
+ )
+ (local.get $12)
)
- (local.get $10)
- )
- (block
- (local.set $6
- (local.get $2)
+ (block
+ (local.set $6
+ (local.get $3)
+ )
+ (br $__rjti$11)
)
- (br $__rjti$11)
)
- )
- (br_if $while-in47
- (local.tee $2
- (i32.load offset=8
- (local.get $2)
+ (br_if $while-in47
+ (local.tee $3
+ (i32.load
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
)
)
+ (i32.const 624)
)
- (i32.const 624)
- )
- )
- )
- (if (result i32)
- (i32.and
- (i32.load offset=12
- (local.get $2)
)
- (i32.const 8)
)
- (i32.const 624)
- (block
- (i32.store
- (local.get $6)
- (local.get $1)
- )
- (i32.store
- (local.tee $2
- (i32.add
- (local.get $2)
- (i32.const 4)
- )
- )
- (i32.add
- (i32.load
- (local.get $2)
- )
+ (if (result i32)
+ (i32.and
+ (i32.load offset=12
(local.get $3)
)
+ (i32.const 8)
)
- (local.set $9
- (i32.add
- (local.tee $12
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $3
- (i32.add
- (local.get $1)
- (i32.const 8)
- )
- )
- )
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $3)
- (i32.const 7)
- )
- )
- (local.get $1)
+ (i32.const 624)
+ (block
+ (i32.store
+ (local.get $6)
+ (local.get $1)
+ )
+ (i32.store offset=4
+ (local.get $3)
+ (i32.add
+ (i32.load offset=4
+ (local.get $3)
)
+ (local.get $2)
)
- (local.get $0)
)
- )
- (local.set $7
- (i32.sub
- (i32.sub
- (local.tee $6
+ (local.set $8
+ (i32.add
+ (local.tee $10
(i32.add
- (local.get $10)
(select
(i32.and
(i32.sub
(i32.const 0)
- (local.tee $1
+ (local.tee $2
(i32.add
- (local.get $10)
+ (local.get $1)
(i32.const 8)
)
)
@@ -10987,1116 +10913,1146 @@
)
(i32.const 0)
(i32.and
- (local.get $1)
+ (local.get $2)
(i32.const 7)
)
)
+ (local.get $1)
)
)
- (local.get $12)
+ (local.get $0)
)
- (local.get $0)
- )
- )
- (i32.store offset=4
- (local.get $12)
- (i32.or
- (local.get $0)
- (i32.const 3)
- )
- )
- (if
- (i32.eq
- (local.get $5)
- (local.get $6)
)
- (block
- (i32.store
- (i32.const 188)
- (local.tee $0
- (i32.add
- (i32.load
- (i32.const 188)
+ (local.set $7
+ (i32.sub
+ (i32.sub
+ (local.tee $6
+ (i32.add
+ (local.get $12)
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $12)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
+ )
+ )
)
- (local.get $7)
)
+ (local.get $10)
)
+ (local.get $0)
)
- (i32.store
- (i32.const 200)
- (local.get $9)
- )
- (i32.store offset=4
- (local.get $9)
- (i32.or
- (local.get $0)
- (i32.const 1)
- )
+ )
+ (i32.store offset=4
+ (local.get $10)
+ (i32.or
+ (local.get $0)
+ (i32.const 3)
)
)
- (block $do-once48
- (if
- (i32.eq
- (i32.load
- (i32.const 196)
- )
- (local.get $6)
- )
- (block
- (i32.store
- (i32.const 184)
- (local.tee $0
- (i32.add
- (i32.load
- (i32.const 184)
- )
- (local.get $7)
+ (if
+ (i32.eq
+ (local.get $5)
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 188)
+ (local.tee $0
+ (i32.add
+ (i32.load
+ (i32.const 188)
)
+ (local.get $7)
)
)
- (i32.store
- (i32.const 196)
- (local.get $9)
- )
- (i32.store offset=4
- (local.get $9)
- (i32.or
- (local.get $0)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
- (local.get $0)
- (local.get $9)
- )
+ )
+ (i32.store
+ (i32.const 200)
+ (local.get $8)
+ )
+ (i32.store offset=4
+ (local.get $8)
+ (i32.or
(local.get $0)
+ (i32.const 1)
)
- (br $do-once48)
)
)
- (i32.store
- (local.tee $0
- (i32.add
- (if (result i32)
- (i32.eq
- (i32.and
- (local.tee $0
- (i32.load offset=4
- (local.get $6)
- )
+ (block $do-once48
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 196)
+ )
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 184)
+ (local.tee $0
+ (i32.add
+ (i32.load
+ (i32.const 184)
)
- (i32.const 3)
+ (local.get $7)
)
+ )
+ )
+ (i32.store
+ (i32.const 196)
+ (local.get $8)
+ )
+ (i32.store offset=4
+ (local.get $8)
+ (i32.or
+ (local.get $0)
(i32.const 1)
)
- (block (result i32)
- (local.set $10
+ )
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (local.get $8)
+ )
+ (local.get $0)
+ )
+ (br $do-once48)
+ )
+ )
+ (i32.store
+ (local.tee $0
+ (i32.add
+ (if (result i32)
+ (i32.eq
(i32.and
- (local.get $0)
- (i32.const -8)
- )
- )
- (local.set $1
- (i32.shr_u
- (local.get $0)
+ (local.tee $0
+ (i32.load offset=4
+ (local.get $6)
+ )
+ )
(i32.const 3)
)
+ (i32.const 1)
)
- (block $label$break$L331
- (if
- (i32.lt_u
+ (block (result i32)
+ (local.set $12
+ (i32.and
(local.get $0)
- (i32.const 256)
+ (i32.const -8)
)
- (block
- (local.set $2
- (i32.load offset=12
- (local.get $6)
- )
+ )
+ (local.set $1
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
+ )
+ )
+ (block $label$break$L331
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 256)
)
- (if
- (i32.ne
- (local.tee $3
- (i32.load offset=8
- (local.get $6)
- )
- )
- (local.tee $0
- (i32.add
- (i32.shl
- (local.get $1)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (block
+ (local.set $3
+ (i32.load offset=12
+ (local.get $6)
)
)
- (block $do-once51
- (if
- (i32.lt_u
- (local.get $3)
- (local.get $4)
+ (if
+ (i32.ne
+ (local.tee $2
+ (i32.load offset=8
+ (local.get $6)
+ )
)
- (call $_abort)
- )
- (br_if $do-once51
- (i32.eq
- (i32.load offset=12
- (local.get $3)
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.get $1)
+ (i32.const 3)
+ )
+ (i32.const 216)
)
- (local.get $6)
)
)
- (call $_abort)
- )
- )
- (if
- (i32.eq
- (local.get $2)
- (local.get $3)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.and
- (i32.load
- (i32.const 176)
+ (block $do-once51
+ (if
+ (i32.lt_u
+ (local.get $2)
+ (local.get $4)
)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (call $_abort)
+ )
+ (br_if $do-once51
+ (i32.eq
+ (i32.load offset=12
+ (local.get $2)
)
- (i32.const -1)
+ (local.get $6)
)
)
+ (call $_abort)
)
- (br $label$break$L331)
)
- )
- (if
- (i32.eq
- (local.get $0)
- (local.get $2)
- )
- (local.set $15
- (i32.add
+ (if
+ (i32.eq
(local.get $2)
- (i32.const 8)
+ (local.get $3)
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.and
+ (i32.load
+ (i32.const 176)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$L331)
)
)
- (block $do-once53
- (if
- (i32.lt_u
- (local.get $2)
- (local.get $4)
+ (if
+ (i32.eq
+ (local.get $0)
+ (local.get $3)
+ )
+ (local.set $15
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
+ (block $do-once53
+ (if
+ (i32.lt_u
+ (local.get $3)
+ (local.get $4)
)
- (local.get $6)
+ (call $_abort)
)
- (block
- (local.set $15
- (local.get $0)
+ (local.set $0
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
)
- (br $do-once53)
)
+ (if
+ (i32.eq
+ (i32.load offset=8
+ (local.get $3)
+ )
+ (local.get $6)
+ )
+ (block
+ (local.set $15
+ (local.get $0)
+ )
+ (br $do-once53)
+ )
+ )
+ (call $_abort)
)
- (call $_abort)
)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $2)
- )
- (i32.store
- (local.get $15)
- (local.get $3)
- )
- )
- (block
- (local.set $5
- (i32.load offset=24
- (local.get $6)
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $3)
+ )
+ (i32.store
+ (local.get $15)
+ (local.get $2)
)
)
- (if
- (i32.eq
- (local.tee $0
- (i32.load offset=12
- (local.get $6)
- )
+ (block
+ (local.set $5
+ (i32.load offset=24
+ (local.get $6)
)
- (local.get $6)
)
- (block $do-once55
- (if
- (i32.eqz
- (local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.tee $3
- (i32.add
- (local.get $6)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
- )
+ (if
+ (i32.eq
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $6)
)
)
- (block
- (br_if $do-once55
- (i32.eqz
- (local.tee $1
- (i32.load
- (local.get $3)
- )
+ (local.get $6)
+ )
+ (block $do-once55
+ (local.set $0
+ (i32.add
+ (local.tee $2
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
)
)
- )
- (local.set $0
- (local.get $3)
+ (i32.const 4)
)
)
- )
- (loop $while-in58
(if
- (local.tee $3
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $1)
- (i32.const 20)
- )
+ (i32.eqz
+ (local.tee $1
+ (i32.load offset=4
+ (local.get $2)
)
)
)
(block
- (local.set $1
- (local.get $3)
+ (br_if $do-once55
+ (i32.eqz
+ (local.tee $1
+ (i32.load offset=16
+ (local.get $6)
+ )
+ )
+ )
)
(local.set $0
(local.get $2)
)
- (br $while-in58)
)
)
- (if
- (local.tee $3
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $1)
- (i32.const 16)
+ (loop $while-in58
+ (if
+ (local.tee $2
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $1)
+ (i32.const 20)
+ )
)
)
)
+ (block
+ (local.set $1
+ (local.get $2)
+ )
+ (local.set $0
+ (local.get $3)
+ )
+ (br $while-in58)
+ )
)
- (block
- (local.set $1
- (local.get $3)
+ (if
+ (local.tee $2
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
+ )
+ )
)
- (local.set $0
- (local.get $2)
+ (block
+ (local.set $1
+ (local.get $2)
+ )
+ (local.set $0
+ (local.get $3)
+ )
+ (br $while-in58)
)
- (br $while-in58)
)
)
- )
- (if
- (i32.lt_u
- (local.get $0)
- (local.get $4)
- )
- (call $_abort)
- (block
- (i32.store
+ (if
+ (i32.lt_u
(local.get $0)
- (i32.const 0)
- )
- (local.set $8
- (local.get $1)
+ (local.get $4)
)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.tee $2
- (i32.load offset=8
- (local.get $6)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $0)
+ (i32.const 0)
)
- )
- (local.get $4)
- )
- (call $_abort)
- )
- (if
- (i32.ne
- (local.get $6)
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $2)
- (i32.const 12)
- )
+ (local.set $11
+ (local.get $1)
)
)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
+ (block
+ (if
+ (i32.lt_u
(local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 8)
+ (i32.load offset=8
+ (local.get $6)
)
)
+ (local.get $4)
)
- (local.get $6)
+ (call $_abort)
)
- (block
- (i32.store
- (local.get $3)
- (local.get $0)
+ (if
+ (i32.ne
+ (local.get $6)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (i32.store
- (local.get $1)
- (local.get $2)
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load offset=8
+ (local.get $0)
+ )
+ (local.get $6)
)
- (local.set $8
- (local.get $0)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $11
+ (local.get $0)
+ )
)
+ (call $_abort)
)
- (call $_abort)
)
)
- )
- (br_if $label$break$L331
- (i32.eqz
- (local.get $5)
+ (br_if $label$break$L331
+ (i32.eqz
+ (local.get $5)
+ )
)
- )
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (i32.shl
- (local.tee $1
- (i32.load offset=28
- (local.get $6)
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.tee $1
+ (i32.load offset=28
+ (local.get $6)
+ )
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
)
+ (local.get $6)
)
- (local.get $6)
- )
- (block $do-once59
- (i32.store
- (local.get $0)
- (local.get $8)
- )
- (br_if $do-once59
- (local.get $8)
+ (block $do-once59
+ (i32.store
+ (local.get $0)
+ (local.get $11)
+ )
+ (br_if $do-once59
+ (local.get $11)
+ )
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$L331)
)
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
+ (block
+ (if
+ (i32.lt_u
+ (local.get $5)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load offset=16
+ (local.get $5)
)
- (i32.const -1)
+ (local.get $6)
+ )
+ (i32.store offset=16
+ (local.get $5)
+ (local.get $11)
+ )
+ (i32.store offset=20
+ (local.get $5)
+ (local.get $11)
+ )
+ )
+ (br_if $label$break$L331
+ (i32.eqz
+ (local.get $11)
)
)
)
- (br $label$break$L331)
)
- (block
- (if
- (i32.lt_u
- (local.get $5)
+ (if
+ (i32.lt_u
+ (local.get $11)
+ (local.tee $0
(i32.load
(i32.const 192)
)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $5)
- (i32.const 16)
- )
- )
- )
+ (call $_abort)
+ )
+ (i32.store
+ (i32.add
+ (local.get $11)
+ (i32.const 24)
+ )
+ (local.get $5)
+ )
+ (if
+ (local.tee $1
+ (i32.load offset=16
(local.get $6)
)
- (i32.store
- (local.get $0)
- (local.get $8)
- )
- (i32.store offset=20
- (local.get $5)
- (local.get $8)
- )
)
- (br_if $label$break$L331
- (i32.eqz
- (local.get $8)
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $0)
)
- )
- )
- )
- (if
- (i32.lt_u
- (local.get $8)
- (local.tee $1
- (i32.load
- (i32.const 192)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.add
+ (local.get $11)
+ (i32.const 16)
+ )
+ (local.get $1)
+ )
+ (i32.store offset=24
+ (local.get $1)
+ (local.get $11)
+ )
)
)
)
- (call $_abort)
- )
- (i32.store offset=24
- (local.get $8)
- (local.get $5)
- )
- (if
- (local.tee $3
- (i32.load
+ (br_if $label$break$L331
+ (i32.eqz
(local.tee $0
- (i32.add
- (local.get $6)
- (i32.const 16)
+ (i32.load offset=4
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
)
)
)
)
(if
(i32.lt_u
- (local.get $3)
- (local.get $1)
+ (local.get $0)
+ (i32.load
+ (i32.const 192)
+ )
)
(call $_abort)
(block
- (i32.store offset=16
- (local.get $8)
- (local.get $3)
+ (i32.store
+ (i32.add
+ (local.get $11)
+ (i32.const 20)
+ )
+ (local.get $0)
)
(i32.store offset=24
- (local.get $3)
- (local.get $8)
- )
- )
- )
- )
- (br_if $label$break$L331
- (i32.eqz
- (local.tee $0
- (i32.load offset=4
(local.get $0)
+ (local.get $11)
)
)
)
)
- (if
- (i32.lt_u
- (local.get $0)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- (block
- (i32.store offset=20
- (local.get $8)
- (local.get $0)
- )
- (i32.store offset=24
- (local.get $0)
- (local.get $8)
- )
- )
- )
)
)
- )
- (local.set $7
+ (local.set $7
+ (i32.add
+ (local.get $7)
+ (local.get $12)
+ )
+ )
(i32.add
- (local.get $7)
- (local.get $10)
+ (local.get $6)
+ (local.get $12)
)
)
- (i32.add
- (local.get $6)
- (local.get $10)
- )
+ (local.get $6)
)
- (local.get $6)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (i32.and
- (i32.load
- (local.get $0)
+ (i32.and
+ (i32.load
+ (local.get $0)
+ )
+ (i32.const -2)
)
- (i32.const -2)
- )
- )
- (i32.store offset=4
- (local.get $9)
- (i32.or
- (local.get $7)
- (i32.const 1)
)
- )
- (i32.store
- (i32.add
- (local.get $7)
- (local.get $9)
+ (i32.store offset=4
+ (local.get $8)
+ (i32.or
+ (local.get $7)
+ (i32.const 1)
+ )
)
- (local.get $7)
- )
- (local.set $0
- (i32.shr_u
+ (i32.store
+ (i32.add
+ (local.get $7)
+ (local.get $8)
+ )
(local.get $7)
- (i32.const 3)
)
- )
- (if
- (i32.lt_u
- (local.get $7)
- (i32.const 256)
+ (local.set $0
+ (i32.shr_u
+ (local.get $7)
+ (i32.const 3)
+ )
)
- (block
- (local.set $3
- (i32.add
- (i32.shl
- (local.get $0)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (if
+ (i32.lt_u
+ (local.get $7)
+ (i32.const 256)
)
- (if
- (i32.and
- (local.tee $1
- (i32.load
- (i32.const 176)
- )
- )
- (local.tee $0
+ (block
+ (local.set $2
+ (i32.add
(i32.shl
- (i32.const 1)
(local.get $0)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
- (block $do-once63
- (if
- (i32.ge_u
- (local.tee $0
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $3)
- (i32.const 8)
- )
- )
- )
- )
+ (if
+ (i32.and
+ (local.tee $1
(i32.load
- (i32.const 192)
+ (i32.const 176)
)
)
- (block
- (local.set $16
- (local.get $1)
- )
- (local.set $11
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
(local.get $0)
)
- (br $do-once63)
)
)
- (call $_abort)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $0)
- (local.get $1)
+ (block $do-once63
+ (local.set $1
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ )
+ (if
+ (i32.ge_u
+ (local.tee $0
+ (i32.load offset=8
+ (local.get $2)
+ )
+ )
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (block
+ (local.set $16
+ (local.get $1)
+ )
+ (local.set $9
+ (local.get $0)
+ )
+ (br $do-once63)
+ )
)
+ (call $_abort)
)
- (local.set $16
- (i32.add
- (local.get $3)
- (i32.const 8)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (local.set $16
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ )
+ (local.set $9
+ (local.get $2)
)
)
- (local.set $11
- (local.get $3)
+ )
+ (i32.store
+ (local.get $16)
+ (local.get $8)
+ )
+ (i32.store
+ (i32.add
+ (local.get $9)
+ (i32.const 12)
)
+ (local.get $8)
)
+ (i32.store offset=8
+ (local.get $8)
+ (local.get $9)
+ )
+ (i32.store offset=12
+ (local.get $8)
+ (local.get $2)
+ )
+ (br $do-once48)
)
- (i32.store
- (local.get $16)
- (local.get $9)
- )
- (i32.store offset=12
- (local.get $11)
- (local.get $9)
- )
- (i32.store offset=8
- (local.get $9)
- (local.get $11)
- )
- (i32.store offset=12
- (local.get $9)
- (local.get $3)
- )
- (br $do-once48)
)
- )
- (local.set $3
- (i32.add
- (i32.shl
- (local.tee $2
- (if (result i32)
- (local.tee $0
- (i32.shr_u
- (local.get $7)
- (i32.const 8)
- )
- )
+ (local.set $2
+ (i32.add
+ (i32.shl
+ (local.tee $3
(if (result i32)
- (i32.gt_u
- (local.get $7)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $7)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $2
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $0)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $7)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $3
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $0)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (local.set $3
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.get $2)
+ (local.set $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.get $3)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $7)
- (i32.add
- (local.tee $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $7)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
- (local.get $1)
+ (i32.or
+ (local.get $1)
+ (local.get $3)
+ )
(local.get $2)
)
- (local.get $3)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $0)
- (local.get $3)
+ (i32.shr_u
+ (i32.shl
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $0)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
- )
- (i32.store offset=28
- (local.get $9)
- (local.get $2)
- )
- (i32.store offset=4
- (local.tee $0
+ (i32.store offset=28
+ (local.get $8)
+ (local.get $3)
+ )
+ (i32.store offset=4
(i32.add
- (local.get $9)
+ (local.get $8)
(i32.const 16)
)
+ (i32.const 0)
)
- (i32.const 0)
- )
- (i32.store
- (local.get $0)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $1
- (i32.load
- (i32.const 180)
+ (i32.store offset=16
+ (local.get $8)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $1
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (local.tee $0
- (i32.shl
- (i32.const 1)
- (local.get $2)
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
+ (local.get $3)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (local.get $0)
- (local.get $1)
- )
- )
- (i32.store
- (local.get $3)
- (local.get $9)
- )
- (i32.store offset=24
- (local.get $9)
- (local.get $3)
- )
- (i32.store offset=12
- (local.get $9)
- (local.get $9)
- )
- (i32.store offset=8
- (local.get $9)
- (local.get $9)
- )
- (br $do-once48)
- )
- )
- (local.set $2
- (i32.shl
- (local.get $7)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (local.get $2)
- (i32.const 1)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
)
)
- (i32.eq
+ (i32.store
+ (local.get $2)
+ (local.get $8)
+ )
+ (i32.store offset=24
+ (local.get $8)
(local.get $2)
- (i32.const 31)
)
+ (i32.store offset=12
+ (local.get $8)
+ (local.get $8)
+ )
+ (i32.store offset=8
+ (local.get $8)
+ (local.get $8)
+ )
+ (br $do-once48)
)
)
- )
- (local.set $0
- (i32.load
- (local.get $3)
- )
- )
- (block $__rjto$7
- (block $__rjti$7
- (loop $while-in68
- (br_if $__rjti$7
- (i32.eq
- (i32.and
- (i32.load offset=4
- (local.get $0)
- )
- (i32.const -8)
+ (local.set $3
+ (i32.shl
+ (local.get $7)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $3)
+ (i32.const 1)
)
- (local.get $7)
)
- )
- (local.set $3
- (i32.shl
- (local.get $2)
- (i32.const 1)
+ (i32.eq
+ (local.get $3)
+ (i32.const 31)
)
)
- (if
- (local.tee $1
- (i32.load
- (local.tee $2
- (i32.add
+ )
+ )
+ (local.set $0
+ (i32.load
+ (local.get $2)
+ )
+ )
+ (block $__rjto$7
+ (block $__rjti$7
+ (loop $while-in68
+ (br_if $__rjti$7
+ (i32.eq
+ (i32.and
+ (i32.load
(i32.add
(local.get $0)
- (i32.const 16)
+ (i32.const 4)
)
- (i32.shl
- (i32.shr_u
- (local.get $2)
- (i32.const 31)
+ )
+ (i32.const -8)
+ )
+ (local.get $7)
+ )
+ )
+ (local.set $2
+ (i32.shl
+ (local.get $3)
+ (i32.const 1)
+ )
+ )
+ (if
+ (local.tee $1
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $3)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
)
+ (block
+ (local.set $3
+ (local.get $2)
+ )
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in68)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $3)
+ (i32.load
+ (i32.const 192)
+ )
)
+ (call $_abort)
(block
- (local.set $2
+ (i32.store
(local.get $3)
+ (local.get $8)
)
- (local.set $0
- (local.get $1)
+ (i32.store offset=24
+ (local.get $8)
+ (local.get $0)
)
- (br $while-in68)
+ (i32.store offset=12
+ (local.get $8)
+ (local.get $8)
+ )
+ (i32.store offset=8
+ (local.get $8)
+ (local.get $8)
+ )
+ (br $do-once48)
)
)
+ (br $__rjto$7)
)
(if
- (i32.lt_u
- (local.get $2)
- (i32.load
- (i32.const 192)
+ (i32.and
+ (i32.ge_u
+ (local.tee $2
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (local.tee $1
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $1)
)
)
- (call $_abort)
(block
- (i32.store
+ (i32.store offset=12
(local.get $2)
- (local.get $9)
+ (local.get $8)
)
- (i32.store offset=24
- (local.get $9)
+ (i32.store offset=8
(local.get $0)
- )
- (i32.store offset=12
- (local.get $9)
- (local.get $9)
+ (local.get $8)
)
(i32.store offset=8
- (local.get $9)
- (local.get $9)
+ (local.get $8)
+ (local.get $2)
)
- (br $do-once48)
- )
- )
- (br $__rjto$7)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $2
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
- )
+ (i32.store offset=12
+ (local.get $8)
+ (local.get $0)
)
- (local.tee $1
- (i32.load
- (i32.const 192)
- )
+ (i32.store offset=24
+ (local.get $8)
+ (i32.const 0)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $1)
- )
- )
- (block
- (i32.store offset=12
- (local.get $2)
- (local.get $9)
- )
- (i32.store
- (local.get $3)
- (local.get $9)
- )
- (i32.store offset=8
- (local.get $9)
- (local.get $2)
- )
- (i32.store offset=12
- (local.get $9)
- (local.get $0)
- )
- (i32.store offset=24
- (local.get $9)
- (i32.const 0)
- )
+ (call $_abort)
)
- (call $_abort)
)
)
)
- )
- (return
- (i32.add
- (local.get $12)
- (i32.const 8)
+ (return
+ (i32.add
+ (local.get $10)
+ (i32.const 8)
+ )
)
)
)
)
)
- )
- (loop $while-in70
- (block $while-out69
- (if
- (i32.le_u
- (local.tee $2
- (i32.load
- (local.get $4)
+ (loop $while-in70
+ (block $while-out69
+ (if
+ (i32.le_u
+ (local.tee $3
+ (i32.load
+ (local.get $4)
+ )
)
+ (local.get $5)
)
- (local.get $5)
- )
- (br_if $while-out69
- (i32.gt_u
- (local.tee $2
- (i32.add
- (local.get $2)
- (i32.load offset=4
- (local.get $4)
+ (br_if $while-out69
+ (i32.gt_u
+ (local.tee $3
+ (i32.add
+ (local.get $3)
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 4)
+ )
+ )
)
)
+ (local.get $5)
)
- (local.get $5)
)
)
- )
- (local.set $4
- (i32.load offset=8
- (local.get $4)
+ (local.set $4
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 8)
+ )
+ )
)
+ (br $while-in70)
)
- (br $while-in70)
)
- )
- (local.set $11
- (i32.add
- (local.tee $4
- (i32.add
- (local.get $2)
- (i32.const -47)
+ (local.set $9
+ (i32.add
+ (local.tee $4
+ (i32.add
+ (local.get $3)
+ (i32.const -47)
+ )
)
+ (i32.const 8)
)
- (i32.const 8)
)
- )
- (local.set $8
- (i32.add
- (local.tee $10
- (select
- (local.get $5)
- (local.tee $4
- (i32.add
- (local.get $4)
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.get $11)
+ (local.set $6
+ (i32.add
+ (local.tee $11
+ (select
+ (local.get $5)
+ (local.tee $4
+ (i32.add
+ (local.get $4)
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.get $9)
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $9)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $11)
- (i32.const 7)
)
)
)
- )
- (i32.lt_u
- (local.get $4)
- (local.tee $11
+ (i32.lt_u
+ (local.get $4)
(i32.add
(local.get $5)
(i32.const 16)
@@ -12104,791 +12060,790 @@
)
)
)
+ (i32.const 8)
)
- (i32.const 8)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $6
- (i32.add
- (local.tee $4
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $4
- (i32.add
- (local.get $1)
- (i32.const 8)
+ (i32.store
+ (i32.const 200)
+ (local.tee $9
+ (i32.add
+ (local.tee $4
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $4
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $4)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $4)
- (i32.const 7)
)
)
+ (local.get $1)
)
- (local.get $1)
)
)
- )
- (i32.store
- (i32.const 188)
- (local.tee $4
- (i32.sub
- (i32.add
- (local.get $3)
- (i32.const -40)
+ (i32.store
+ (i32.const 188)
+ (local.tee $4
+ (i32.sub
+ (i32.add
+ (local.get $2)
+ (i32.const -40)
+ )
+ (local.get $4)
)
+ )
+ )
+ (i32.store offset=4
+ (local.get $9)
+ (i32.or
+ (local.get $4)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (i32.add
(local.get $4)
+ (local.get $9)
)
+ (i32.const 40)
)
- )
- (i32.store offset=4
- (local.get $6)
- (i32.or
- (local.get $4)
- (i32.const 1)
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
)
- )
- (i32.store offset=4
- (i32.add
- (local.get $4)
+ (i32.store offset=4
+ (local.get $11)
+ (i32.const 27)
+ )
+ (i32.store offset=8
+ (local.get $11)
+ (i32.load
+ (i32.const 624)
+ )
+ )
+ (i32.store offset=4
(local.get $6)
+ (i32.load
+ (i32.const 628)
+ )
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (i32.store offset=8
+ (local.get $6)
+ (i32.load
+ (i32.const 632)
+ )
)
- )
- (i32.store
- (local.tee $4
- (i32.add
- (local.get $10)
- (i32.const 4)
+ (i32.store offset=12
+ (local.get $6)
+ (i32.load
+ (i32.const 636)
)
)
- (i32.const 27)
- )
- (i32.store
- (local.get $8)
- (i32.load
+ (i32.store
(i32.const 624)
+ (local.get $1)
)
- )
- (i32.store offset=4
- (local.get $8)
- (i32.load
+ (i32.store
(i32.const 628)
+ (local.get $2)
)
- )
- (i32.store offset=8
- (local.get $8)
- (i32.load
- (i32.const 632)
- )
- )
- (i32.store offset=12
- (local.get $8)
- (i32.load
+ (i32.store
(i32.const 636)
+ (i32.const 0)
)
- )
- (i32.store
- (i32.const 624)
- (local.get $1)
- )
- (i32.store
- (i32.const 628)
- (local.get $3)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 632)
- (local.get $8)
- )
- (local.set $1
- (i32.add
- (local.get $10)
- (i32.const 24)
- )
- )
- (loop $while-in72
(i32.store
- (local.tee $1
- (i32.add
- (local.get $1)
- (i32.const 4)
- )
- )
- (i32.const 7)
+ (i32.const 632)
+ (local.get $6)
)
- (br_if $while-in72
- (i32.lt_u
- (i32.add
- (local.get $1)
- (i32.const 4)
- )
- (local.get $2)
+ (local.set $1
+ (i32.add
+ (local.get $11)
+ (i32.const 24)
)
)
- )
- (if
- (i32.ne
- (local.get $5)
- (local.get $10)
- )
- (block
+ (loop $while-in72
(i32.store
- (local.get $4)
- (i32.and
- (i32.load
- (local.get $4)
+ (local.tee $1
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const -2)
)
+ (i32.const 7)
)
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.tee $6
- (i32.sub
- (local.get $10)
- (local.get $5)
- )
+ (br_if $while-in72
+ (i32.lt_u
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const 1)
+ (local.get $3)
)
)
- (i32.store
- (local.get $10)
- (local.get $6)
- )
- (local.set $1
- (i32.shr_u
- (local.get $6)
- (i32.const 3)
- )
+ )
+ (if
+ (i32.ne
+ (local.get $5)
+ (local.get $11)
)
- (if
- (i32.lt_u
- (local.get $6)
- (i32.const 256)
+ (block
+ (i32.store offset=4
+ (local.get $11)
+ (i32.and
+ (i32.load offset=4
+ (local.get $11)
+ )
+ (i32.const -2)
+ )
)
- (block
- (local.set $2
- (i32.add
- (i32.shl
- (local.get $1)
- (i32.const 3)
+ (i32.store offset=4
+ (local.get $5)
+ (i32.or
+ (local.tee $9
+ (i32.sub
+ (local.get $11)
+ (local.get $5)
)
- (i32.const 216)
)
+ (i32.const 1)
)
- (if
- (i32.and
- (local.tee $3
- (i32.load
- (i32.const 176)
- )
- )
- (local.tee $1
+ )
+ (i32.store
+ (local.get $11)
+ (local.get $9)
+ )
+ (local.set $1
+ (i32.shr_u
+ (local.get $9)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $9)
+ (i32.const 256)
+ )
+ (block
+ (local.set $3
+ (i32.add
(i32.shl
- (i32.const 1)
(local.get $1)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
(if
- (i32.lt_u
- (local.tee $1
+ (i32.and
+ (local.tee $2
(i32.load
- (local.tee $3
- (i32.add
- (local.get $2)
- (i32.const 8)
+ (i32.const 176)
+ )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ )
+ )
+ (block
+ (local.set $2
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $3)
)
)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ (block
+ (local.set $17
+ (local.get $2)
+ )
+ (local.set $7
+ (local.get $1)
+ )
)
- )
- (i32.load
- (i32.const 192)
)
)
- (call $_abort)
(block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $1)
+ (local.get $2)
+ )
+ )
(local.set $17
- (local.get $3)
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
)
(local.set $7
- (local.get $1)
- )
- )
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $1)
(local.get $3)
)
)
- (local.set $17
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
- (local.set $7
- (local.get $2)
+ )
+ (i32.store
+ (local.get $17)
+ (local.get $5)
+ )
+ (i32.store
+ (i32.add
+ (local.get $7)
+ (i32.const 12)
)
+ (local.get $5)
)
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $7)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $3)
+ )
+ (br $do-once40)
)
- (i32.store
- (local.get $17)
- (local.get $5)
- )
- (i32.store offset=12
- (local.get $7)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $7)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $2)
- )
- (br $do-once40)
)
- )
- (local.set $2
- (i32.add
- (i32.shl
- (local.tee $4
- (if (result i32)
- (local.tee $1
- (i32.shr_u
- (local.get $6)
- (i32.const 8)
- )
- )
+ (local.set $3
+ (i32.add
+ (i32.shl
+ (local.tee $4
(if (result i32)
- (i32.gt_u
- (local.get $6)
- (i32.const 16777215)
+ (local.tee $1
+ (i32.shr_u
+ (local.get $9)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $4
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $1
- (i32.shl
- (local.get $1)
- (local.tee $3
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $1)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $9)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $4
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $1
+ (i32.shl
+ (local.get $1)
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $1)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (local.set $2
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $1
- (i32.shl
- (local.get $1)
- (local.get $4)
+ (local.set $3
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $1
+ (i32.shl
+ (local.get $1)
+ (local.get $4)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $6)
- (i32.add
- (local.tee $1
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $9)
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
+ (i32.or
+ (local.get $2)
+ (local.get $4)
+ )
(local.get $3)
- (local.get $4)
)
- (local.get $2)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $1)
- (local.get $2)
+ (i32.shr_u
+ (i32.shl
+ (local.get $1)
+ (local.get $3)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $1)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $1)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
- )
- (i32.store offset=28
- (local.get $5)
- (local.get $4)
- )
- (i32.store offset=20
- (local.get $5)
- (i32.const 0)
- )
- (i32.store
- (local.get $11)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $3
- (i32.load
- (i32.const 180)
+ (i32.store offset=28
+ (local.get $5)
+ (local.get $4)
+ )
+ (i32.store offset=20
+ (local.get $5)
+ (i32.const 0)
+ )
+ (i32.store offset=16
+ (local.get $5)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $2
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (local.tee $1
- (i32.shl
- (i32.const 1)
- (local.get $4)
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $4)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (local.get $1)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (local.get $1)
+ (local.get $2)
+ )
+ )
+ (i32.store
(local.get $3)
+ (local.get $5)
)
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
+ )
+ (br $do-once40)
)
- (i32.store
- (local.get $2)
- (local.get $5)
- )
- (i32.store offset=24
- (local.get $5)
- (local.get $2)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $5)
- )
- (br $do-once40)
)
- )
- (local.set $4
- (i32.shl
- (local.get $6)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
+ (local.set $4
+ (i32.shl
+ (local.get $9)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
(local.get $4)
- (i32.const 1)
+ (i32.const 31)
)
)
- (i32.eq
- (local.get $4)
- (i32.const 31)
- )
)
)
- )
- (local.set $1
- (i32.load
- (local.get $2)
+ (local.set $1
+ (i32.load
+ (local.get $3)
+ )
)
- )
- (block $__rjto$9
- (block $__rjti$9
- (loop $while-in74
- (br_if $__rjti$9
- (i32.eq
- (i32.and
- (i32.load offset=4
- (local.get $1)
+ (block $__rjto$9
+ (block $__rjti$9
+ (loop $while-in74
+ (br_if $__rjti$9
+ (i32.eq
+ (i32.and
+ (i32.load
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
+ )
+ (i32.const -8)
)
- (i32.const -8)
+ (local.get $9)
)
- (local.get $6)
)
- )
- (local.set $2
- (i32.shl
- (local.get $4)
- (i32.const 1)
+ (local.set $3
+ (i32.shl
+ (local.get $4)
+ (i32.const 1)
+ )
)
- )
- (if
- (local.tee $3
- (i32.load
- (local.tee $4
- (i32.add
+ (if
+ (local.tee $2
+ (i32.load
+ (local.tee $4
(i32.add
- (local.get $1)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $4)
- (i32.const 31)
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
)
+ (block
+ (local.set $4
+ (local.get $3)
+ )
+ (local.set $1
+ (local.get $2)
+ )
+ (br $while-in74)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (i32.load
+ (i32.const 192)
+ )
)
+ (call $_abort)
(block
- (local.set $4
- (local.get $2)
+ (i32.store
+ (local.get $4)
+ (local.get $5)
)
- (local.set $1
- (local.get $3)
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
)
- (br $while-in74)
+ (br $do-once40)
)
)
+ (br $__rjto$9)
)
(if
- (i32.lt_u
- (local.get $4)
- (i32.load
- (i32.const 192)
+ (i32.and
+ (i32.ge_u
+ (local.tee $3
+ (i32.load offset=8
+ (local.get $1)
+ )
+ )
+ (local.tee $2
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (i32.ge_u
+ (local.get $1)
+ (local.get $2)
)
)
- (call $_abort)
(block
- (i32.store
- (local.get $4)
+ (i32.store offset=12
+ (local.get $3)
(local.get $5)
)
- (i32.store offset=24
- (local.get $5)
+ (i32.store offset=8
(local.get $1)
- )
- (i32.store offset=12
- (local.get $5)
(local.get $5)
)
(i32.store offset=8
(local.get $5)
- (local.get $5)
+ (local.get $3)
)
- (br $do-once40)
- )
- )
- (br $__rjto$9)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $4
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $1)
- (i32.const 8)
- )
- )
- )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $1)
)
- (local.tee $3
- (i32.load
- (i32.const 192)
- )
+ (i32.store offset=24
+ (local.get $5)
+ (i32.const 0)
)
)
- (i32.ge_u
- (local.get $1)
- (local.get $3)
- )
- )
- (block
- (i32.store offset=12
- (local.get $4)
- (local.get $5)
- )
- (i32.store
- (local.get $2)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $4)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $1)
- )
- (i32.store offset=24
- (local.get $5)
- (i32.const 0)
- )
+ (call $_abort)
)
- (call $_abort)
)
)
)
)
- )
- (block
- (if
- (i32.or
- (i32.eqz
- (local.tee $2
- (i32.load
- (i32.const 192)
+ (block
+ (if
+ (i32.or
+ (i32.eqz
+ (local.tee $3
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (i32.lt_u
+ (local.get $1)
+ (local.get $3)
+ )
)
- (i32.lt_u
+ (i32.store
+ (i32.const 192)
(local.get $1)
- (local.get $2)
)
)
(i32.store
- (i32.const 192)
+ (i32.const 624)
(local.get $1)
)
- )
- (i32.store
- (i32.const 624)
- (local.get $1)
- )
- (i32.store
- (i32.const 628)
- (local.get $3)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 212)
- (i32.load
- (i32.const 648)
+ (i32.store
+ (i32.const 628)
+ (local.get $2)
)
- )
- (i32.store
- (i32.const 208)
- (i32.const -1)
- )
- (local.set $2
- (i32.const 0)
- )
- (loop $while-in43
- (i32.store offset=12
- (local.tee $4
- (i32.add
- (i32.shl
- (local.get $2)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (i32.store
+ (i32.const 636)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 212)
+ (i32.load
+ (i32.const 648)
)
- (local.get $4)
)
- (i32.store offset=8
- (local.get $4)
- (local.get $4)
+ (i32.store
+ (i32.const 208)
+ (i32.const -1)
)
- (br_if $while-in43
- (i32.ne
- (local.tee $2
+ (local.set $3
+ (i32.const 0)
+ )
+ (loop $while-in43
+ (i32.store offset=12
+ (local.tee $4
(i32.add
- (local.get $2)
- (i32.const 1)
+ (i32.shl
+ (local.get $3)
+ (i32.const 3)
+ )
+ (i32.const 216)
)
)
- (i32.const 32)
+ (local.get $4)
+ )
+ (i32.store offset=8
+ (local.get $4)
+ (local.get $4)
+ )
+ (br_if $while-in43
+ (i32.ne
+ (local.tee $3
+ (i32.add
+ (local.get $3)
+ (i32.const 1)
+ )
+ )
+ (i32.const 32)
+ )
)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $4
- (i32.add
- (local.tee $2
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $2
- (i32.add
- (local.get $1)
- (i32.const 8)
+ (i32.store
+ (i32.const 200)
+ (local.tee $4
+ (i32.add
+ (local.tee $3
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $3
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $3)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $2)
- (i32.const 7)
)
)
+ (local.get $1)
)
- (local.get $1)
)
)
- )
- (i32.store
- (i32.const 188)
- (local.tee $1
- (i32.sub
- (i32.add
+ (i32.store
+ (i32.const 188)
+ (local.tee $1
+ (i32.sub
+ (i32.add
+ (local.get $2)
+ (i32.const -40)
+ )
(local.get $3)
- (i32.const -40)
)
- (local.get $2)
)
)
- )
- (i32.store offset=4
- (local.get $4)
- (i32.or
- (local.get $1)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (i32.add
- (local.get $1)
+ (i32.store offset=4
(local.get $4)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (i32.store offset=4
+ (i32.add
+ (local.get $1)
+ (local.get $4)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
)
)
)
- )
- (br_if $folding-inner0
- (i32.gt_u
- (local.tee $1
- (i32.load
- (i32.const 188)
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $1
+ (i32.load
+ (i32.const 188)
+ )
)
+ (local.get $0)
)
- (local.get $0)
)
)
+ (i32.store
+ (call $___errno_location)
+ (i32.const 12)
+ )
+ (return
+ (i32.const 0)
+ )
)
(i32.store
- (call $___errno_location)
- (i32.const 12)
- )
- (return
- (i32.const 0)
- )
- )
- (i32.store
- (i32.const 188)
- (local.tee $3
- (i32.sub
- (local.get $1)
- (local.get $0)
+ (i32.const 188)
+ (local.tee $2
+ (i32.sub
+ (local.get $1)
+ (local.get $0)
+ )
)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $1
- (i32.add
- (local.tee $2
- (i32.load
- (i32.const 200)
+ (i32.store
+ (i32.const 200)
+ (local.tee $1
+ (i32.add
+ (local.tee $3
+ (i32.load
+ (i32.const 200)
+ )
)
+ (local.get $0)
)
- (local.get $0)
)
)
- )
- (i32.store offset=4
- (local.get $1)
- (i32.or
- (local.get $3)
- (i32.const 1)
+ (i32.store offset=4
+ (local.get $1)
+ (i32.or
+ (local.get $2)
+ (i32.const 1)
+ )
)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $0)
- (i32.const 3)
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.get $0)
+ (i32.const 3)
+ )
)
)
(i32.add
- (local.get $2)
+ (local.get $3)
(i32.const 8)
)
)
@@ -12932,9 +12887,9 @@
)
(if
(i32.eq
- (local.tee $5
+ (local.tee $4
(i32.and
- (local.tee $7
+ (local.tee $8
(i32.load
(i32.add
(local.get $0)
@@ -12949,12 +12904,12 @@
)
(call $_abort)
)
- (local.set $8
+ (local.set $7
(i32.add
(local.get $1)
(local.tee $0
(i32.and
- (local.get $7)
+ (local.get $8)
(i32.const -8)
)
)
@@ -12962,26 +12917,26 @@
)
(if
(i32.and
- (local.get $7)
+ (local.get $8)
(i32.const 1)
)
(block
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
)
(block $do-once
- (local.set $7
+ (local.set $8
(i32.load
(local.get $1)
)
)
(if
(i32.eqz
- (local.get $5)
+ (local.get $4)
)
(return)
)
@@ -12990,7 +12945,7 @@
(local.tee $1
(i32.sub
(local.get $1)
- (local.get $7)
+ (local.get $8)
)
)
(local.get $11)
@@ -13000,7 +12955,7 @@
(local.set $0
(i32.add
(local.get $0)
- (local.get $7)
+ (local.get $8)
)
)
(if
@@ -13014,14 +12969,9 @@
(if
(i32.ne
(i32.and
- (local.tee $3
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $8)
- (i32.const 4)
- )
- )
+ (local.tee $2
+ (i32.load offset=4
+ (local.get $7)
)
)
(i32.const 3)
@@ -13029,10 +12979,10 @@
(i32.const 3)
)
(block
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
(br $do-once)
@@ -13042,10 +12992,10 @@
(i32.const 184)
(local.get $0)
)
- (i32.store
- (local.get $2)
+ (i32.store offset=4
+ (local.get $7)
(i32.and
- (local.get $3)
+ (local.get $2)
(i32.const -2)
)
)
@@ -13066,15 +13016,15 @@
(return)
)
)
- (local.set $5
+ (local.set $4
(i32.shr_u
- (local.get $7)
+ (local.get $8)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $7)
+ (local.get $8)
(i32.const 256)
)
(block
@@ -13085,15 +13035,15 @@
)
(if
(i32.ne
- (local.tee $2
+ (local.tee $3
(i32.load offset=8
(local.get $1)
)
)
- (local.tee $3
+ (local.tee $2
(i32.add
(i32.shl
- (local.get $5)
+ (local.get $4)
(i32.const 3)
)
(i32.const 216)
@@ -13103,7 +13053,7 @@
(block
(if
(i32.lt_u
- (local.get $2)
+ (local.get $3)
(local.get $11)
)
(call $_abort)
@@ -13112,7 +13062,7 @@
(i32.ne
(local.get $1)
(i32.load offset=12
- (local.get $2)
+ (local.get $3)
)
)
(call $_abort)
@@ -13121,7 +13071,7 @@
)
(if
(i32.eq
- (local.get $2)
+ (local.get $3)
(local.get $6)
)
(block
@@ -13134,16 +13084,16 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $5)
+ (local.get $4)
)
(i32.const -1)
)
)
)
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
(br $do-once)
@@ -13151,10 +13101,10 @@
)
(if
(i32.eq
- (local.get $3)
+ (local.get $2)
(local.get $6)
)
- (local.set $4
+ (local.set $5
(i32.add
(local.get $6)
(i32.const 8)
@@ -13168,50 +13118,51 @@
)
(call $_abort)
)
+ (local.set $2
+ (i32.add
+ (local.get $6)
+ (i32.const 8)
+ )
+ )
(if
(i32.eq
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $6)
- (i32.const 8)
- )
- )
+ (i32.load offset=8
+ (local.get $6)
)
(local.get $1)
)
- (local.set $4
- (local.get $3)
+ (local.set $5
+ (local.get $2)
)
(call $_abort)
)
)
)
(i32.store offset=12
- (local.get $2)
+ (local.get $3)
(local.get $6)
)
(i32.store
- (local.get $4)
- (local.get $2)
+ (local.get $5)
+ (local.get $3)
)
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
(br $do-once)
)
)
- (local.set $12
+ (local.set $10
(i32.load offset=24
(local.get $1)
)
)
(if
(i32.eq
- (local.tee $4
+ (local.tee $5
(i32.load offset=12
(local.get $1)
)
@@ -13219,78 +13170,79 @@
(local.get $1)
)
(block $do-once0
+ (local.set $5
+ (i32.add
+ (local.tee $8
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
+ )
+ (i32.const 4)
+ )
+ )
(if
(i32.eqz
- (local.tee $5
- (i32.load
- (local.tee $4
- (i32.add
- (local.tee $7
- (i32.add
- (local.get $1)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
+ (local.tee $4
+ (i32.load offset=4
+ (local.get $8)
)
)
)
(block
(br_if $do-once0
(i32.eqz
- (local.tee $5
- (i32.load
- (local.get $7)
+ (local.tee $4
+ (i32.load offset=16
+ (local.get $1)
)
)
)
)
- (local.set $4
- (local.get $7)
+ (local.set $5
+ (local.get $8)
)
)
)
(loop $while-in
(if
- (local.tee $7
+ (local.tee $8
(i32.load
- (local.tee $10
+ (local.tee $12
(i32.add
- (local.get $5)
+ (local.get $4)
(i32.const 20)
)
)
)
)
(block
- (local.set $5
- (local.get $7)
- )
(local.set $4
- (local.get $10)
+ (local.get $8)
+ )
+ (local.set $5
+ (local.get $12)
)
(br $while-in)
)
)
(if
- (local.tee $7
+ (local.tee $8
(i32.load
- (local.tee $10
+ (local.tee $12
(i32.add
- (local.get $5)
+ (local.get $4)
(i32.const 16)
)
)
)
)
(block
- (local.set $5
- (local.get $7)
- )
(local.set $4
- (local.get $10)
+ (local.get $8)
+ )
+ (local.set $5
+ (local.get $12)
)
(br $while-in)
)
@@ -13298,17 +13250,17 @@
)
(if
(i32.lt_u
- (local.get $4)
+ (local.get $5)
(local.get $11)
)
(call $_abort)
(block
(i32.store
- (local.get $4)
+ (local.get $5)
(i32.const 0)
)
(local.set $6
- (local.get $5)
+ (local.get $4)
)
)
)
@@ -13316,7 +13268,7 @@
(block
(if
(i32.lt_u
- (local.tee $10
+ (local.tee $4
(i32.load offset=8
(local.get $1)
)
@@ -13328,40 +13280,30 @@
(if
(i32.ne
(local.get $1)
- (i32.load
- (local.tee $7
- (i32.add
- (local.get $10)
- (i32.const 12)
- )
- )
+ (i32.load offset=12
+ (local.get $4)
)
)
(call $_abort)
)
(if
(i32.eq
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $4)
- (i32.const 8)
- )
- )
+ (i32.load offset=8
+ (local.get $5)
)
(local.get $1)
)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=12
(local.get $4)
+ (local.get $5)
)
- (i32.store
+ (i32.store offset=8
(local.get $5)
- (local.get $10)
+ (local.get $4)
)
(local.set $6
- (local.get $4)
+ (local.get $5)
)
)
(call $_abort)
@@ -13369,15 +13311,15 @@
)
)
(if
- (local.get $12)
+ (local.get $10)
(block
(if
(i32.eq
(i32.load
- (local.tee $4
+ (local.tee $5
(i32.add
(i32.shl
- (local.tee $5
+ (local.tee $4
(i32.load offset=28
(local.get $1)
)
@@ -13392,7 +13334,7 @@
)
(block
(i32.store
- (local.get $4)
+ (local.get $5)
(local.get $6)
)
(if
@@ -13409,16 +13351,16 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $5)
+ (local.get $4)
)
(i32.const -1)
)
)
)
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
(br $do-once)
@@ -13428,7 +13370,7 @@
(block
(if
(i32.lt_u
- (local.get $12)
+ (local.get $10)
(i32.load
(i32.const 192)
)
@@ -13437,22 +13379,17 @@
)
(if
(i32.eq
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $12)
- (i32.const 16)
- )
- )
+ (i32.load offset=16
+ (local.get $10)
)
(local.get $1)
)
- (i32.store
- (local.get $4)
+ (i32.store offset=16
+ (local.get $10)
(local.get $6)
)
(i32.store offset=20
- (local.get $12)
+ (local.get $10)
(local.get $6)
)
)
@@ -13461,10 +13398,10 @@
(local.get $6)
)
(block
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
(br $do-once)
@@ -13483,85 +13420,92 @@
)
(call $_abort)
)
- (i32.store offset=24
- (local.get $6)
- (local.get $12)
+ (i32.store
+ (i32.add
+ (local.get $6)
+ (i32.const 24)
+ )
+ (local.get $10)
)
(if
- (local.tee $7
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $1)
- (i32.const 16)
- )
- )
+ (local.tee $4
+ (i32.load offset=16
+ (local.get $1)
)
)
(if
(i32.lt_u
- (local.get $7)
+ (local.get $4)
(local.get $5)
)
(call $_abort)
(block
- (i32.store offset=16
- (local.get $6)
- (local.get $7)
+ (i32.store
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
+ (local.get $4)
)
(i32.store offset=24
- (local.get $7)
+ (local.get $4)
(local.get $6)
)
)
)
)
(if
- (local.tee $4
+ (local.tee $5
(i32.load offset=4
- (local.get $4)
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
)
)
(if
(i32.lt_u
- (local.get $4)
+ (local.get $5)
(i32.load
(i32.const 192)
)
)
(call $_abort)
(block
- (i32.store offset=20
- (local.get $6)
- (local.get $4)
+ (i32.store
+ (i32.add
+ (local.get $6)
+ (i32.const 20)
+ )
+ (local.get $5)
)
(i32.store offset=24
- (local.get $4)
+ (local.get $5)
(local.get $6)
)
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
)
)
(block
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
)
)
)
(block
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
)
@@ -13570,22 +13514,17 @@
)
(if
(i32.ge_u
- (local.get $2)
- (local.get $8)
+ (local.get $3)
+ (local.get $7)
)
(call $_abort)
)
(if
(i32.eqz
(i32.and
- (local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $8)
- (i32.const 4)
- )
- )
+ (local.tee $0
+ (i32.load offset=4
+ (local.get $7)
)
)
(i32.const 1)
@@ -13595,21 +13534,24 @@
)
(if
(i32.and
- (local.get $1)
+ (local.get $0)
(i32.const 2)
)
(block
- (i32.store
- (local.get $0)
+ (i32.store offset=4
+ (local.get $7)
(i32.and
- (local.get $1)
+ (local.get $0)
(i32.const -2)
)
)
- (i32.store offset=4
- (local.get $2)
- (i32.or
+ (i32.store
+ (i32.add
(local.get $3)
+ (i32.const 4)
+ )
+ (i32.or
+ (local.get $2)
(i32.const 1)
)
)
@@ -13618,7 +13560,7 @@
(local.get $2)
(local.get $3)
)
- (local.get $3)
+ (local.get $2)
)
)
(block
@@ -13627,7 +13569,7 @@
(i32.load
(i32.const 200)
)
- (local.get $8)
+ (local.get $7)
)
(block
(i32.store
@@ -13637,16 +13579,19 @@
(i32.load
(i32.const 188)
)
- (local.get $3)
+ (local.get $2)
)
)
)
(i32.store
(i32.const 200)
- (local.get $2)
+ (local.get $3)
)
- (i32.store offset=4
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
(i32.or
(local.get $0)
(i32.const 1)
@@ -13654,7 +13599,7 @@
)
(if
(i32.ne
- (local.get $2)
+ (local.get $3)
(i32.load
(i32.const 196)
)
@@ -13677,7 +13622,7 @@
(i32.load
(i32.const 196)
)
- (local.get $8)
+ (local.get $7)
)
(block
(i32.store
@@ -13687,16 +13632,19 @@
(i32.load
(i32.const 184)
)
- (local.get $3)
+ (local.get $2)
)
)
)
(i32.store
(i32.const 196)
- (local.get $2)
+ (local.get $3)
)
- (i32.store offset=4
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
(i32.or
(local.get $0)
(i32.const 1)
@@ -13705,51 +13653,51 @@
(i32.store
(i32.add
(local.get $0)
- (local.get $2)
+ (local.get $3)
)
(local.get $0)
)
(return)
)
)
- (local.set $5
+ (local.set $4
(i32.add
(i32.and
- (local.get $1)
+ (local.get $0)
(i32.const -8)
)
- (local.get $3)
+ (local.get $2)
)
)
- (local.set $3
+ (local.set $2
(i32.shr_u
- (local.get $1)
+ (local.get $0)
(i32.const 3)
)
)
(block $do-once4
(if
(i32.lt_u
- (local.get $1)
+ (local.get $0)
(i32.const 256)
)
(block
- (local.set $4
+ (local.set $5
(i32.load offset=12
- (local.get $8)
+ (local.get $7)
)
)
(if
(i32.ne
(local.tee $1
(i32.load offset=8
- (local.get $8)
+ (local.get $7)
)
)
(local.tee $0
(i32.add
(i32.shl
- (local.get $3)
+ (local.get $2)
(i32.const 3)
)
(i32.const 216)
@@ -13768,7 +13716,7 @@
)
(if
(i32.ne
- (local.get $8)
+ (local.get $7)
(i32.load offset=12
(local.get $1)
)
@@ -13780,7 +13728,7 @@
(if
(i32.eq
(local.get $1)
- (local.get $4)
+ (local.get $5)
)
(block
(i32.store
@@ -13792,7 +13740,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $3)
+ (local.get $2)
)
(i32.const -1)
)
@@ -13804,35 +13752,36 @@
(if
(i32.eq
(local.get $0)
- (local.get $4)
+ (local.get $5)
)
(local.set $14
(i32.add
- (local.get $4)
+ (local.get $5)
(i32.const 8)
)
)
(block
(if
(i32.lt_u
- (local.get $4)
+ (local.get $5)
(i32.load
(i32.const 192)
)
)
(call $_abort)
)
+ (local.set $0
+ (i32.add
+ (local.get $5)
+ (i32.const 8)
+ )
+ )
(if
(i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $4)
- (i32.const 8)
- )
- )
+ (i32.load offset=8
+ (local.get $5)
)
- (local.get $8)
+ (local.get $7)
)
(local.set $14
(local.get $0)
@@ -13843,7 +13792,7 @@
)
(i32.store offset=12
(local.get $1)
- (local.get $4)
+ (local.get $5)
)
(i32.store
(local.get $14)
@@ -13853,43 +13802,44 @@
(block
(local.set $6
(i32.load offset=24
- (local.get $8)
+ (local.get $7)
)
)
(if
(i32.eq
(local.tee $0
(i32.load offset=12
- (local.get $8)
+ (local.get $7)
)
)
- (local.get $8)
+ (local.get $7)
)
(block $do-once6
+ (local.set $0
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (local.get $7)
+ (i32.const 16)
+ )
+ )
+ (i32.const 4)
+ )
+ )
(if
(i32.eqz
- (local.tee $3
- (i32.load
- (local.tee $0
- (i32.add
- (local.tee $1
- (i32.add
- (local.get $8)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
+ (local.tee $2
+ (i32.load offset=4
+ (local.get $1)
)
)
)
(block
(br_if $do-once6
(i32.eqz
- (local.tee $3
- (i32.load
- (local.get $1)
+ (local.tee $2
+ (i32.load offset=16
+ (local.get $7)
)
)
)
@@ -13903,20 +13853,20 @@
(if
(local.tee $1
(i32.load
- (local.tee $4
+ (local.tee $5
(i32.add
- (local.get $3)
+ (local.get $2)
(i32.const 20)
)
)
)
)
(block
- (local.set $3
+ (local.set $2
(local.get $1)
)
(local.set $0
- (local.get $4)
+ (local.get $5)
)
(br $while-in9)
)
@@ -13924,20 +13874,20 @@
(if
(local.tee $1
(i32.load
- (local.tee $4
+ (local.tee $5
(i32.add
- (local.get $3)
+ (local.get $2)
(i32.const 16)
)
)
)
)
(block
- (local.set $3
+ (local.set $2
(local.get $1)
)
(local.set $0
- (local.get $4)
+ (local.get $5)
)
(br $while-in9)
)
@@ -13957,7 +13907,7 @@
(i32.const 0)
)
(local.set $9
- (local.get $3)
+ (local.get $2)
)
)
)
@@ -13965,9 +13915,9 @@
(block
(if
(i32.lt_u
- (local.tee $4
+ (local.tee $2
(i32.load offset=8
- (local.get $8)
+ (local.get $7)
)
)
(i32.load
@@ -13978,38 +13928,28 @@
)
(if
(i32.ne
- (local.get $8)
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $4)
- (i32.const 12)
- )
- )
+ (local.get $7)
+ (i32.load offset=12
+ (local.get $2)
)
)
(call $_abort)
)
(if
(i32.eq
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
+ (i32.load offset=8
+ (local.get $0)
)
- (local.get $8)
+ (local.get $7)
)
(block
- (i32.store
- (local.get $1)
+ (i32.store offset=12
+ (local.get $2)
(local.get $0)
)
- (i32.store
- (local.get $3)
- (local.get $4)
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $2)
)
(local.set $9
(local.get $0)
@@ -14028,9 +13968,9 @@
(local.tee $0
(i32.add
(i32.shl
- (local.tee $3
+ (local.tee $2
(i32.load offset=28
- (local.get $8)
+ (local.get $7)
)
)
(i32.const 2)
@@ -14039,7 +13979,7 @@
)
)
)
- (local.get $8)
+ (local.get $7)
)
(block
(i32.store
@@ -14060,7 +14000,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $3)
+ (local.get $2)
)
(i32.const -1)
)
@@ -14082,18 +14022,13 @@
)
(if
(i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $6)
- (i32.const 16)
- )
- )
+ (i32.load offset=16
+ (local.get $6)
)
- (local.get $8)
+ (local.get $7)
)
- (i32.store
- (local.get $0)
+ (i32.store offset=16
+ (local.get $6)
(local.get $9)
)
(i32.store offset=20
@@ -14111,7 +14046,7 @@
(if
(i32.lt_u
(local.get $9)
- (local.tee $3
+ (local.tee $0
(i32.load
(i32.const 192)
)
@@ -14119,34 +14054,35 @@
)
(call $_abort)
)
- (i32.store offset=24
- (local.get $9)
+ (i32.store
+ (i32.add
+ (local.get $9)
+ (i32.const 24)
+ )
(local.get $6)
)
(if
- (local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $8)
- (i32.const 16)
- )
- )
+ (local.tee $2
+ (i32.load offset=16
+ (local.get $7)
)
)
(if
(i32.lt_u
- (local.get $1)
- (local.get $3)
+ (local.get $2)
+ (local.get $0)
)
(call $_abort)
(block
- (i32.store offset=16
- (local.get $9)
- (local.get $1)
+ (i32.store
+ (i32.add
+ (local.get $9)
+ (i32.const 16)
+ )
+ (local.get $2)
)
(i32.store offset=24
- (local.get $1)
+ (local.get $2)
(local.get $9)
)
)
@@ -14155,7 +14091,10 @@
(if
(local.tee $0
(i32.load offset=4
- (local.get $0)
+ (i32.add
+ (local.get $7)
+ (i32.const 16)
+ )
)
)
(if
@@ -14167,8 +14106,11 @@
)
(call $_abort)
(block
- (i32.store offset=20
- (local.get $9)
+ (i32.store
+ (i32.add
+ (local.get $9)
+ (i32.const 20)
+ )
(local.get $0)
)
(i32.store offset=24
@@ -14183,49 +14125,52 @@
)
)
)
- (i32.store offset=4
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
(i32.or
- (local.get $5)
+ (local.get $4)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $2)
- (local.get $5)
+ (local.get $3)
+ (local.get $4)
)
- (local.get $5)
+ (local.get $4)
)
- (local.set $3
+ (local.set $2
(if (result i32)
(i32.eq
(i32.load
(i32.const 196)
)
- (local.get $2)
+ (local.get $3)
)
(block
(i32.store
(i32.const 184)
- (local.get $5)
+ (local.get $4)
)
(return)
)
- (local.get $5)
+ (local.get $4)
)
)
)
)
(local.set $0
(i32.shr_u
- (local.get $3)
+ (local.get $2)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $3)
+ (local.get $2)
(i32.const 256)
)
(block
@@ -14240,7 +14185,7 @@
)
(if
(i32.and
- (local.tee $3
+ (local.tee $2
(i32.load
(i32.const 176)
)
@@ -14252,29 +14197,32 @@
)
)
)
- (if
- (i32.lt_u
- (local.tee $0
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $1)
- (i32.const 8)
- )
- )
- )
- )
- (i32.load
- (i32.const 192)
+ (block
+ (local.set $2
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
)
)
- (call $_abort)
- (block
- (local.set $15
- (local.get $3)
+ (if
+ (i32.lt_u
+ (local.tee $0
+ (i32.load offset=8
+ (local.get $1)
+ )
+ )
+ (i32.load
+ (i32.const 192)
+ )
)
- (local.set $13
- (local.get $0)
+ (call $_abort)
+ (block
+ (local.set $15
+ (local.get $2)
+ )
+ (local.set $13
+ (local.get $0)
+ )
)
)
)
@@ -14283,7 +14231,7 @@
(i32.const 176)
(i32.or
(local.get $0)
- (local.get $3)
+ (local.get $2)
)
)
(local.set $15
@@ -14299,42 +14247,51 @@
)
(i32.store
(local.get $15)
- (local.get $2)
+ (local.get $3)
)
- (i32.store offset=12
- (local.get $13)
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $13)
+ (i32.const 12)
+ )
+ (local.get $3)
)
- (i32.store offset=8
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
(local.get $13)
)
- (i32.store offset=12
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 12)
+ )
(local.get $1)
)
(return)
)
)
- (local.set $4
+ (local.set $5
(i32.add
(i32.shl
- (local.tee $5
+ (local.tee $4
(if (result i32)
(local.tee $0
(i32.shr_u
- (local.get $3)
+ (local.get $2)
(i32.const 8)
)
)
(if (result i32)
(i32.gt_u
- (local.get $3)
+ (local.get $2)
(i32.const 16777215)
)
(i32.const 31)
(block (result i32)
- (local.set $5
+ (local.set $4
(i32.and
(i32.shr_u
(i32.add
@@ -14362,14 +14319,14 @@
(i32.const 4)
)
)
- (local.set $4
+ (local.set $5
(i32.and
(i32.shr_u
(i32.add
(local.tee $0
(i32.shl
(local.get $0)
- (local.get $5)
+ (local.get $4)
)
)
(i32.const 245760)
@@ -14382,7 +14339,7 @@
(i32.or
(i32.and
(i32.shr_u
- (local.get $3)
+ (local.get $2)
(i32.add
(local.tee $0
(i32.add
@@ -14391,15 +14348,15 @@
(i32.or
(i32.or
(local.get $1)
- (local.get $5)
+ (local.get $4)
)
- (local.get $4)
+ (local.get $5)
)
)
(i32.shr_u
(i32.shl
(local.get $0)
- (local.get $4)
+ (local.get $5)
)
(i32.const 15)
)
@@ -14425,16 +14382,25 @@
(i32.const 480)
)
)
- (i32.store offset=28
- (local.get $2)
- (local.get $5)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 28)
+ )
+ (local.get $4)
)
- (i32.store offset=20
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 20)
+ )
(i32.const 0)
)
- (i32.store offset=16
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
(i32.const 0)
)
(if
@@ -14447,25 +14413,25 @@
(local.tee $0
(i32.shl
(i32.const 1)
- (local.get $5)
+ (local.get $4)
)
)
)
(block $do-once12
- (local.set $5
+ (local.set $4
(i32.shl
- (local.get $3)
+ (local.get $2)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $5)
+ (local.get $4)
(i32.const 1)
)
)
(i32.eq
- (local.get $5)
+ (local.get $4)
(i32.const 31)
)
)
@@ -14473,7 +14439,7 @@
)
(local.set $0
(i32.load
- (local.get $4)
+ (local.get $5)
)
)
(block $__rjto$1
@@ -14482,24 +14448,27 @@
(br_if $__rjti$1
(i32.eq
(i32.and
- (i32.load offset=4
- (local.get $0)
+ (i32.load
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
)
(i32.const -8)
)
- (local.get $3)
+ (local.get $2)
)
)
- (local.set $4
+ (local.set $5
(i32.shl
- (local.get $5)
+ (local.get $4)
(i32.const 1)
)
)
(if
(local.tee $1
(i32.load
- (local.tee $5
+ (local.tee $4
(i32.add
(i32.add
(local.get $0)
@@ -14507,7 +14476,7 @@
)
(i32.shl
(i32.shr_u
- (local.get $5)
+ (local.get $4)
(i32.const 31)
)
(i32.const 2)
@@ -14517,8 +14486,8 @@
)
)
(block
- (local.set $5
- (local.get $4)
+ (local.set $4
+ (local.get $5)
)
(local.set $0
(local.get $1)
@@ -14529,7 +14498,7 @@
)
(if
(i32.lt_u
- (local.get $5)
+ (local.get $4)
(i32.load
(i32.const 192)
)
@@ -14537,20 +14506,29 @@
(call $_abort)
(block
(i32.store
- (local.get $5)
- (local.get $2)
+ (local.get $4)
+ (local.get $3)
)
- (i32.store offset=24
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 24)
+ )
(local.get $0)
)
- (i32.store offset=12
- (local.get $2)
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 12)
+ )
+ (local.get $3)
)
- (i32.store offset=8
- (local.get $2)
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (local.get $3)
)
(br $do-once12)
)
@@ -14560,17 +14538,12 @@
(if
(i32.and
(i32.ge_u
- (local.tee $4
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $0)
)
)
- (local.tee $3
+ (local.tee $2
(i32.load
(i32.const 192)
)
@@ -14578,28 +14551,37 @@
)
(i32.ge_u
(local.get $0)
- (local.get $3)
+ (local.get $2)
)
)
(block
(i32.store offset=12
- (local.get $4)
- (local.get $2)
- )
- (i32.store
(local.get $1)
- (local.get $2)
+ (local.get $3)
)
(i32.store offset=8
- (local.get $2)
- (local.get $4)
+ (local.get $0)
+ (local.get $3)
)
- (i32.store offset=12
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (local.get $1)
+ )
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 12)
+ )
(local.get $0)
)
- (i32.store offset=24
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 24)
+ )
(i32.const 0)
)
)
@@ -14616,20 +14598,29 @@
)
)
(i32.store
- (local.get $4)
- (local.get $2)
+ (local.get $5)
+ (local.get $3)
)
- (i32.store offset=24
- (local.get $2)
- (local.get $4)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 24)
+ )
+ (local.get $5)
)
- (i32.store offset=12
- (local.get $2)
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 12)
+ )
+ (local.get $3)
)
- (i32.store offset=8
- (local.get $2)
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (local.get $3)
)
)
)
@@ -14654,7 +14645,7 @@
(loop $while-in17
(local.set $0
(i32.add
- (local.tee $3
+ (local.tee $2
(i32.load
(local.get $0)
)
@@ -14663,7 +14654,7 @@
)
)
(br_if $while-in17
- (local.get $3)
+ (local.get $2)
)
)
(i32.store
diff --git a/test/emcc_hello_world.fromasm.clamp b/test/emcc_hello_world.fromasm.clamp
index 9a4aad57b..68a172d25 100644
--- a/test/emcc_hello_world.fromasm.clamp
+++ b/test/emcc_hello_world.fromasm.clamp
@@ -262,8 +262,11 @@
(loop $while-in
(if
(i32.ne
- (i32.load8_u offset=687
- (local.get $1)
+ (i32.load8_u
+ (i32.add
+ (local.get $1)
+ (i32.const 687)
+ )
)
(local.get $0)
)
@@ -497,11 +500,9 @@
)
(i32.store offset=12
(local.get $3)
- (local.tee $0
- (i32.add
- (local.get $3)
- (i32.const 20)
- )
+ (i32.add
+ (local.get $3)
+ (i32.const 20)
)
)
(i32.store offset=16
@@ -520,14 +521,14 @@
(i32.const 0)
)
(block (result i32)
- (i32.store
- (local.get $0)
+ (i32.store offset=20
+ (local.get $4)
(i32.const -1)
)
(i32.const -1)
)
- (i32.load
- (local.get $0)
+ (i32.load offset=20
+ (local.get $4)
)
)
)
@@ -664,11 +665,7 @@
(local $8 i32)
(local $9 i32)
(local $10 i32)
- (local $11 i32)
- (local $12 i32)
- (local $13 i32)
- (local $14 i32)
- (local.set $10
+ (local.set $8
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -684,43 +681,33 @@
)
(call $abort)
)
- (local.set $8
+ (local.set $9
(i32.add
- (local.get $10)
+ (local.get $8)
(i32.const 16)
)
)
- (i32.store
- (local.tee $4
- (i32.add
- (local.tee $9
- (local.get $10)
- )
- (i32.const 32)
- )
+ (i32.store offset=32
+ (local.tee $6
+ (local.get $8)
)
(local.tee $3
- (i32.load
- (local.tee $6
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (i32.load offset=28
+ (local.get $0)
)
)
)
(i32.store offset=4
- (local.get $4)
+ (local.tee $4
+ (i32.add
+ (local.get $6)
+ (i32.const 32)
+ )
+ )
(local.tee $3
(i32.sub
- (i32.load
- (local.tee $11
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
(local.get $3)
)
@@ -734,25 +721,13 @@
(local.get $4)
(local.get $2)
)
- (local.set $13
- (i32.add
- (local.get $0)
- (i32.const 60)
- )
- )
- (local.set $14
- (i32.add
- (local.get $0)
- (i32.const 44)
- )
- )
(local.set $1
(local.get $4)
)
(local.set $4
(i32.const 2)
)
- (local.set $12
+ (local.set $10
(i32.add
(local.get $2)
(local.get $3)
@@ -772,24 +747,24 @@
(local.get $0)
)
(i32.store
- (local.get $9)
- (i32.load
- (local.get $13)
+ (local.get $6)
+ (i32.load offset=60
+ (local.get $0)
)
)
(i32.store offset=4
- (local.get $9)
+ (local.get $6)
(local.get $1)
)
(i32.store offset=8
- (local.get $9)
+ (local.get $6)
(local.get $4)
)
(local.set $3
(call $___syscall_ret
(call $___syscall146
(i32.const 146)
- (local.get $9)
+ (local.get $6)
)
)
)
@@ -798,25 +773,25 @@
)
)
(block
- (i32.store
+ (i32.store offset=16
(local.get $8)
- (i32.load
- (local.get $13)
+ (i32.load offset=60
+ (local.get $0)
)
)
(i32.store offset=4
- (local.get $8)
+ (local.get $9)
(local.get $1)
)
(i32.store offset=8
- (local.get $8)
+ (local.get $9)
(local.get $4)
)
(local.set $3
(call $___syscall_ret
(call $___syscall146
(i32.const 146)
- (local.get $8)
+ (local.get $9)
)
)
)
@@ -825,7 +800,7 @@
(br_if $__rjti$0
(i32.eq
(local.get $3)
- (local.get $12)
+ (local.get $10)
)
)
(br_if $__rjti$1
@@ -839,27 +814,33 @@
(i32.gt_u
(local.get $3)
(local.tee $5
- (i32.load offset=4
- (local.get $1)
+ (i32.load
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
)
)
)
(block (result i32)
- (i32.store
- (local.get $6)
+ (i32.store offset=28
+ (local.get $0)
(local.tee $7
- (i32.load
- (local.get $14)
+ (i32.load offset=44
+ (local.get $0)
)
)
)
- (i32.store
- (local.get $11)
+ (i32.store offset=20
+ (local.get $0)
(local.get $7)
)
(local.set $7
- (i32.load offset=12
- (local.get $1)
+ (i32.load
+ (i32.add
+ (local.get $1)
+ (i32.const 12)
+ )
)
)
(local.set $1
@@ -886,11 +867,11 @@
(i32.const 2)
)
(block
- (i32.store
- (local.get $6)
+ (i32.store offset=28
+ (local.get $0)
(i32.add
- (i32.load
- (local.get $6)
+ (i32.load offset=28
+ (local.get $0)
)
(local.get $3)
)
@@ -919,16 +900,19 @@
(local.get $5)
)
)
- (i32.store offset=4
- (local.get $1)
+ (i32.store
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
(i32.sub
(local.get $7)
(local.get $5)
)
)
- (local.set $12
+ (local.set $10
(i32.sub
- (local.get $12)
+ (local.get $10)
(local.get $3)
)
)
@@ -939,8 +923,8 @@
(local.get $0)
(i32.add
(local.tee $1
- (i32.load
- (local.get $14)
+ (i32.load offset=44
+ (local.get $0)
)
)
(i32.load offset=48
@@ -948,12 +932,12 @@
)
)
)
- (i32.store
- (local.get $6)
+ (i32.store offset=28
+ (local.get $0)
(local.get $1)
)
- (i32.store
- (local.get $11)
+ (i32.store offset=20
+ (local.get $0)
(local.get $1)
)
(br $__rjto$1)
@@ -962,12 +946,12 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $6)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $11)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
(i32.store
@@ -996,7 +980,7 @@
)
)
(global.set $STACKTOP
- (local.get $10)
+ (local.get $8)
)
(local.get $2)
)
@@ -1008,11 +992,7 @@
(local $6 i32)
(local $7 i32)
(local $8 i32)
- (local $9 i32)
- (local $10 i32)
- (local $11 i32)
- (local $12 i32)
- (local.set $6
+ (local.set $2
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -1028,26 +1008,27 @@
)
(call $abort)
)
- (local.set $3
+ (local.set $6
(i32.add
- (local.get $6)
+ (local.get $2)
(i32.const 120)
)
)
- (local.set $5
+ (local.set $7
+ (local.get $2)
+ )
+ (local.set $4
(i32.add
- (local.tee $4
- (local.get $6)
- )
+ (local.get $2)
(i32.const 136)
)
)
- (local.set $8
+ (local.set $5
(i32.add
- (local.tee $2
- (local.tee $7
+ (local.tee $3
+ (local.tee $8
(i32.add
- (local.get $4)
+ (local.get $2)
(i32.const 80)
)
)
@@ -1057,23 +1038,23 @@
)
(loop $do-in
(i32.store
- (local.get $2)
+ (local.get $3)
(i32.const 0)
)
(br_if $do-in
(i32.lt_s
- (local.tee $2
+ (local.tee $3
(i32.add
- (local.get $2)
+ (local.get $3)
(i32.const 4)
)
)
- (local.get $8)
+ (local.get $5)
)
)
)
- (i32.store
- (local.get $3)
+ (i32.store offset=120
+ (local.get $2)
(i32.load
(local.get $1)
)
@@ -1083,9 +1064,9 @@
(i32.lt_s
(call $_printf_core
(i32.const 0)
- (local.get $3)
- (local.get $4)
+ (local.get $6)
(local.get $7)
+ (local.get $8)
)
(i32.const 0)
)
@@ -1096,7 +1077,7 @@
(local.get $0)
)
)
- (local.set $9
+ (local.set $3
(i32.load
(local.get $0)
)
@@ -1111,87 +1092,62 @@
(i32.store
(local.get $0)
(i32.and
- (local.get $9)
+ (local.get $3)
(i32.const -33)
)
)
)
(if
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 48)
- )
- )
+ (i32.load offset=48
+ (local.get $0)
)
(drop
(call $_printf_core
(local.get $0)
- (local.get $3)
- (local.get $4)
+ (local.get $6)
(local.get $7)
+ (local.get $8)
)
)
(block
- (local.set $11
- (i32.load
- (local.tee $10
- (i32.add
- (local.get $0)
- (i32.const 44)
- )
- )
+ (local.set $5
+ (i32.load offset=44
+ (local.get $0)
)
)
- (i32.store
- (local.get $10)
- (local.get $5)
+ (i32.store offset=44
+ (local.get $0)
+ (local.get $4)
)
- (i32.store
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
- (local.get $5)
+ (i32.store offset=28
+ (local.get $0)
+ (local.get $4)
)
- (i32.store
- (local.tee $12
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
- (local.get $5)
+ (i32.store offset=20
+ (local.get $0)
+ (local.get $4)
)
- (i32.store
- (local.get $1)
+ (i32.store offset=48
+ (local.get $0)
(i32.const 80)
)
- (i32.store
- (local.tee $8
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- )
+ (i32.store offset=16
+ (local.get $0)
(i32.add
- (local.get $5)
+ (local.get $4)
(i32.const 80)
)
)
(drop
(call $_printf_core
(local.get $0)
- (local.get $3)
- (local.get $4)
+ (local.get $6)
(local.get $7)
+ (local.get $8)
)
)
(if
- (local.get $11)
+ (local.get $5)
(block
(drop
(call_indirect (type $FUNCSIG$iiii)
@@ -1210,28 +1166,28 @@
)
)
(drop
- (i32.load
- (local.get $12)
+ (i32.load offset=20
+ (local.get $0)
)
)
- (i32.store
- (local.get $10)
- (local.get $11)
+ (i32.store offset=44
+ (local.get $0)
+ (local.get $5)
)
- (i32.store
- (local.get $1)
+ (i32.store offset=48
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $8)
+ (i32.store offset=16
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $2)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $12)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
)
@@ -1245,7 +1201,7 @@
(local.get $0)
)
(i32.and
- (local.get $9)
+ (local.get $3)
(i32.const 32)
)
)
@@ -1255,25 +1211,19 @@
)
)
(global.set $STACKTOP
- (local.get $6)
+ (local.get $2)
)
)
(func $___fwritex (; 36 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
- (local $6 i32)
(block $label$break$L5
(block $__rjti$0
(br_if $__rjti$0
(local.tee $3
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $2)
- (i32.const 16)
- )
- )
+ (i32.load offset=16
+ (local.get $2)
)
)
)
@@ -1285,8 +1235,8 @@
)
(block
(local.set $3
- (i32.load
- (local.get $4)
+ (i32.load offset=16
+ (local.get $2)
)
)
(br $__rjti$0)
@@ -1299,13 +1249,8 @@
(i32.sub
(local.get $3)
(local.tee $4
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $2)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $2)
)
)
)
@@ -1357,7 +1302,7 @@
(i32.load8_s
(i32.add
(local.get $0)
- (local.tee $6
+ (local.tee $5
(i32.add
(local.get $3)
(i32.const -1)
@@ -1369,7 +1314,7 @@
)
(block
(local.set $3
- (local.get $6)
+ (local.get $5)
)
(br $while-in)
)
@@ -1395,8 +1340,8 @@
)
)
(local.set $4
- (i32.load
- (local.get $5)
+ (i32.load offset=20
+ (local.get $2)
)
)
(local.set $1
@@ -1423,11 +1368,11 @@
(local.get $1)
)
)
- (i32.store
- (local.get $5)
+ (i32.store offset=20
+ (local.get $2)
(i32.add
- (i32.load
- (local.get $5)
+ (i32.load offset=20
+ (local.get $2)
)
(local.get $1)
)
@@ -1436,21 +1381,14 @@
)
(func $___towrite (; 37 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
- (local $2 i32)
- (local.set $1
- (i32.load8_s
- (local.tee $2
- (i32.add
+ (i32.store8 offset=74
+ (local.get $0)
+ (i32.or
+ (local.tee $1
+ (i32.load8_s offset=74
(local.get $0)
- (i32.const 74)
)
)
- )
- )
- (i32.store8
- (local.get $2)
- (i32.or
- (local.get $1)
(i32.add
(local.get $1)
(i32.const 255)
@@ -1908,29 +1846,15 @@
(local $1 i32)
(local $2 i32)
(local $3 i32)
- (local $4 i32)
- (local $5 i32)
- (local $6 i32)
- (local $7 i32)
(block $__rjto$0 (result i32)
(block $__rjti$0
(br_if $__rjti$0
(i32.le_u
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (i32.load offset=28
+ (local.get $0)
)
)
)
@@ -1954,8 +1878,8 @@
)
)
(br_if $__rjti$0
- (i32.load
- (local.get $2)
+ (i32.load offset=20
+ (local.get $0)
)
)
(br $__rjto$0
@@ -1964,29 +1888,19 @@
)
(if
(i32.lt_u
- (local.tee $4
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 4)
- )
- )
+ (local.tee $1
+ (i32.load offset=4
+ (local.get $0)
)
)
- (local.tee $6
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
+ (local.tee $2
+ (i32.load offset=8
+ (local.get $0)
)
)
)
(block
- (local.set $7
+ (local.set $3
(i32.load offset=40
(local.get $0)
)
@@ -1995,13 +1909,13 @@
(call_indirect (type $FUNCSIG$iiii)
(local.get $0)
(i32.sub
- (local.get $4)
- (local.get $6)
+ (local.get $1)
+ (local.get $2)
)
(i32.const 1)
(i32.add
(i32.and
- (local.get $7)
+ (local.get $3)
(i32.const 7)
)
(i32.const 2)
@@ -2014,20 +1928,20 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $3)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $2)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $5)
+ (i32.store offset=8
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $1)
+ (i32.store offset=4
+ (local.get $0)
(i32.const 0)
)
(i32.const 0)
@@ -2183,8 +2097,7 @@
(local $48 i32)
(local $49 i32)
(local $50 i32)
- (local $51 i32)
- (local.set $34
+ (local.set $20
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -2200,16 +2113,16 @@
)
(call $abort)
)
- (local.set $20
+ (local.set $39
(i32.add
- (local.get $34)
+ (local.get $20)
(i32.const 16)
)
)
- (local.set $35
+ (local.set $33
(i32.add
(local.tee $13
- (local.get $34)
+ (local.get $20)
)
(i32.const 528)
)
@@ -2220,7 +2133,7 @@
(i32.const 0)
)
)
- (local.set $38
+ (local.set $36
(local.tee $25
(i32.add
(local.tee $4
@@ -2233,21 +2146,16 @@
)
)
)
- (local.set $39
+ (local.set $40
(i32.add
(local.get $4)
(i32.const 39)
)
)
- (local.set $43
+ (local.set $41
(i32.add
- (local.tee $40
- (i32.add
- (local.get $13)
- (i32.const 8)
- )
- )
- (i32.const 4)
+ (local.get $13)
+ (i32.const 8)
)
)
(local.set $32
@@ -2261,18 +2169,18 @@
(i32.const 12)
)
)
- (local.set $41
+ (local.set $42
(i32.add
(local.get $4)
(i32.const 11)
)
)
- (local.set $44
+ (local.set $43
(i32.sub
(local.tee $27
(local.get $32)
)
- (local.tee $36
+ (local.tee $34
(local.tee $23
(i32.add
(local.get $13)
@@ -2282,21 +2190,21 @@
)
)
)
- (local.set $45
+ (local.set $44
(i32.sub
(i32.const -2)
- (local.get $36)
+ (local.get $34)
)
)
- (local.set $46
+ (local.set $45
(i32.add
(local.get $27)
(i32.const 2)
)
)
- (local.set $48
+ (local.set $47
(i32.add
- (local.tee $47
+ (local.tee $46
(i32.add
(local.get $13)
(i32.const 24)
@@ -2305,7 +2213,7 @@
(i32.const 288)
)
)
- (local.set $42
+ (local.set $37
(local.tee $29
(i32.add
(local.get $23)
@@ -2313,7 +2221,7 @@
)
)
)
- (local.set $33
+ (local.set $38
(i32.add
(local.get $23)
(i32.const 8)
@@ -3621,7 +3529,7 @@
(local.tee $10
(i32.add
(i32.sub
- (local.get $38)
+ (local.get $36)
(local.tee $6
(local.get $7)
)
@@ -3749,14 +3657,14 @@
(local.get $13)
)
)
- (i32.store8
- (local.get $39)
+ (i32.store8 offset=575
+ (local.get $13)
(i32.load
(local.get $13)
)
)
(local.set $4
- (local.get $39)
+ (local.get $40)
)
(local.set $10
(local.get $7)
@@ -3801,19 +3709,19 @@
(local.get $13)
)
)
- (i32.store
- (local.get $40)
+ (i32.store offset=8
+ (local.get $20)
(i32.load
(local.get $13)
)
)
- (i32.store
- (local.get $43)
+ (i32.store offset=12
+ (local.get $13)
(i32.const 0)
)
(i32.store
(local.get $13)
- (local.get $40)
+ (local.get $41)
)
(local.set $7
(i32.const -1)
@@ -3847,7 +3755,7 @@
(local.get $13)
)
)
- (i32.store
+ (i32.store offset=16
(local.get $20)
(i32.const 0)
)
@@ -3936,7 +3844,7 @@
(f64.mul
(call $_frexp
(local.get $15)
- (local.get $20)
+ (local.get $39)
)
(f64.const 2)
)
@@ -3944,10 +3852,10 @@
(f64.const 0)
)
)
- (i32.store
+ (i32.store offset=16
(local.get $20)
(i32.add
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
(i32.const -1)
@@ -4061,7 +3969,7 @@
(i32.sub
(i32.const 0)
(local.tee $6
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
)
@@ -4089,12 +3997,12 @@
(local.get $32)
)
(block
- (i32.store8
- (local.get $41)
+ (i32.store8 offset=587
+ (local.get $13)
(i32.const 48)
)
(local.set $4
- (local.get $41)
+ (local.get $42)
)
)
)
@@ -4181,7 +4089,7 @@
(i32.const 1)
)
)
- (local.get $36)
+ (local.get $34)
)
(i32.const 1)
)
@@ -4230,14 +4138,14 @@
(i32.sub
(i32.add
(local.get $5)
- (local.get $46)
+ (local.get $45)
)
(local.get $7)
)
(i32.add
(local.get $4)
(i32.sub
- (local.get $44)
+ (local.get $43)
(local.get $7)
)
)
@@ -4249,7 +4157,7 @@
(i32.lt_s
(i32.add
(local.get $4)
- (local.get $45)
+ (local.get $44)
)
(local.get $5)
)
@@ -4288,7 +4196,7 @@
(local.set $4
(i32.sub
(local.get $4)
- (local.get $36)
+ (local.get $34)
)
)
(if
@@ -4365,11 +4273,11 @@
(if (result f64)
(local.get $4)
(block (result f64)
- (i32.store
+ (i32.store offset=16
(local.get $20)
(local.tee $4
(i32.add
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
(i32.const -28)
@@ -4383,7 +4291,7 @@
)
(block (result f64)
(local.set $4
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
)
@@ -4394,8 +4302,8 @@
(local.set $6
(local.tee $7
(select
+ (local.get $46)
(local.get $47)
- (local.get $48)
(i32.lt_s
(local.get $4)
(i32.const 0)
@@ -4438,7 +4346,7 @@
(if
(i32.gt_s
(local.tee $8
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
)
@@ -4558,11 +4466,11 @@
)
)
)
- (i32.store
+ (i32.store offset=16
(local.get $20)
(local.tee $8
(i32.sub
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
(local.get $12)
@@ -4653,7 +4561,7 @@
(i32.const -1)
)
)
- (local.set $37
+ (local.set $35
(i32.shr_u
(i32.const 1000000000)
(local.get $12)
@@ -4686,7 +4594,7 @@
(local.get $8)
(local.get $11)
)
- (local.get $37)
+ (local.get $35)
)
)
(br_if $while-in74
@@ -4770,11 +4678,11 @@
)
)
)
- (i32.store
+ (i32.store offset=16
(local.get $20)
(local.tee $8
(i32.add
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
(local.get $12)
@@ -4892,7 +4800,7 @@
(i32.const 103)
)
)
- (local.tee $37
+ (local.tee $35
(i32.ne
(local.get $17)
(i32.const 0)
@@ -4996,7 +4904,7 @@
(if
(i32.eqz
(i32.and
- (local.tee $49
+ (local.tee $48
(i32.eq
(i32.add
(local.get $5)
@@ -5011,7 +4919,7 @@
)
)
(block $do-once81
- (local.set $50
+ (local.set $49
(call $i32u-div
(local.get $24)
(local.get $11)
@@ -5021,7 +4929,7 @@
(if (result f64)
(i32.lt_u
(local.get $12)
- (local.tee $51
+ (local.tee $50
(call $i32s-div
(local.get $11)
(i32.const 2)
@@ -5033,10 +4941,10 @@
(f64.const 1)
(f64.const 1.5)
(i32.and
- (local.get $49)
+ (local.get $48)
(i32.eq
(local.get $12)
- (local.get $51)
+ (local.get $50)
)
)
)
@@ -5047,7 +4955,7 @@
(f64.const 9007199254740994)
(f64.const 9007199254740992)
(i32.and
- (local.get $50)
+ (local.get $49)
(i32.const 1)
)
)
@@ -5282,7 +5190,7 @@
(i32.add
(local.get $17)
(i32.xor
- (local.get $37)
+ (local.get $35)
(i32.const 1)
)
)
@@ -5707,12 +5615,12 @@
(local.get $29)
)
)
- (i32.store8
- (local.get $33)
+ (i32.store8 offset=596
+ (local.get $13)
(i32.const 48)
)
(local.set $6
- (local.get $33)
+ (local.get $38)
)
)
(block
@@ -5754,7 +5662,7 @@
(call $___fwritex
(local.get $6)
(i32.sub
- (local.get $42)
+ (local.get $37)
(local.get $6)
)
(local.get $0)
@@ -5951,12 +5859,12 @@
(local.get $29)
)
(block
- (i32.store8
- (local.get $33)
+ (i32.store8 offset=596
+ (local.get $13)
(i32.const 48)
)
(local.set $4
- (local.get $33)
+ (local.get $38)
)
)
)
@@ -6040,7 +5948,7 @@
)
(local.set $7
(i32.sub
- (local.get $42)
+ (local.get $37)
(local.get $4)
)
)
@@ -6453,7 +6361,7 @@
(i32.lt_s
(local.tee $6
(call $_wctomb
- (local.get $35)
+ (local.get $33)
(local.get $8)
)
)
@@ -6538,7 +6446,7 @@
(i32.add
(local.tee $7
(call $_wctomb
- (local.get $35)
+ (local.get $33)
(local.get $7)
)
)
@@ -6559,7 +6467,7 @@
)
)
(call $___fwritex
- (local.get $35)
+ (local.get $33)
(local.get $7)
(local.get $0)
)
@@ -6650,7 +6558,7 @@
(i32.const 1)
)
(i32.sub
- (local.get $38)
+ (local.get $36)
(local.tee $4
(local.get $6)
)
@@ -6865,7 +6773,7 @@
)
)
(global.set $STACKTOP
- (local.get $34)
+ (local.get $20)
)
(local.get $16)
)
@@ -6950,8 +6858,11 @@
(local.get $0)
(local.get $1)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.shr_s
(i32.shl
(i32.lt_s
@@ -6991,8 +6902,11 @@
(local.get $0)
(local.get $3)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.const 0)
)
(br $label$break$L1)
@@ -7015,8 +6929,11 @@
)
)
(local.set $3
- (i32.load offset=4
- (local.get $3)
+ (i32.load
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
)
)
(i32.store
@@ -7030,8 +6947,11 @@
(local.get $0)
(local.get $5)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(local.get $3)
)
(br $label$break$L1)
@@ -7073,8 +6993,11 @@
)
)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.shr_s
(i32.shl
(i32.lt_s
@@ -7117,8 +7040,11 @@
(i32.const 65535)
)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.const 0)
)
(br $label$break$L1)
@@ -7160,8 +7086,11 @@
)
)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.shr_s
(i32.shl
(i32.lt_s
@@ -7204,8 +7133,11 @@
(i32.const 255)
)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.const 0)
)
(br $label$break$L1)
@@ -7546,569 +7478,575 @@
(local $16 i32)
(local $17 i32)
(local $18 i32)
- (local.set $0
- (if (result i32)
- (i32.lt_u
- (local.get $0)
- (i32.const 245)
- )
- (block (result i32)
- (if
- (i32.and
- (local.tee $10
- (i32.shr_u
- (local.tee $6
- (i32.load
- (i32.const 176)
+ (block $folding-inner1
+ (local.set $0
+ (if (result i32)
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 245)
+ )
+ (block (result i32)
+ (if
+ (i32.and
+ (local.tee $12
+ (i32.shr_u
+ (local.tee $6
+ (i32.load
+ (i32.const 176)
+ )
)
- )
- (local.tee $13
- (i32.shr_u
- (local.tee $2
- (select
- (i32.const 16)
- (i32.and
- (i32.add
+ (local.tee $13
+ (i32.shr_u
+ (local.tee $4
+ (select
+ (i32.const 16)
+ (i32.and
+ (i32.add
+ (local.get $0)
+ (i32.const 11)
+ )
+ (i32.const -8)
+ )
+ (i32.lt_u
(local.get $0)
(i32.const 11)
)
- (i32.const -8)
- )
- (i32.lt_u
- (local.get $0)
- (i32.const 11)
)
)
+ (i32.const 3)
)
- (i32.const 3)
)
)
)
+ (i32.const 3)
)
- (i32.const 3)
- )
- (block
- (if
- (i32.eq
- (local.tee $7
- (i32.load
- (local.tee $1
- (i32.add
- (local.tee $11
- (i32.load
- (local.tee $3
- (i32.add
- (local.tee $2
+ (block
+ (if
+ (i32.eq
+ (local.tee $2
+ (i32.load offset=8
+ (local.tee $3
+ (i32.load offset=8
+ (local.tee $1
+ (i32.add
+ (i32.shl
+ (local.tee $0
(i32.add
- (i32.shl
- (local.tee $4
- (i32.add
- (i32.xor
- (i32.and
- (local.get $10)
- (i32.const 1)
- )
- (i32.const 1)
- )
- (local.get $13)
- )
+ (i32.xor
+ (i32.and
+ (local.get $12)
+ (i32.const 1)
)
- (i32.const 3)
+ (i32.const 1)
)
- (i32.const 216)
+ (local.get $13)
)
)
- (i32.const 8)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
)
- (i32.const 8)
)
)
)
+ (local.get $1)
)
- (local.get $2)
- )
- (i32.store
- (i32.const 176)
- (i32.and
- (local.get $6)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $4)
- )
- (i32.const -1)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.get $7)
- (i32.load
- (i32.const 192)
+ (i32.store
+ (i32.const 176)
+ (i32.and
+ (local.get $6)
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ (i32.const -1)
)
)
- (call $_abort)
)
- (if
- (i32.eq
- (local.get $11)
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $7)
- (i32.const 12)
- )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $2)
+ (i32.load
+ (i32.const 192)
)
)
+ (call $_abort)
)
- (block
- (i32.store
- (local.get $0)
- (local.get $2)
- )
- (i32.store
+ (if
+ (i32.eq
(local.get $3)
- (local.get $7)
+ (i32.load offset=12
+ (local.get $2)
+ )
)
+ (block
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store offset=8
+ (local.get $1)
+ (local.get $2)
+ )
+ )
+ (call $_abort)
)
- (call $_abort)
)
)
- )
- (i32.store offset=4
- (local.get $11)
- (i32.or
- (local.tee $0
- (i32.shl
- (local.get $4)
- (i32.const 3)
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (i32.const 3)
+ )
)
+ (i32.const 3)
)
- (i32.const 3)
)
- )
- (i32.store
- (local.tee $0
- (i32.add
+ (i32.store offset=4
+ (local.tee $0
(i32.add
(local.get $0)
- (local.get $11)
+ (local.get $3)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.load
- (local.get $0)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const 1)
)
- (i32.const 1)
)
- )
- (return
- (local.get $1)
+ (br $folding-inner1)
)
)
- )
- (if (result i32)
- (i32.gt_u
- (local.get $2)
- (local.tee $0
- (i32.load
- (i32.const 184)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $4)
+ (local.tee $0
+ (i32.load
+ (i32.const 184)
+ )
)
)
- )
- (block (result i32)
- (if
- (local.get $10)
- (block
- (if
- (i32.eq
- (local.tee $8
- (i32.load
- (local.tee $4
- (i32.add
- (local.tee $10
- (i32.load
- (local.tee $3
- (i32.add
- (local.tee $7
+ (block (result i32)
+ (if
+ (local.get $12)
+ (block
+ (if
+ (i32.eq
+ (local.tee $9
+ (i32.load offset=8
+ (local.tee $11
+ (i32.load offset=8
+ (local.tee $7
+ (i32.add
+ (i32.shl
+ (local.tee $2
(i32.add
- (i32.shl
- (local.tee $11
- (i32.add
+ (i32.or
+ (i32.or
+ (i32.or
(i32.or
- (i32.or
- (i32.or
- (i32.or
- (local.tee $3
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.add
- (i32.and
- (local.tee $3
- (i32.and
- (i32.or
- (local.tee $3
- (i32.shl
- (i32.const 2)
- (local.get $13)
- )
- )
- (i32.sub
- (i32.const 0)
- (local.get $3)
- )
- )
- (i32.shl
- (local.get $10)
- (local.get $13)
- )
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
+ (i32.add
+ (i32.and
+ (local.tee $2
+ (i32.and
+ (i32.or
+ (local.tee $2
+ (i32.shl
+ (i32.const 2)
+ (local.get $13)
)
)
(i32.sub
(i32.const 0)
- (local.get $3)
+ (local.get $2)
)
)
- (i32.const -1)
+ (i32.shl
+ (local.get $12)
+ (local.get $13)
+ )
)
)
- (i32.const 12)
- )
- (i32.const 16)
- )
- )
- (local.tee $3
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $3)
- )
+ (i32.sub
+ (i32.const 0)
+ (local.get $2)
)
- (i32.const 5)
)
- (i32.const 8)
+ (i32.const -1)
)
)
+ (i32.const 12)
)
- (local.tee $3
- (i32.and
+ (i32.const 16)
+ )
+ )
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
(i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $3)
- )
- )
- (i32.const 2)
+ (local.get $7)
+ (local.get $2)
)
- (i32.const 4)
)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (local.tee $3
- (i32.and
+ )
+ )
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
(i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $3)
- )
- )
- (i32.const 1)
+ (local.get $7)
+ (local.get $2)
)
- (i32.const 2)
)
+ (i32.const 2)
)
+ (i32.const 4)
)
- (local.tee $3
- (i32.and
+ )
+ )
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
(i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $3)
- )
- )
- (i32.const 1)
+ (local.get $7)
+ (local.get $2)
)
- (i32.const 1)
)
+ (i32.const 1)
)
+ (i32.const 2)
)
+ )
+ )
+ (local.tee $2
+ (i32.and
(i32.shr_u
- (local.get $4)
- (local.get $3)
+ (local.tee $7
+ (i32.shr_u
+ (local.get $7)
+ (local.get $2)
+ )
+ )
+ (i32.const 1)
)
+ (i32.const 1)
)
)
- (i32.const 3)
)
- (i32.const 216)
+ (i32.shr_u
+ (local.get $7)
+ (local.get $2)
+ )
)
)
- (i32.const 8)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
)
- (i32.const 8)
)
)
)
+ (local.get $7)
)
- (local.get $7)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.and
- (local.get $6)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $11)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.and
+ (local.get $6)
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $2)
+ )
+ (i32.const -1)
)
- (i32.const -1)
)
)
- )
- (local.set $9
- (local.get $0)
- )
- )
- (block
- (if
- (i32.lt_u
- (local.get $8)
- (i32.load
- (i32.const 192)
- )
+ (local.set $8
+ (local.get $0)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $8)
- (i32.const 12)
- )
- )
- )
- (local.get $10)
- )
- (block
- (i32.store
- (local.get $0)
- (local.get $7)
- )
- (i32.store
- (local.get $3)
- (local.get $8)
- )
- (local.set $9
+ (block
+ (if
+ (i32.lt_u
+ (local.get $9)
(i32.load
- (i32.const 184)
+ (i32.const 192)
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- )
- )
- (i32.store offset=4
- (local.get $10)
- (i32.or
- (local.get $2)
- (i32.const 3)
- )
- )
- (i32.store offset=4
- (local.tee $7
- (i32.add
- (local.get $2)
- (local.get $10)
- )
- )
- (i32.or
- (local.tee $11
- (i32.sub
- (i32.shl
+ (if
+ (i32.eq
+ (i32.load offset=12
+ (local.get $9)
+ )
(local.get $11)
- (i32.const 3)
)
- (local.get $2)
+ (block
+ (i32.store offset=12
+ (local.get $9)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $9)
+ )
+ (local.set $8
+ (i32.load
+ (i32.const 184)
+ )
+ )
+ )
+ (call $_abort)
)
)
- (i32.const 1)
)
- )
- (i32.store
- (i32.add
- (local.get $7)
+ (i32.store offset=4
(local.get $11)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
+ )
)
- (local.get $11)
- )
- (if
- (local.get $9)
- (block
- (local.set $6
- (i32.load
- (i32.const 196)
+ (i32.store offset=4
+ (local.tee $7
+ (i32.add
+ (local.get $4)
+ (local.get $11)
)
)
- (local.set $2
- (i32.add
- (i32.shl
- (local.tee $0
- (i32.shr_u
- (local.get $9)
- (i32.const 3)
- )
+ (i32.or
+ (local.tee $9
+ (i32.sub
+ (i32.shl
+ (local.get $2)
+ (i32.const 3)
)
- (i32.const 3)
+ (local.get $4)
)
- (i32.const 216)
)
+ (i32.const 1)
)
- (if
- (i32.and
- (local.tee $3
- (i32.load
- (i32.const 176)
- )
+ )
+ (i32.store
+ (i32.add
+ (local.get $7)
+ (local.get $9)
+ )
+ (local.get $9)
+ )
+ (if
+ (local.get $8)
+ (block
+ (local.set $6
+ (i32.load
+ (i32.const 196)
)
- (local.tee $0
+ )
+ (local.set $4
+ (i32.add
(i32.shl
- (i32.const 1)
- (local.get $0)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $8)
+ (i32.const 3)
+ )
+ )
+ (i32.const 3)
)
+ (i32.const 216)
)
)
(if
- (i32.lt_u
- (local.tee $0
+ (i32.and
+ (local.tee $2
(i32.load
- (local.tee $3
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
+ (i32.const 176)
)
)
- (i32.load
- (i32.const 192)
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
- (call $_abort)
(block
- (local.set $5
- (local.get $3)
+ (local.set $2
+ (i32.add
+ (local.get $4)
+ (i32.const 8)
+ )
)
- (local.set $1
- (local.get $0)
+ (if
+ (i32.lt_u
+ (local.tee $0
+ (i32.load offset=8
+ (local.get $4)
+ )
+ )
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ (block
+ (local.set $3
+ (local.get $2)
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ )
)
)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $0)
- (local.get $3)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $0)
+ (local.get $2)
+ )
)
- )
- (local.set $5
- (i32.add
- (local.get $2)
- (i32.const 8)
+ (local.set $3
+ (i32.add
+ (local.get $4)
+ (i32.const 8)
+ )
+ )
+ (local.set $1
+ (local.get $4)
)
)
- (local.set $1
- (local.get $2)
+ )
+ (i32.store
+ (local.get $3)
+ (local.get $6)
+ )
+ (i32.store
+ (i32.add
+ (local.get $1)
+ (i32.const 12)
)
+ (local.get $6)
+ )
+ (i32.store offset=8
+ (local.get $6)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $6)
+ (local.get $4)
)
)
- (i32.store
- (local.get $5)
- (local.get $6)
- )
- (i32.store offset=12
- (local.get $1)
- (local.get $6)
- )
- (i32.store offset=8
- (local.get $6)
- (local.get $1)
- )
- (i32.store offset=12
- (local.get $6)
- (local.get $2)
+ )
+ (i32.store
+ (i32.const 184)
+ (local.get $9)
+ )
+ (i32.store
+ (i32.const 196)
+ (local.get $7)
+ )
+ (return
+ (i32.add
+ (local.get $11)
+ (i32.const 8)
)
)
)
- (i32.store
- (i32.const 184)
- (local.get $11)
- )
- (i32.store
- (i32.const 196)
- (local.get $7)
- )
- (return
- (local.get $4)
- )
)
- )
- (if (result i32)
- (local.tee $0
- (i32.load
- (i32.const 180)
+ (if (result i32)
+ (local.tee $0
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (block
- (local.set $11
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.tee $0
- (i32.load offset=480
- (i32.shl
+ (block
+ (local.set $7
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (local.tee $0
+ (i32.load
(i32.add
- (i32.or
- (i32.or
+ (i32.shl
+ (i32.add
(i32.or
(i32.or
- (local.tee $0
- (i32.and
- (i32.shr_u
- (local.tee $1
- (i32.add
- (i32.and
- (local.get $0)
- (i32.sub
- (i32.const 0)
+ (i32.or
+ (i32.or
+ (local.tee $0
+ (i32.and
+ (i32.shr_u
+ (local.tee $1
+ (i32.add
+ (i32.and
+ (local.get $0)
+ (i32.sub
+ (i32.const 0)
+ (local.get $0)
+ )
+ )
+ (i32.const -1)
+ )
+ )
+ (i32.const 12)
+ )
+ (i32.const 16)
+ )
+ )
+ (local.tee $0
+ (i32.and
+ (i32.shr_u
+ (local.tee $1
+ (i32.shr_u
+ (local.get $1)
(local.get $0)
)
)
- (i32.const -1)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (i32.const 12)
)
- (i32.const 16)
+ )
+ (local.tee $0
+ (i32.and
+ (i32.shr_u
+ (local.tee $1
+ (i32.shr_u
+ (local.get $1)
+ (local.get $0)
+ )
+ )
+ (i32.const 2)
+ )
+ (i32.const 4)
+ )
)
)
(local.tee $0
@@ -8120,9 +8058,9 @@
(local.get $0)
)
)
- (i32.const 5)
+ (i32.const 1)
)
- (i32.const 8)
+ (i32.const 2)
)
)
)
@@ -8135,881 +8073,876 @@
(local.get $0)
)
)
- (i32.const 2)
- )
- (i32.const 4)
- )
- )
- )
- (local.tee $0
- (i32.and
- (i32.shr_u
- (local.tee $1
- (i32.shr_u
- (local.get $1)
- (local.get $0)
- )
+ (i32.const 1)
)
(i32.const 1)
)
- (i32.const 2)
)
)
- )
- (local.tee $0
- (i32.and
- (i32.shr_u
- (local.tee $1
- (i32.shr_u
- (local.get $1)
- (local.get $0)
- )
- )
- (i32.const 1)
- )
- (i32.const 1)
+ (i32.shr_u
+ (local.get $1)
+ (local.get $0)
)
)
+ (i32.const 2)
)
- (i32.shr_u
- (local.get $1)
- (local.get $0)
- )
+ (i32.const 480)
)
- (i32.const 2)
)
)
)
+ (i32.const -8)
)
- (i32.const -8)
+ (local.get $4)
)
- (local.get $2)
)
- )
- (local.set $7
- (local.get $0)
- )
- (loop $while-in
- (block $while-out
- (if
- (local.tee $1
- (i32.load offset=16
- (local.get $0)
- )
- )
- (local.set $0
- (local.get $1)
- )
+ (local.set $3
+ (local.tee $1
+ (local.get $0)
+ )
+ )
+ (loop $while-in
+ (block $while-out
(if
(i32.eqz
(local.tee $0
- (i32.load offset=20
- (local.get $0)
+ (i32.load
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
)
)
)
- (block
- (local.set $6
- (local.get $11)
+ (if
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (i32.add
+ (local.get $1)
+ (i32.const 20)
+ )
+ )
+ )
)
- (local.set $8
- (local.get $7)
+ (block
+ (local.set $9
+ (local.get $7)
+ )
+ (local.set $6
+ (local.get $3)
+ )
+ (br $while-out)
)
- (br $while-out)
)
)
- )
- (local.set $6
- (i32.lt_u
- (local.tee $1
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.get $0)
+ (local.set $9
+ (i32.lt_u
+ (local.tee $1
+ (i32.sub
+ (i32.and
+ (i32.load
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
+ )
+ (i32.const -8)
)
- (i32.const -8)
+ (local.get $4)
)
- (local.get $2)
)
+ (local.get $7)
)
- (local.get $11)
)
- )
- (local.set $11
- (select
- (local.get $1)
- (local.get $11)
- (local.get $6)
+ (local.set $7
+ (select
+ (local.get $1)
+ (local.get $7)
+ (local.get $9)
+ )
)
- )
- (local.set $7
- (select
- (local.get $0)
- (local.get $7)
- (local.get $6)
+ (local.set $3
+ (select
+ (local.tee $1
+ (local.get $0)
+ )
+ (local.get $3)
+ (local.get $9)
+ )
)
+ (br $while-in)
)
- (br $while-in)
)
- )
- (if
- (i32.lt_u
- (local.get $8)
- (local.tee $10
- (i32.load
- (i32.const 192)
+ (if
+ (i32.lt_u
+ (local.get $6)
+ (local.tee $11
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- (if
- (i32.ge_u
- (local.get $8)
- (local.tee $5
- (i32.add
- (local.get $2)
- (local.get $8)
+ (if
+ (i32.ge_u
+ (local.get $6)
+ (local.tee $12
+ (i32.add
+ (local.get $4)
+ (local.get $6)
+ )
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- (local.set $9
- (i32.load offset=24
- (local.get $8)
+ (local.set $8
+ (i32.load offset=24
+ (local.get $6)
+ )
)
- )
- (if
- (i32.eq
- (local.tee $0
- (i32.load offset=12
- (local.get $8)
+ (if
+ (i32.eq
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $6)
+ )
)
+ (local.get $6)
)
- (local.get $8)
- )
- (block $do-once4
- (if
- (i32.eqz
- (local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $8)
- (i32.const 20)
- )
- )
- )
+ (block $do-once4
+ (local.set $0
+ (i32.add
+ (local.get $6)
+ (i32.const 20)
)
)
- (br_if $do-once4
+ (if
(i32.eqz
(local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $8)
- (i32.const 16)
+ (i32.load offset=20
+ (local.get $6)
+ )
+ )
+ )
+ (block
+ (local.set $0
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
+ )
+ (br_if $do-once4
+ (i32.eqz
+ (local.tee $1
+ (i32.load offset=16
+ (local.get $6)
)
)
)
)
)
)
- )
- (loop $while-in7
- (if
- (local.tee $7
- (i32.load
- (local.tee $11
- (i32.add
- (local.get $1)
- (i32.const 20)
+ (loop $while-in7
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $7
+ (i32.add
+ (local.get $1)
+ (i32.const 20)
+ )
)
)
)
- )
- (block
- (local.set $1
- (local.get $7)
- )
- (local.set $0
- (local.get $11)
+ (block
+ (local.set $1
+ (local.get $3)
+ )
+ (local.set $0
+ (local.get $7)
+ )
+ (br $while-in7)
)
- (br $while-in7)
)
- )
- (if
- (local.tee $7
- (i32.load
- (local.tee $11
- (i32.add
- (local.get $1)
- (i32.const 16)
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $7
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
)
)
)
- )
- (block
- (local.set $1
- (local.get $7)
- )
- (local.set $0
- (local.get $11)
+ (block
+ (local.set $1
+ (local.get $3)
+ )
+ (local.set $0
+ (local.get $7)
+ )
+ (br $while-in7)
)
- (br $while-in7)
)
)
- )
- (if
- (i32.lt_u
- (local.get $0)
- (local.get $10)
- )
- (call $_abort)
- (block
- (i32.store
+ (if
+ (i32.lt_u
(local.get $0)
- (i32.const 0)
- )
- (local.set $4
- (local.get $1)
+ (local.get $11)
)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.tee $11
- (i32.load offset=8
- (local.get $8)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $0)
+ (i32.const 0)
)
- )
- (local.get $10)
- )
- (call $_abort)
- )
- (if
- (i32.ne
- (local.get $8)
- (i32.load
- (local.tee $7
- (i32.add
- (local.get $11)
- (i32.const 12)
- )
+ (local.set $10
+ (local.get $1)
)
)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
+ (block
+ (if
+ (i32.lt_u
(local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 8)
+ (i32.load offset=8
+ (local.get $6)
)
)
+ (local.get $11)
)
- (local.get $8)
+ (call $_abort)
)
- (block
- (i32.store
- (local.get $7)
- (local.get $0)
+ (if
+ (i32.ne
+ (local.get $6)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (i32.store
- (local.get $1)
- (local.get $11)
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load offset=8
+ (local.get $0)
+ )
+ (local.get $6)
)
- (local.set $4
- (local.get $0)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $10
+ (local.get $0)
+ )
)
+ (call $_abort)
)
- (call $_abort)
)
)
- )
- (if
- (local.get $9)
- (block $do-once8
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (i32.shl
- (local.tee $1
- (i32.load offset=28
- (local.get $8)
+ (if
+ (local.get $8)
+ (block $do-once8
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.tee $1
+ (i32.load offset=28
+ (local.get $6)
+ )
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
)
+ (local.get $6)
)
- (local.get $8)
- )
- (block
- (i32.store
- (local.get $0)
- (local.get $4)
- )
- (if
- (i32.eqz
- (local.get $4)
+ (block
+ (i32.store
+ (local.get $0)
+ (local.get $10)
)
- (block
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (if
+ (i32.eqz
+ (local.get $10)
+ )
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ (i32.const -1)
)
- (i32.const -1)
)
)
+ (br $do-once8)
)
- (br $do-once8)
)
)
- )
- (block
- (if
- (i32.lt_u
- (local.get $9)
- (i32.load
- (i32.const 192)
+ (block
+ (if
+ (i32.lt_u
+ (local.get $8)
+ (i32.load
+ (i32.const 192)
+ )
)
+ (call $_abort)
)
- (call $_abort)
- )
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $9)
- (i32.const 16)
- )
+ (if
+ (i32.eq
+ (i32.load offset=16
+ (local.get $8)
)
+ (local.get $6)
+ )
+ (i32.store offset=16
+ (local.get $8)
+ (local.get $10)
+ )
+ (i32.store offset=20
+ (local.get $8)
+ (local.get $10)
)
- (local.get $8)
- )
- (i32.store
- (local.get $0)
- (local.get $4)
- )
- (i32.store offset=20
- (local.get $9)
- (local.get $4)
)
- )
- (br_if $do-once8
- (i32.eqz
- (local.get $4)
+ (br_if $do-once8
+ (i32.eqz
+ (local.get $10)
+ )
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $4)
- (local.tee $0
- (i32.load
- (i32.const 192)
+ (if
+ (i32.lt_u
+ (local.get $10)
+ (local.tee $0
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- (i32.store offset=24
- (local.get $4)
- (local.get $9)
- )
- (if
- (local.tee $1
- (i32.load offset=16
- (local.get $8)
+ (i32.store
+ (i32.add
+ (local.get $10)
+ (i32.const 24)
)
+ (local.get $8)
)
(if
- (i32.lt_u
- (local.get $1)
- (local.get $0)
+ (local.tee $1
+ (i32.load offset=16
+ (local.get $6)
+ )
)
- (call $_abort)
- (block
- (i32.store offset=16
- (local.get $4)
+ (if
+ (i32.lt_u
(local.get $1)
+ (local.get $0)
)
- (i32.store offset=24
- (local.get $1)
- (local.get $4)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.add
+ (local.get $10)
+ (i32.const 16)
+ )
+ (local.get $1)
+ )
+ (i32.store offset=24
+ (local.get $1)
+ (local.get $10)
+ )
)
)
)
- )
- (if
- (local.tee $0
- (i32.load offset=20
- (local.get $8)
- )
- )
(if
- (i32.lt_u
- (local.get $0)
- (i32.load
- (i32.const 192)
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $6)
)
)
- (call $_abort)
- (block
- (i32.store offset=20
- (local.get $4)
+ (if
+ (i32.lt_u
(local.get $0)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.store offset=24
- (local.get $0)
- (local.get $4)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.add
+ (local.get $10)
+ (i32.const 20)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $10)
+ )
)
)
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $6)
- (i32.const 16)
- )
- (block
- (i32.store offset=4
- (local.get $8)
- (i32.or
- (local.tee $0
- (i32.add
- (local.get $2)
- (local.get $6)
+ (if
+ (i32.lt_u
+ (local.get $9)
+ (i32.const 16)
+ )
+ (block
+ (i32.store offset=4
+ (local.get $6)
+ (i32.or
+ (local.tee $0
+ (i32.add
+ (local.get $4)
+ (local.get $9)
+ )
)
+ (i32.const 3)
)
- (i32.const 3)
)
- )
- (i32.store
- (local.tee $0
- (i32.add
+ (i32.store offset=4
+ (local.tee $0
(i32.add
(local.get $0)
- (local.get $8)
+ (local.get $6)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.load
- (local.get $0)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const 1)
)
- (i32.const 1)
)
)
- )
- (block
- (i32.store offset=4
- (local.get $8)
- (i32.or
- (local.get $2)
- (i32.const 3)
- )
- )
- (i32.store offset=4
- (local.get $5)
- (i32.or
+ (block
+ (i32.store offset=4
(local.get $6)
- (i32.const 1)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
+ )
)
- )
- (i32.store
- (i32.add
- (local.get $5)
- (local.get $6)
+ (i32.store offset=4
+ (local.get $12)
+ (i32.or
+ (local.get $9)
+ (i32.const 1)
+ )
)
- (local.get $6)
- )
- (if
- (local.tee $0
- (i32.load
- (i32.const 184)
+ (i32.store
+ (i32.add
+ (local.get $9)
+ (local.get $12)
)
+ (local.get $9)
)
- (block
- (local.set $4
+ (if
+ (local.tee $0
(i32.load
- (i32.const 196)
+ (i32.const 184)
)
)
- (local.set $2
- (i32.add
- (i32.shl
- (local.tee $0
- (i32.shr_u
- (local.get $0)
- (i32.const 3)
- )
- )
- (i32.const 3)
+ (block
+ (local.set $4
+ (i32.load
+ (i32.const 196)
)
- (i32.const 216)
)
- )
- (if
- (i32.and
- (local.tee $1
- (i32.load
- (i32.const 176)
- )
- )
- (local.tee $0
+ (local.set $3
+ (i32.add
(i32.shl
- (i32.const 1)
- (local.get $0)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
+ )
+ )
+ (i32.const 3)
)
+ (i32.const 216)
)
)
(if
- (i32.lt_u
- (local.tee $0
+ (i32.and
+ (local.tee $1
(i32.load
- (local.tee $1
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
+ (i32.const 176)
)
)
- (i32.load
- (i32.const 192)
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
- (call $_abort)
(block
- (local.set $12
- (local.get $1)
+ (local.set $1
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
)
- (local.set $3
- (local.get $0)
+ (if
+ (i32.lt_u
+ (local.tee $0
+ (i32.load offset=8
+ (local.get $3)
+ )
+ )
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ (block
+ (local.set $5
+ (local.get $1)
+ )
+ (local.set $2
+ (local.get $0)
+ )
+ )
)
)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $0)
- (local.get $1)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
)
- )
- (local.set $12
- (i32.add
- (local.get $2)
- (i32.const 8)
+ (local.set $5
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
+ (local.set $2
+ (local.get $3)
)
)
- (local.set $3
+ )
+ (i32.store
+ (local.get $5)
+ (local.get $4)
+ )
+ (i32.store
+ (i32.add
(local.get $2)
+ (i32.const 12)
)
+ (local.get $4)
+ )
+ (i32.store offset=8
+ (local.get $4)
+ (local.get $2)
+ )
+ (i32.store offset=12
+ (local.get $4)
+ (local.get $3)
)
)
- (i32.store
- (local.get $12)
- (local.get $4)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $4)
- )
- (i32.store offset=8
- (local.get $4)
- (local.get $3)
- )
- (i32.store offset=12
- (local.get $4)
- (local.get $2)
- )
+ )
+ (i32.store
+ (i32.const 184)
+ (local.get $9)
+ )
+ (i32.store
+ (i32.const 196)
+ (local.get $12)
)
)
- (i32.store
- (i32.const 184)
+ )
+ (return
+ (i32.add
(local.get $6)
- )
- (i32.store
- (i32.const 196)
- (local.get $5)
+ (i32.const 8)
)
)
)
- (return
- (i32.add
- (local.get $8)
- (i32.const 8)
- )
- )
+ (local.get $4)
)
- (local.get $2)
)
+ (local.get $4)
)
- (local.get $2)
)
- )
- (if (result i32)
- (i32.gt_u
- (local.get $0)
- (i32.const -65)
- )
- (i32.const -1)
- (block $do-once (result i32)
- (local.set $2
- (i32.and
- (local.tee $0
- (i32.add
- (local.get $0)
- (i32.const 11)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $0)
+ (i32.const -65)
+ )
+ (i32.const -1)
+ (block $do-once (result i32)
+ (local.set $3
+ (i32.and
+ (local.tee $0
+ (i32.add
+ (local.get $0)
+ (i32.const 11)
+ )
)
+ (i32.const -8)
)
- (i32.const -8)
)
- )
- (if (result i32)
- (local.tee $18
- (i32.load
- (i32.const 180)
+ (if (result i32)
+ (local.tee $18
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (block (result i32)
- (local.set $14
- (if (result i32)
- (local.tee $0
- (i32.shr_u
- (local.get $0)
- (i32.const 8)
- )
- )
+ (block (result i32)
+ (local.set $14
(if (result i32)
- (i32.gt_u
- (local.get $2)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $4
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $0)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $3)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $4
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $0)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (local.set $3
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.get $4)
+ (local.set $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.get $4)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $2)
- (i32.add
- (local.tee $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $3)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
- (local.get $1)
- (local.get $4)
+ (i32.or
+ (local.get $1)
+ (local.get $4)
+ )
+ (local.get $2)
)
- (local.get $3)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $0)
- (local.get $3)
+ (i32.shr_u
+ (i32.shl
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $0)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
- )
- (local.set $3
- (i32.sub
- (i32.const 0)
- (local.get $2)
+ (local.set $2
+ (i32.sub
+ (i32.const 0)
+ (local.get $3)
+ )
)
- )
- (block $__rjto$3
- (block $__rjti$3
- (local.set $0
- (if (result i32)
- (local.tee $0
- (i32.load offset=480
- (i32.shl
- (local.get $14)
- (i32.const 2)
+ (block $__rjto$3
+ (block $__rjti$3
+ (local.set $0
+ (if (result i32)
+ (local.tee $0
+ (i32.load
+ (i32.add
+ (i32.shl
+ (local.get $14)
+ (i32.const 2)
+ )
+ (i32.const 480)
+ )
)
)
- )
- (block (result i32)
- (local.set $9
- (i32.shl
- (local.get $2)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
+ (block (result i32)
+ (local.set $8
+ (i32.shl
+ (local.get $3)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $14)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
(local.get $14)
- (i32.const 1)
+ (i32.const 31)
)
)
- (i32.eq
- (local.get $14)
- (i32.const 31)
- )
)
)
- )
- (local.set $1
- (i32.const 0)
- )
- (loop $while-in14 (result i32)
- (if
- (i32.lt_u
- (local.tee $4
- (i32.sub
- (local.tee $12
- (i32.and
- (i32.load offset=4
- (local.get $0)
+ (local.set $1
+ (i32.const 0)
+ )
+ (loop $while-in14 (result i32)
+ (if
+ (i32.lt_u
+ (local.tee $4
+ (i32.sub
+ (local.tee $10
+ (i32.and
+ (i32.load
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
+ )
+ (i32.const -8)
)
- (i32.const -8)
)
+ (local.get $3)
)
- (local.get $2)
)
+ (local.get $2)
)
- (local.get $3)
- )
- (local.set $1
- (if (result i32)
- (i32.eq
- (local.get $2)
- (local.get $12)
- )
- (block
- (local.set $1
- (local.get $4)
+ (local.set $1
+ (if (result i32)
+ (i32.eq
+ (local.get $3)
+ (local.get $10)
)
- (local.set $3
- (local.get $0)
+ (block
+ (local.set $1
+ (local.get $4)
+ )
+ (local.set $2
+ (local.get $0)
+ )
+ (br $__rjti$3)
)
- (br $__rjti$3)
- )
- (block (result i32)
- (local.set $3
- (local.get $4)
+ (block (result i32)
+ (local.set $2
+ (local.get $4)
+ )
+ (local.get $0)
)
- (local.get $0)
)
)
)
- )
- (local.set $0
- (select
- (local.get $5)
- (local.tee $4
- (i32.load offset=20
- (local.get $0)
- )
- )
- (i32.or
- (i32.eqz
- (local.get $4)
+ (local.set $0
+ (select
+ (local.get $5)
+ (local.tee $4
+ (i32.load
+ (i32.add
+ (local.get $0)
+ (i32.const 20)
+ )
+ )
)
- (i32.eq
- (local.get $4)
- (local.tee $12
- (i32.load
- (i32.add
+ (i32.or
+ (i32.eqz
+ (local.get $4)
+ )
+ (i32.eq
+ (local.get $4)
+ (local.tee $10
+ (i32.load
(i32.add
- (local.get $0)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $9)
- (i32.const 31)
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $8)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
@@ -9017,109 +8950,139 @@
)
)
)
- )
- (local.set $4
- (i32.shl
- (local.get $9)
- (i32.xor
- (local.tee $5
- (i32.eqz
- (local.get $12)
+ (local.set $4
+ (i32.shl
+ (local.get $8)
+ (i32.xor
+ (local.tee $5
+ (i32.eqz
+ (local.get $10)
+ )
)
+ (i32.const 1)
)
- (i32.const 1)
- )
- )
- )
- (if (result i32)
- (local.get $5)
- (block (result i32)
- (local.set $4
- (local.get $0)
)
- (local.get $1)
)
- (block
- (local.set $5
- (local.get $0)
- )
- (local.set $9
- (local.get $4)
+ (if (result i32)
+ (local.get $5)
+ (block (result i32)
+ (local.set $4
+ (local.get $0)
+ )
+ (local.get $1)
)
- (local.set $0
- (local.get $12)
+ (block
+ (local.set $5
+ (local.get $0)
+ )
+ (local.set $8
+ (local.get $4)
+ )
+ (local.set $0
+ (local.get $10)
+ )
+ (br $while-in14)
)
- (br $while-in14)
)
)
)
- )
- (block (result i32)
- (local.set $4
+ (block (result i32)
+ (local.set $4
+ (i32.const 0)
+ )
(i32.const 0)
)
- (i32.const 0)
)
)
- )
- (if
- (i32.eqz
- (i32.or
- (local.get $0)
- (local.get $4)
+ (if
+ (i32.eqz
+ (i32.or
+ (local.get $0)
+ (local.get $4)
+ )
)
- )
- (block
- (drop
- (br_if $do-once
- (local.get $2)
- (i32.eqz
- (local.tee $1
- (i32.and
- (local.get $18)
- (i32.or
- (local.tee $1
- (i32.shl
- (i32.const 2)
- (local.get $14)
+ (block
+ (drop
+ (br_if $do-once
+ (local.get $3)
+ (i32.eqz
+ (local.tee $1
+ (i32.and
+ (local.get $18)
+ (i32.or
+ (local.tee $1
+ (i32.shl
+ (i32.const 2)
+ (local.get $14)
+ )
+ )
+ (i32.sub
+ (i32.const 0)
+ (local.get $1)
)
- )
- (i32.sub
- (i32.const 0)
- (local.get $1)
)
)
)
)
)
)
- )
- (local.set $4
- (i32.load offset=480
- (i32.shl
+ (local.set $4
+ (i32.load
(i32.add
- (i32.or
- (i32.or
+ (i32.shl
+ (i32.add
(i32.or
(i32.or
- (local.tee $1
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.add
- (i32.and
- (local.get $1)
- (i32.sub
- (i32.const 0)
+ (i32.or
+ (i32.or
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (local.tee $4
+ (i32.add
+ (i32.and
+ (local.get $1)
+ (i32.sub
+ (i32.const 0)
+ (local.get $1)
+ )
+ )
+ (i32.const -1)
+ )
+ )
+ (i32.const 12)
+ )
+ (i32.const 16)
+ )
+ )
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (local.tee $4
+ (i32.shr_u
+ (local.get $4)
(local.get $1)
)
)
- (i32.const -1)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (i32.const 12)
)
- (i32.const 16)
+ )
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (local.tee $4
+ (i32.shr_u
+ (local.get $4)
+ (local.get $1)
+ )
+ )
+ (i32.const 2)
+ )
+ (i32.const 4)
+ )
)
)
(local.tee $1
@@ -9131,9 +9094,9 @@
(local.get $1)
)
)
- (i32.const 5)
+ (i32.const 1)
)
- (i32.const 8)
+ (i32.const 2)
)
)
)
@@ -9146,1889 +9109,1852 @@
(local.get $1)
)
)
- (i32.const 2)
- )
- (i32.const 4)
- )
- )
- )
- (local.tee $1
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $1)
- )
+ (i32.const 1)
)
(i32.const 1)
)
- (i32.const 2)
)
)
- )
- (local.tee $1
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $1)
- )
- )
- (i32.const 1)
- )
- (i32.const 1)
+ (i32.shr_u
+ (local.get $4)
+ (local.get $1)
)
)
+ (i32.const 2)
)
- (i32.shr_u
- (local.get $4)
- (local.get $1)
- )
+ (i32.const 480)
)
- (i32.const 2)
)
)
)
)
- )
- (local.set $4
- (if (result i32)
- (local.get $4)
- (block
- (local.set $1
- (local.get $3)
- )
- (local.set $3
- (local.get $4)
+ (local.set $4
+ (if (result i32)
+ (local.get $4)
+ (block
+ (local.set $1
+ (local.get $2)
+ )
+ (local.set $2
+ (local.get $4)
+ )
+ (br $__rjti$3)
)
- (br $__rjti$3)
+ (local.get $0)
)
- (local.get $0)
)
+ (br $__rjto$3)
)
- (br $__rjto$3)
- )
- (local.set $3
- (loop $while-in16 (result i32)
- (local.set $12
- (i32.lt_u
- (local.tee $4
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.get $3)
+ (local.set $2
+ (loop $while-in16 (result i32)
+ (local.set $10
+ (i32.lt_u
+ (local.tee $4
+ (i32.sub
+ (i32.and
+ (i32.load
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ )
+ (i32.const -8)
)
- (i32.const -8)
+ (local.get $3)
)
- (local.get $2)
)
+ (local.get $1)
)
- (local.get $1)
- )
- )
- (local.set $1
- (select
- (local.get $4)
- (local.get $1)
- (local.get $12)
)
- )
- (local.set $0
- (select
- (local.get $3)
- (local.get $0)
- (local.get $12)
+ (local.set $1
+ (select
+ (local.get $4)
+ (local.get $1)
+ (local.get $10)
+ )
)
- )
- (if
- (local.tee $4
- (i32.load offset=16
- (local.get $3)
+ (local.set $0
+ (select
+ (local.get $2)
+ (local.get $0)
+ (local.get $10)
)
)
- (block
- (local.set $3
- (local.get $4)
+ (if
+ (local.tee $4
+ (i32.load
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ )
+ )
+ (block
+ (local.set $2
+ (local.get $4)
+ )
+ (br $while-in16)
)
- (br $while-in16)
)
- )
- (br_if $while-in16
- (local.tee $3
- (i32.load offset=20
- (local.get $3)
+ (br_if $while-in16
+ (local.tee $2
+ (i32.load
+ (i32.add
+ (local.get $2)
+ (i32.const 20)
+ )
+ )
)
)
+ (local.set $4
+ (local.get $0)
+ )
+ (local.get $1)
)
- (local.set $4
- (local.get $0)
- )
- (local.get $1)
)
)
- )
- (if (result i32)
- (local.get $4)
(if (result i32)
- (i32.lt_u
- (local.get $3)
- (i32.sub
- (i32.load
- (i32.const 184)
- )
+ (local.get $4)
+ (if (result i32)
+ (i32.lt_u
(local.get $2)
- )
- )
- (block
- (if
- (i32.lt_u
- (local.get $4)
- (local.tee $8
- (i32.load
- (i32.const 192)
- )
+ (i32.sub
+ (i32.load
+ (i32.const 184)
)
+ (local.get $3)
)
- (call $_abort)
)
- (if
- (i32.ge_u
- (local.get $4)
- (local.tee $5
- (i32.add
- (local.get $2)
- (local.get $4)
+ (block
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (local.tee $11
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- (local.set $12
- (i32.load offset=24
- (local.get $4)
+ (if
+ (i32.ge_u
+ (local.get $4)
+ (local.tee $5
+ (i32.add
+ (local.get $3)
+ (local.get $4)
+ )
+ )
+ )
+ (call $_abort)
)
- )
- (if
- (i32.eq
- (local.tee $0
- (i32.load offset=12
+ (local.set $10
+ (i32.load
+ (i32.add
(local.get $4)
+ (i32.const 24)
)
)
- (local.get $4)
)
- (block $do-once17
- (if
- (i32.eqz
- (local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $4)
- (i32.const 20)
- )
- )
+ (if
+ (i32.eq
+ (local.tee $0
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 12)
)
)
)
- (br_if $do-once17
+ (local.get $4)
+ )
+ (block $do-once17
+ (if
(i32.eqz
(local.tee $1
(i32.load
(local.tee $0
(i32.add
(local.get $4)
- (i32.const 16)
+ (i32.const 20)
)
)
)
)
)
- )
- )
- (loop $while-in20
- (if
- (local.tee $7
- (i32.load
- (local.tee $11
- (i32.add
- (local.get $1)
- (i32.const 20)
+ (br_if $do-once17
+ (i32.eqz
+ (local.tee $1
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $4)
+ (i32.const 16)
+ )
+ )
)
)
)
)
- (block
- (local.set $1
- (local.get $7)
- )
- (local.set $0
- (local.get $11)
- )
- (br $while-in20)
- )
)
- (if
- (local.tee $7
- (i32.load
- (local.tee $11
- (i32.add
- (local.get $1)
- (i32.const 16)
+ (loop $while-in20
+ (if
+ (local.tee $7
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $1)
+ (i32.const 20)
+ )
)
)
)
+ (block
+ (local.set $1
+ (local.get $7)
+ )
+ (local.set $0
+ (local.get $9)
+ )
+ (br $while-in20)
+ )
)
- (block
- (local.set $1
- (local.get $7)
+ (if
+ (local.tee $7
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
+ )
+ )
)
- (local.set $0
- (local.get $11)
+ (block
+ (local.set $1
+ (local.get $7)
+ )
+ (local.set $0
+ (local.get $9)
+ )
+ (br $while-in20)
)
- (br $while-in20)
)
)
- )
- (if
- (i32.lt_u
- (local.get $0)
- (local.get $8)
- )
- (call $_abort)
- (block
- (i32.store
+ (if
+ (i32.lt_u
(local.get $0)
- (i32.const 0)
- )
- (local.set $10
- (local.get $1)
+ (local.get $11)
)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.tee $11
- (i32.load offset=8
- (local.get $4)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $0)
+ (i32.const 0)
)
- )
- (local.get $8)
- )
- (call $_abort)
- )
- (if
- (i32.ne
- (local.get $4)
- (i32.load
- (local.tee $7
- (i32.add
- (local.get $11)
- (i32.const 12)
- )
+ (local.set $12
+ (local.get $1)
)
)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
+ (block
+ (if
+ (i32.lt_u
(local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 8)
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 8)
+ )
)
)
+ (local.get $11)
)
- (local.get $4)
+ (call $_abort)
)
- (block
- (i32.store
- (local.get $7)
- (local.get $0)
+ (if
+ (i32.ne
+ (local.get $4)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (i32.store
- (local.get $1)
- (local.get $11)
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load offset=8
+ (local.get $0)
+ )
+ (local.get $4)
)
- (local.set $10
- (local.get $0)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $12
+ (local.get $0)
+ )
)
+ (call $_abort)
)
- (call $_abort)
)
)
- )
- (if
- (local.get $12)
- (block $do-once21
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (i32.shl
- (local.tee $1
- (i32.load offset=28
- (local.get $4)
+ (if
+ (local.get $10)
+ (block $do-once21
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.tee $1
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 28)
+ )
+ )
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
)
+ (local.get $4)
)
- (local.get $4)
- )
- (block
- (i32.store
- (local.get $0)
- (local.get $10)
- )
- (if
- (i32.eqz
- (local.get $10)
+ (block
+ (i32.store
+ (local.get $0)
+ (local.get $12)
)
- (block
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (if
+ (i32.eqz
+ (local.get $12)
+ )
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ (i32.const -1)
)
- (i32.const -1)
)
)
+ (br $do-once21)
)
- (br $do-once21)
)
)
- )
- (block
- (if
- (i32.lt_u
- (local.get $12)
- (i32.load
- (i32.const 192)
+ (block
+ (if
+ (i32.lt_u
+ (local.get $10)
+ (i32.load
+ (i32.const 192)
+ )
)
+ (call $_abort)
)
- (call $_abort)
- )
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $12)
- (i32.const 16)
- )
+ (if
+ (i32.eq
+ (i32.load offset=16
+ (local.get $10)
)
+ (local.get $4)
+ )
+ (i32.store offset=16
+ (local.get $10)
+ (local.get $12)
+ )
+ (i32.store offset=20
+ (local.get $10)
+ (local.get $12)
)
- (local.get $4)
- )
- (i32.store
- (local.get $0)
- (local.get $10)
- )
- (i32.store offset=20
- (local.get $12)
- (local.get $10)
)
- )
- (br_if $do-once21
- (i32.eqz
- (local.get $10)
+ (br_if $do-once21
+ (i32.eqz
+ (local.get $12)
+ )
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $10)
- (local.tee $0
- (i32.load
- (i32.const 192)
+ (if
+ (i32.lt_u
+ (local.get $12)
+ (local.tee $0
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- (i32.store offset=24
- (local.get $10)
- (local.get $12)
- )
- (if
- (local.tee $1
- (i32.load offset=16
- (local.get $4)
+ (i32.store
+ (i32.add
+ (local.get $12)
+ (i32.const 24)
)
+ (local.get $10)
)
(if
- (i32.lt_u
- (local.get $1)
- (local.get $0)
+ (local.tee $1
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 16)
+ )
+ )
)
- (call $_abort)
- (block
- (i32.store offset=16
- (local.get $10)
+ (if
+ (i32.lt_u
(local.get $1)
+ (local.get $0)
)
- (i32.store offset=24
- (local.get $1)
- (local.get $10)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.add
+ (local.get $12)
+ (i32.const 16)
+ )
+ (local.get $1)
+ )
+ (i32.store offset=24
+ (local.get $1)
+ (local.get $12)
+ )
)
)
)
- )
- (if
- (local.tee $0
- (i32.load offset=20
- (local.get $4)
- )
- )
(if
- (i32.lt_u
- (local.get $0)
+ (local.tee $0
(i32.load
- (i32.const 192)
+ (i32.add
+ (local.get $4)
+ (i32.const 20)
+ )
)
)
- (call $_abort)
- (block
- (i32.store offset=20
- (local.get $10)
+ (if
+ (i32.lt_u
(local.get $0)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.store offset=24
- (local.get $0)
- (local.get $10)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.add
+ (local.get $12)
+ (i32.const 20)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $12)
+ )
)
)
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $3)
- (i32.const 16)
- )
- (block
- (i32.store offset=4
- (local.get $4)
- (i32.or
- (local.tee $0
- (i32.add
- (local.get $2)
- (local.get $3)
+ (if
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 16)
+ )
+ (block
+ (i32.store
+ (i32.add
+ (local.get $4)
+ (i32.const 4)
+ )
+ (i32.or
+ (local.tee $0
+ (i32.add
+ (local.get $2)
+ (local.get $3)
+ )
)
+ (i32.const 3)
)
- (i32.const 3)
)
- )
- (i32.store
- (local.tee $0
- (i32.add
+ (i32.store offset=4
+ (local.tee $0
(i32.add
(local.get $0)
(local.get $4)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.load
- (local.get $0)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const 1)
)
- (i32.const 1)
- )
- )
- )
- (block $do-once25
- (i32.store offset=4
- (local.get $4)
- (i32.or
- (local.get $2)
- (i32.const 3)
)
)
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.get $3)
- (i32.const 1)
+ (block $do-once25
+ (i32.store
+ (i32.add
+ (local.get $4)
+ (i32.const 4)
+ )
+ (i32.or
+ (local.get $3)
+ (i32.const 3)
+ )
)
- )
- (i32.store
- (i32.add
- (local.get $3)
+ (i32.store offset=4
(local.get $5)
+ (i32.or
+ (local.get $2)
+ (i32.const 1)
+ )
)
- (local.get $3)
- )
- (local.set $0
- (i32.shr_u
- (local.get $3)
- (i32.const 3)
+ (i32.store
+ (i32.add
+ (local.get $2)
+ (local.get $5)
+ )
+ (local.get $2)
)
- )
- (if
- (i32.lt_u
- (local.get $3)
- (i32.const 256)
+ (local.set $0
+ (i32.shr_u
+ (local.get $2)
+ (i32.const 3)
+ )
)
- (block
- (local.set $3
- (i32.add
- (i32.shl
- (local.get $0)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (if
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 256)
)
- (if
- (i32.and
- (local.tee $1
- (i32.load
- (i32.const 176)
- )
- )
- (local.tee $0
+ (block
+ (local.set $2
+ (i32.add
(i32.shl
- (i32.const 1)
(local.get $0)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
(if
- (i32.lt_u
- (local.tee $0
+ (i32.and
+ (local.tee $1
(i32.load
- (local.tee $1
- (i32.add
- (local.get $3)
- (i32.const 8)
+ (i32.const 176)
+ )
+ )
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ )
+ )
+ (block
+ (local.set $1
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $0
+ (i32.load offset=8
+ (local.get $2)
)
)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ (block
+ (local.set $13
+ (local.get $1)
+ )
+ (local.set $6
+ (local.get $0)
+ )
)
- )
- (i32.load
- (i32.const 192)
)
)
- (call $_abort)
(block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
+ )
(local.set $13
- (local.get $1)
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
)
(local.set $6
- (local.get $0)
+ (local.get $2)
)
)
)
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $0)
- (local.get $1)
- )
- )
- (local.set $13
- (i32.add
- (local.get $3)
- (i32.const 8)
- )
- )
- (local.set $6
- (local.get $3)
+ (i32.store
+ (local.get $13)
+ (local.get $5)
+ )
+ (i32.store
+ (i32.add
+ (local.get $6)
+ (i32.const 12)
)
+ (local.get $5)
)
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $6)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $2)
+ )
+ (br $do-once25)
)
- (i32.store
- (local.get $13)
- (local.get $5)
- )
- (i32.store offset=12
- (local.get $6)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $6)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $3)
- )
- (br $do-once25)
)
- )
- (local.set $2
- (i32.add
- (i32.shl
- (local.tee $7
- (if (result i32)
- (local.tee $0
- (i32.shr_u
- (local.get $3)
- (i32.const 8)
- )
- )
+ (local.set $3
+ (i32.add
+ (i32.shl
+ (local.tee $7
(if (result i32)
- (i32.gt_u
- (local.get $3)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $2)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $7
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $0)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $2)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $7
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $0)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (local.set $2
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.get $7)
+ (local.set $3
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.get $7)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $3)
- (i32.add
- (local.tee $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $2)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
- (local.get $1)
- (local.get $7)
+ (i32.or
+ (local.get $1)
+ (local.get $7)
+ )
+ (local.get $3)
)
- (local.get $2)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $0)
- (local.get $2)
+ (i32.shr_u
+ (i32.shl
+ (local.get $0)
+ (local.get $3)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $0)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
- )
- (i32.store offset=28
- (local.get $5)
- (local.get $7)
- )
- (i32.store offset=4
- (local.tee $0
+ (i32.store offset=28
+ (local.get $5)
+ (local.get $7)
+ )
+ (i32.store offset=4
(i32.add
(local.get $5)
(i32.const 16)
)
+ (i32.const 0)
)
- (i32.const 0)
- )
- (i32.store
- (local.get $0)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $1
- (i32.load
- (i32.const 180)
+ (i32.store offset=16
+ (local.get $5)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $1
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (local.tee $0
- (i32.shl
- (i32.const 1)
- (local.get $7)
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
+ (local.get $7)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (local.get $0)
- (local.get $1)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
)
+ (i32.store
+ (local.get $3)
+ (local.get $5)
+ )
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
+ )
+ (br $do-once25)
)
- (i32.store
- (local.get $2)
- (local.get $5)
- )
- (i32.store offset=24
- (local.get $5)
- (local.get $2)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $5)
- )
- (br $do-once25)
)
- )
- (local.set $7
- (i32.shl
- (local.get $3)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
+ (local.set $7
+ (i32.shl
+ (local.get $2)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $7)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
(local.get $7)
- (i32.const 1)
+ (i32.const 31)
)
)
- (i32.eq
- (local.get $7)
- (i32.const 31)
- )
)
)
- )
- (local.set $0
- (i32.load
- (local.get $2)
+ (local.set $0
+ (i32.load
+ (local.get $3)
+ )
)
- )
- (block $__rjto$1
- (block $__rjti$1
- (loop $while-in28
- (br_if $__rjti$1
- (i32.eq
- (i32.and
- (i32.load offset=4
- (local.get $0)
+ (block $__rjto$1
+ (block $__rjti$1
+ (loop $while-in28
+ (br_if $__rjti$1
+ (i32.eq
+ (i32.and
+ (i32.load
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
+ )
+ (i32.const -8)
)
- (i32.const -8)
+ (local.get $2)
)
- (local.get $3)
)
- )
- (local.set $2
- (i32.shl
- (local.get $7)
- (i32.const 1)
+ (local.set $3
+ (i32.shl
+ (local.get $7)
+ (i32.const 1)
+ )
)
- )
- (if
- (local.tee $1
- (i32.load
- (local.tee $7
- (i32.add
+ (if
+ (local.tee $1
+ (i32.load
+ (local.tee $7
(i32.add
- (local.get $0)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $7)
- (i32.const 31)
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $7)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
)
+ (block
+ (local.set $7
+ (local.get $3)
+ )
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in28)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $7)
+ (i32.load
+ (i32.const 192)
+ )
)
+ (call $_abort)
(block
- (local.set $7
- (local.get $2)
+ (i32.store
+ (local.get $7)
+ (local.get $5)
)
- (local.set $0
- (local.get $1)
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $0)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
)
- (br $while-in28)
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
+ )
+ (br $do-once25)
)
)
+ (br $__rjto$1)
)
(if
- (i32.lt_u
- (local.get $7)
- (i32.load
- (i32.const 192)
+ (i32.and
+ (i32.ge_u
+ (local.tee $2
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (local.tee $1
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $1)
)
)
- (call $_abort)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=12
+ (local.get $2)
(local.get $5)
)
- (i32.store offset=24
- (local.get $5)
+ (i32.store offset=8
(local.get $0)
- )
- (i32.store offset=12
- (local.get $5)
(local.get $5)
)
(i32.store offset=8
(local.get $5)
- (local.get $5)
+ (local.get $2)
)
- (br $do-once25)
- )
- )
- (br $__rjto$1)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $2
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
- )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $0)
)
- (local.tee $1
- (i32.load
- (i32.const 192)
- )
+ (i32.store offset=24
+ (local.get $5)
+ (i32.const 0)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $1)
- )
- )
- (block
- (i32.store offset=12
- (local.get $2)
- (local.get $5)
- )
- (i32.store
- (local.get $3)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $2)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $0)
- )
- (i32.store offset=24
- (local.get $5)
- (i32.const 0)
- )
+ (call $_abort)
)
- (call $_abort)
)
)
)
- )
- (return
- (i32.add
- (local.get $4)
- (i32.const 8)
+ (return
+ (i32.add
+ (local.get $4)
+ (i32.const 8)
+ )
)
)
+ (local.get $3)
)
- (local.get $2)
+ (local.get $3)
)
- (local.get $2)
)
+ (local.get $3)
)
- (local.get $2)
)
)
)
)
- )
- (if
- (i32.ge_u
- (local.tee $1
- (i32.load
- (i32.const 184)
- )
- )
- (local.get $0)
- )
- (block
- (local.set $2
- (i32.load
- (i32.const 196)
+ (if
+ (i32.ge_u
+ (local.tee $1
+ (i32.load
+ (i32.const 184)
+ )
)
+ (local.get $0)
)
- (if
- (i32.gt_u
- (local.tee $3
- (i32.sub
- (local.get $1)
- (local.get $0)
- )
+ (block
+ (local.set $3
+ (i32.load
+ (i32.const 196)
)
- (i32.const 15)
)
- (block
- (i32.store
- (i32.const 196)
- (local.tee $1
- (i32.add
+ (if
+ (i32.gt_u
+ (local.tee $2
+ (i32.sub
+ (local.get $1)
(local.get $0)
- (local.get $2)
)
)
+ (i32.const 15)
)
- (i32.store
- (i32.const 184)
- (local.get $3)
- )
- (i32.store offset=4
- (local.get $1)
- (i32.or
- (local.get $3)
- (i32.const 1)
+ (block
+ (i32.store
+ (i32.const 196)
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (local.get $3)
+ )
+ )
)
- )
- (i32.store
- (i32.add
+ (i32.store
+ (i32.const 184)
+ (local.get $2)
+ )
+ (i32.store offset=4
(local.get $1)
+ (i32.or
+ (local.get $2)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $1)
+ (local.get $2)
+ )
+ (local.get $2)
+ )
+ (i32.store offset=4
(local.get $3)
+ (i32.or
+ (local.get $0)
+ (i32.const 3)
+ )
)
- (local.get $3)
)
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $0)
- (i32.const 3)
+ (block
+ (i32.store
+ (i32.const 184)
+ (i32.const 0)
)
- )
- )
- (block
- (i32.store
- (i32.const 184)
- (i32.const 0)
- )
- (i32.store
- (i32.const 196)
- (i32.const 0)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $1)
- (i32.const 3)
+ (i32.store
+ (i32.const 196)
+ (i32.const 0)
)
- )
- (i32.store
- (local.tee $0
- (i32.add
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.get $1)
+ (i32.const 3)
+ )
+ )
+ (i32.store offset=4
+ (local.tee $0
(i32.add
(local.get $1)
- (local.get $2)
+ (local.get $3)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.load
- (local.get $0)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const 1)
)
- (i32.const 1)
)
)
)
- )
- (return
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
+ (br $folding-inner1)
)
)
- )
- (block $folding-inner0
- (br_if $folding-inner0
- (i32.gt_u
- (local.tee $1
- (i32.load
- (i32.const 188)
+ (block $folding-inner0
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $1
+ (i32.load
+ (i32.const 188)
+ )
)
- )
- (local.get $0)
- )
- )
- (if
- (i32.eqz
- (i32.load
- (i32.const 648)
+ (local.get $0)
)
)
(if
- (i32.and
- (local.tee $1
- (call $_sysconf
- (i32.const 30)
- )
- )
- (i32.add
- (local.get $1)
- (i32.const -1)
+ (i32.eqz
+ (i32.load
+ (i32.const 648)
)
)
- (call $_abort)
- (block
- (i32.store
- (i32.const 656)
- (local.get $1)
- )
- (i32.store
- (i32.const 652)
- (local.get $1)
- )
- (i32.store
- (i32.const 660)
- (i32.const -1)
- )
- (i32.store
- (i32.const 664)
- (i32.const -1)
- )
- (i32.store
- (i32.const 668)
- (i32.const 0)
- )
- (i32.store
- (i32.const 620)
- (i32.const 0)
+ (if
+ (i32.and
+ (local.tee $1
+ (call $_sysconf
+ (i32.const 30)
+ )
+ )
+ (i32.add
+ (local.get $1)
+ (i32.const -1)
+ )
)
- (i32.store
- (i32.const 648)
- (i32.xor
- (i32.and
- (call $_time
- (i32.const 0)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.const 656)
+ (local.get $1)
+ )
+ (i32.store
+ (i32.const 652)
+ (local.get $1)
+ )
+ (i32.store
+ (i32.const 660)
+ (i32.const -1)
+ )
+ (i32.store
+ (i32.const 664)
+ (i32.const -1)
+ )
+ (i32.store
+ (i32.const 668)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 620)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 648)
+ (i32.xor
+ (i32.and
+ (call $_time
+ (i32.const 0)
+ )
+ (i32.const -16)
)
- (i32.const -16)
+ (i32.const 1431655768)
)
- (i32.const 1431655768)
)
)
)
)
- )
- (if
- (i32.le_u
- (local.tee $6
- (i32.and
- (local.tee $5
- (i32.add
- (local.tee $1
- (i32.load
- (i32.const 656)
+ (if
+ (i32.le_u
+ (local.tee $6
+ (i32.and
+ (local.tee $5
+ (i32.add
+ (local.tee $1
+ (i32.load
+ (i32.const 656)
+ )
)
- )
- (local.tee $9
- (i32.add
- (local.get $0)
- (i32.const 47)
+ (local.tee $8
+ (i32.add
+ (local.get $0)
+ (i32.const 47)
+ )
)
)
)
- )
- (local.tee $12
- (i32.sub
- (i32.const 0)
- (local.get $1)
+ (local.tee $10
+ (i32.sub
+ (i32.const 0)
+ (local.get $1)
+ )
)
)
)
+ (local.get $0)
)
- (local.get $0)
- )
- (return
- (i32.const 0)
- )
- )
- (if
- (local.tee $2
- (i32.load
- (i32.const 616)
+ (return
+ (i32.const 0)
)
)
(if
- (i32.or
- (i32.le_u
- (local.tee $1
- (i32.add
- (local.tee $3
- (i32.load
- (i32.const 608)
+ (local.tee $3
+ (i32.load
+ (i32.const 616)
+ )
+ )
+ (if
+ (i32.or
+ (i32.le_u
+ (local.tee $1
+ (i32.add
+ (local.tee $2
+ (i32.load
+ (i32.const 608)
+ )
)
+ (local.get $6)
)
- (local.get $6)
)
+ (local.get $2)
+ )
+ (i32.gt_u
+ (local.get $1)
+ (local.get $3)
)
- (local.get $3)
)
- (i32.gt_u
- (local.get $1)
- (local.get $2)
+ (return
+ (i32.const 0)
)
)
- (return
- (i32.const 0)
- )
)
- )
- (local.set $10
- (i32.add
- (local.get $0)
- (i32.const 48)
+ (local.set $12
+ (i32.add
+ (local.get $0)
+ (i32.const 48)
+ )
)
- )
- (block $__rjto$13
- (block $__rjti$13
- (if
- (i32.eqz
- (i32.and
- (i32.load
- (i32.const 620)
+ (block $__rjto$13
+ (block $__rjti$13
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (i32.const 620)
+ )
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (block
- (block $label$break$L279
- (block $__rjti$5
- (block $__rjti$4
- (br_if $__rjti$4
- (i32.eqz
- (local.tee $4
- (i32.load
- (i32.const 200)
+ (block
+ (block $label$break$L279
+ (block $__rjti$5
+ (block $__rjti$4
+ (br_if $__rjti$4
+ (i32.eqz
+ (local.tee $4
+ (i32.load
+ (i32.const 200)
+ )
)
)
)
- )
- (local.set $1
- (i32.const 624)
- )
- (loop $while-in34
- (block $while-out33
- (if
- (i32.le_u
- (local.tee $3
- (i32.load
- (local.get $1)
- )
- )
- (local.get $4)
- )
+ (local.set $1
+ (i32.const 624)
+ )
+ (loop $while-in34
+ (block $while-out33
(if
- (i32.gt_u
- (i32.add
- (local.get $3)
+ (i32.le_u
+ (local.tee $2
(i32.load
- (local.tee $2
- (i32.add
- (local.get $1)
- (i32.const 4)
- )
- )
+ (local.get $1)
)
)
(local.get $4)
)
- (block
- (local.set $4
- (local.get $1)
+ (if
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
+ )
+ )
+ )
+ (local.get $4)
+ )
+ (block
+ (local.set $4
+ (local.get $1)
+ )
+ (br $while-out33)
)
- (br $while-out33)
- )
- )
- )
- (br_if $while-in34
- (local.tee $1
- (i32.load offset=8
- (local.get $1)
)
)
- )
- (br $__rjti$4)
- )
- )
- (if
- (i32.lt_u
- (local.tee $3
- (i32.and
- (i32.sub
- (local.get $5)
+ (br_if $while-in34
+ (local.tee $1
(i32.load
- (i32.const 188)
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
)
)
- (local.get $12)
)
+ (br $__rjti$4)
)
- (i32.const 2147483647)
)
- (block
- (local.set $1
- (call $_sbrk
- (local.get $3)
- )
- )
- (if
- (i32.eq
- (i32.add
- (i32.load
- (local.get $4)
- )
- (i32.load
- (local.get $2)
+ (if
+ (i32.lt_u
+ (local.tee $2
+ (i32.and
+ (i32.sub
+ (local.get $5)
+ (i32.load
+ (i32.const 188)
+ )
)
+ (local.get $10)
)
- (local.get $1)
)
- (br_if $__rjti$13
- (i32.ne
- (local.get $1)
- (i32.const -1)
+ (i32.const 2147483647)
+ )
+ (block
+ (local.set $1
+ (call $_sbrk
+ (local.get $2)
)
)
- (block
- (local.set $2
+ (if
+ (i32.eq
+ (i32.add
+ (i32.load
+ (local.get $4)
+ )
+ (i32.load
+ (local.get $3)
+ )
+ )
(local.get $1)
)
- (br $__rjti$5)
+ (br_if $__rjti$13
+ (i32.ne
+ (local.get $1)
+ (i32.const -1)
+ )
+ )
+ (block
+ (local.set $3
+ (local.get $1)
+ )
+ (br $__rjti$5)
+ )
)
)
)
+ (br $label$break$L279)
)
- (br $label$break$L279)
- )
- (if
- (i32.ne
- (local.tee $1
- (call $_sbrk
- (i32.const 0)
+ (if
+ (i32.ne
+ (local.tee $1
+ (call $_sbrk
+ (i32.const 0)
+ )
)
+ (i32.const -1)
)
- (i32.const -1)
- )
- (block
- (local.set $3
- (if (result i32)
- (i32.and
- (local.tee $3
- (local.get $1)
- )
- (local.tee $2
- (i32.add
- (local.tee $4
- (i32.load
- (i32.const 652)
+ (block
+ (local.set $2
+ (if (result i32)
+ (i32.and
+ (local.tee $2
+ (local.get $1)
+ )
+ (local.tee $3
+ (i32.add
+ (local.tee $4
+ (i32.load
+ (i32.const 652)
+ )
)
+ (i32.const -1)
)
- (i32.const -1)
)
)
- )
- (i32.add
- (i32.sub
- (local.get $6)
- (local.get $3)
- )
- (i32.and
- (i32.add
+ (i32.add
+ (i32.sub
+ (local.get $6)
(local.get $2)
- (local.get $3)
)
- (i32.sub
- (i32.const 0)
- (local.get $4)
+ (i32.and
+ (i32.add
+ (local.get $2)
+ (local.get $3)
+ )
+ (i32.sub
+ (i32.const 0)
+ (local.get $4)
+ )
)
)
+ (local.get $6)
)
- (local.get $6)
)
- )
- (local.set $12
- (i32.add
- (local.tee $4
- (i32.load
- (i32.const 608)
+ (local.set $10
+ (i32.add
+ (local.tee $4
+ (i32.load
+ (i32.const 608)
+ )
)
- )
- (local.get $3)
- )
- )
- (if
- (i32.and
- (i32.lt_u
- (local.get $3)
- (i32.const 2147483647)
- )
- (i32.gt_u
- (local.get $3)
- (local.get $0)
+ (local.get $2)
)
)
- (block
- (if
- (local.tee $2
- (i32.load
- (i32.const 616)
- )
+ (if
+ (i32.and
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 2147483647)
)
- (br_if $label$break$L279
- (i32.or
- (i32.le_u
- (local.get $12)
- (local.get $4)
+ (i32.gt_u
+ (local.get $2)
+ (local.get $0)
+ )
+ )
+ (block
+ (if
+ (local.tee $3
+ (i32.load
+ (i32.const 616)
)
- (i32.gt_u
- (local.get $12)
- (local.get $2)
+ )
+ (br_if $label$break$L279
+ (i32.or
+ (i32.le_u
+ (local.get $10)
+ (local.get $4)
+ )
+ (i32.gt_u
+ (local.get $10)
+ (local.get $3)
+ )
)
)
)
- )
- (br_if $__rjti$13
- (i32.eq
- (local.get $1)
- (local.tee $2
- (call $_sbrk
- (local.get $3)
+ (br_if $__rjti$13
+ (i32.eq
+ (local.get $1)
+ (local.tee $3
+ (call $_sbrk
+ (local.get $2)
+ )
)
)
)
+ (br $__rjti$5)
)
- (br $__rjti$5)
)
)
)
+ (br $label$break$L279)
)
- (br $label$break$L279)
- )
- (local.set $1
- (local.get $3)
- )
- (local.set $4
- (i32.sub
- (i32.const 0)
- (local.get $1)
+ (local.set $1
+ (local.get $2)
)
- )
- (local.set $3
- (if (result i32)
- (i32.and
+ (local.set $4
+ (i32.sub
+ (i32.const 0)
+ (local.get $1)
+ )
+ )
+ (local.set $2
+ (if (result i32)
(i32.and
- (i32.ne
- (local.get $2)
- (i32.const -1)
+ (i32.and
+ (i32.ne
+ (local.get $3)
+ (i32.const -1)
+ )
+ (i32.lt_u
+ (local.get $1)
+ (i32.const 2147483647)
+ )
)
- (i32.lt_u
+ (i32.gt_u
+ (local.get $12)
(local.get $1)
- (i32.const 2147483647)
)
)
- (i32.gt_u
- (local.get $10)
- (local.get $1)
- )
- )
- (if (result i32)
- (i32.lt_u
- (local.tee $3
- (i32.and
- (i32.add
- (local.tee $3
- (i32.load
- (i32.const 656)
+ (if (result i32)
+ (i32.lt_u
+ (local.tee $2
+ (i32.and
+ (i32.add
+ (local.tee $2
+ (i32.load
+ (i32.const 656)
+ )
+ )
+ (i32.sub
+ (local.get $8)
+ (local.get $1)
)
)
(i32.sub
- (local.get $9)
- (local.get $1)
+ (i32.const 0)
+ (local.get $2)
)
)
- (i32.sub
- (i32.const 0)
- (local.get $3)
- )
)
+ (i32.const 2147483647)
)
- (i32.const 2147483647)
- )
- (if (result i32)
- (i32.eq
- (call $_sbrk
- (local.get $3)
- )
- (i32.const -1)
- )
- (block
- (drop
+ (if (result i32)
+ (i32.eq
(call $_sbrk
- (local.get $4)
+ (local.get $2)
)
+ (i32.const -1)
+ )
+ (block
+ (drop
+ (call $_sbrk
+ (local.get $4)
+ )
+ )
+ (br $label$break$L279)
+ )
+ (i32.add
+ (local.get $1)
+ (local.get $2)
)
- (br $label$break$L279)
- )
- (i32.add
- (local.get $1)
- (local.get $3)
)
+ (local.get $1)
)
(local.get $1)
)
- (local.get $1)
)
- )
- (if
- (i32.ne
- (local.get $2)
- (i32.const -1)
- )
- (block
- (local.set $1
- (local.get $2)
+ (if
+ (i32.ne
+ (local.get $3)
+ (i32.const -1)
+ )
+ (block
+ (local.set $1
+ (local.get $3)
+ )
+ (br $__rjti$13)
)
- (br $__rjti$13)
)
)
- )
- (i32.store
- (i32.const 620)
- (i32.or
- (i32.load
- (i32.const 620)
+ (i32.store
+ (i32.const 620)
+ (i32.or
+ (i32.load
+ (i32.const 620)
+ )
+ (i32.const 4)
)
- (i32.const 4)
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $6)
- (i32.const 2147483647)
- )
(if
- (i32.and
- (i32.lt_u
- (local.tee $1
- (call $_sbrk
- (local.get $6)
+ (i32.lt_u
+ (local.get $6)
+ (i32.const 2147483647)
+ )
+ (if
+ (i32.and
+ (i32.lt_u
+ (local.tee $1
+ (call $_sbrk
+ (local.get $6)
+ )
+ )
+ (local.tee $2
+ (call $_sbrk
+ (i32.const 0)
+ )
)
)
- (local.tee $3
- (call $_sbrk
- (i32.const 0)
+ (i32.and
+ (i32.ne
+ (local.get $1)
+ (i32.const -1)
+ )
+ (i32.ne
+ (local.get $2)
+ (i32.const -1)
)
)
)
- (i32.and
- (i32.ne
- (local.get $1)
- (i32.const -1)
- )
- (i32.ne
- (local.get $3)
- (i32.const -1)
+ (br_if $__rjti$13
+ (i32.gt_u
+ (local.tee $2
+ (i32.sub
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (i32.add
+ (local.get $0)
+ (i32.const 40)
+ )
)
)
)
- (br_if $__rjti$13
- (i32.gt_u
- (local.tee $3
- (i32.sub
- (local.get $3)
- (local.get $1)
- )
- )
- (i32.add
- (local.get $0)
- (i32.const 40)
- )
+ )
+ (br $__rjto$13)
+ )
+ (i32.store
+ (i32.const 608)
+ (local.tee $3
+ (i32.add
+ (i32.load
+ (i32.const 608)
)
+ (local.get $2)
)
)
)
- (br $__rjto$13)
- )
- (i32.store
- (i32.const 608)
- (local.tee $2
- (i32.add
+ (if
+ (i32.gt_u
+ (local.get $3)
(i32.load
- (i32.const 608)
+ (i32.const 612)
)
- (local.get $3)
)
- )
- )
- (if
- (i32.gt_u
- (local.get $2)
- (i32.load
+ (i32.store
(i32.const 612)
+ (local.get $3)
)
)
- (i32.store
- (i32.const 612)
- (local.get $2)
- )
- )
- (if
- (local.tee $5
- (i32.load
- (i32.const 200)
- )
- )
- (block $do-once40
- (local.set $2
- (i32.const 624)
+ (if
+ (local.tee $5
+ (i32.load
+ (i32.const 200)
+ )
)
- (block $__rjto$10
- (block $__rjti$10
- (loop $while-in45
- (br_if $__rjti$10
- (i32.eq
- (i32.add
- (local.tee $10
- (i32.load
- (local.get $2)
+ (block $do-once40
+ (local.set $3
+ (i32.const 624)
+ )
+ (block $__rjto$10
+ (block $__rjti$10
+ (loop $while-in45
+ (br_if $__rjti$10
+ (i32.eq
+ (i32.add
+ (local.tee $12
+ (i32.load
+ (local.get $3)
+ )
)
- )
- (local.tee $6
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $2)
- (i32.const 4)
+ (local.tee $6
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
)
)
)
)
+ (local.get $1)
)
- (local.get $1)
)
- )
- (br_if $while-in45
- (local.tee $2
- (i32.load offset=8
- (local.get $2)
+ (br_if $while-in45
+ (local.tee $3
+ (i32.load
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
)
)
)
- )
- (br $__rjto$10)
- )
- (if
- (i32.eqz
- (i32.and
- (i32.load offset=12
- (local.get $2)
- )
- (i32.const 8)
- )
+ (br $__rjto$10)
)
(if
- (i32.and
- (i32.lt_u
- (local.get $5)
- (local.get $1)
- )
- (i32.ge_u
- (local.get $5)
- (local.get $10)
- )
- )
- (block
- (i32.store
- (local.get $4)
- (i32.add
+ (i32.eqz
+ (i32.and
+ (i32.load offset=12
(local.get $3)
- (local.get $6)
)
+ (i32.const 8)
)
- (local.set $2
- (i32.add
+ )
+ (if
+ (i32.and
+ (i32.lt_u
(local.get $5)
- (local.tee $1
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $1
- (i32.add
- (local.get $5)
- (i32.const 8)
+ (local.get $1)
+ )
+ (i32.ge_u
+ (local.get $5)
+ (local.get $12)
+ )
+ )
+ (block
+ (i32.store
+ (local.get $4)
+ (i32.add
+ (local.get $2)
+ (local.get $6)
+ )
+ )
+ (local.set $3
+ (i32.add
+ (local.get $5)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $5)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $1)
- (i32.const 7)
)
)
)
)
- )
- (local.set $1
- (i32.add
- (i32.load
- (i32.const 188)
- )
- (i32.sub
- (local.get $3)
- (local.get $1)
+ (local.set $1
+ (i32.add
+ (i32.load
+ (i32.const 188)
+ )
+ (i32.sub
+ (local.get $2)
+ (local.get $1)
+ )
)
)
- )
- (i32.store
- (i32.const 200)
- (local.get $2)
- )
- (i32.store
- (i32.const 188)
- (local.get $1)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $1)
- (i32.const 1)
+ (i32.store
+ (i32.const 200)
+ (local.get $3)
)
- )
- (i32.store offset=4
- (i32.add
+ (i32.store
+ (i32.const 188)
(local.get $1)
- (local.get $2)
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (i32.add
+ (local.get $1)
+ (local.get $3)
+ )
+ (i32.const 40)
)
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
+ )
+ (br $do-once40)
)
- (br $do-once40)
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $1)
- (local.tee $4
- (i32.load
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.tee $4
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (block
+ (i32.store
(i32.const 192)
+ (local.get $1)
+ )
+ (local.set $4
+ (local.get $1)
)
)
)
- (block
- (i32.store
- (i32.const 192)
- (local.get $1)
- )
- (local.set $4
+ (local.set $12
+ (i32.add
(local.get $1)
+ (local.get $2)
)
)
- )
- (local.set $10
- (i32.add
- (local.get $1)
- (local.get $3)
+ (local.set $3
+ (i32.const 624)
)
- )
- (local.set $2
- (i32.const 624)
- )
- (local.set $4
- (block $__rjto$11 (result i32)
- (block $__rjti$11
- (br $__rjto$11
- (loop $while-in47 (result i32)
- (if
- (i32.eq
- (i32.load
- (local.get $2)
+ (local.set $4
+ (block $__rjto$11 (result i32)
+ (block $__rjti$11
+ (br $__rjto$11
+ (loop $while-in47 (result i32)
+ (if
+ (i32.eq
+ (i32.load
+ (local.get $3)
+ )
+ (local.get $12)
)
- (local.get $10)
- )
- (block
- (local.set $6
- (local.get $2)
+ (block
+ (local.set $6
+ (local.get $3)
+ )
+ (br $__rjti$11)
)
- (br $__rjti$11)
)
- )
- (br_if $while-in47
- (local.tee $2
- (i32.load offset=8
- (local.get $2)
+ (br_if $while-in47
+ (local.tee $3
+ (i32.load
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
)
)
+ (i32.const 624)
)
- (i32.const 624)
- )
- )
- )
- (if (result i32)
- (i32.and
- (i32.load offset=12
- (local.get $2)
)
- (i32.const 8)
)
- (i32.const 624)
- (block
- (i32.store
- (local.get $6)
- (local.get $1)
- )
- (i32.store
- (local.tee $2
- (i32.add
- (local.get $2)
- (i32.const 4)
- )
- )
- (i32.add
- (i32.load
- (local.get $2)
- )
+ (if (result i32)
+ (i32.and
+ (i32.load offset=12
(local.get $3)
)
+ (i32.const 8)
)
- (local.set $9
- (i32.add
- (local.tee $12
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $3
- (i32.add
- (local.get $1)
- (i32.const 8)
- )
- )
- )
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $3)
- (i32.const 7)
- )
- )
- (local.get $1)
+ (i32.const 624)
+ (block
+ (i32.store
+ (local.get $6)
+ (local.get $1)
+ )
+ (i32.store offset=4
+ (local.get $3)
+ (i32.add
+ (i32.load offset=4
+ (local.get $3)
)
+ (local.get $2)
)
- (local.get $0)
)
- )
- (local.set $7
- (i32.sub
- (i32.sub
- (local.tee $6
+ (local.set $8
+ (i32.add
+ (local.tee $10
(i32.add
- (local.get $10)
(select
(i32.and
(i32.sub
(i32.const 0)
- (local.tee $1
+ (local.tee $2
(i32.add
- (local.get $10)
+ (local.get $1)
(i32.const 8)
)
)
@@ -11037,1116 +10963,1146 @@
)
(i32.const 0)
(i32.and
- (local.get $1)
+ (local.get $2)
(i32.const 7)
)
)
+ (local.get $1)
)
)
- (local.get $12)
+ (local.get $0)
)
- (local.get $0)
- )
- )
- (i32.store offset=4
- (local.get $12)
- (i32.or
- (local.get $0)
- (i32.const 3)
- )
- )
- (if
- (i32.eq
- (local.get $5)
- (local.get $6)
)
- (block
- (i32.store
- (i32.const 188)
- (local.tee $0
- (i32.add
- (i32.load
- (i32.const 188)
+ (local.set $7
+ (i32.sub
+ (i32.sub
+ (local.tee $6
+ (i32.add
+ (local.get $12)
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $12)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
+ )
+ )
)
- (local.get $7)
)
+ (local.get $10)
)
+ (local.get $0)
)
- (i32.store
- (i32.const 200)
- (local.get $9)
- )
- (i32.store offset=4
- (local.get $9)
- (i32.or
- (local.get $0)
- (i32.const 1)
- )
+ )
+ (i32.store offset=4
+ (local.get $10)
+ (i32.or
+ (local.get $0)
+ (i32.const 3)
)
)
- (block $do-once48
- (if
- (i32.eq
- (i32.load
- (i32.const 196)
- )
- (local.get $6)
- )
- (block
- (i32.store
- (i32.const 184)
- (local.tee $0
- (i32.add
- (i32.load
- (i32.const 184)
- )
- (local.get $7)
+ (if
+ (i32.eq
+ (local.get $5)
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 188)
+ (local.tee $0
+ (i32.add
+ (i32.load
+ (i32.const 188)
)
+ (local.get $7)
)
)
- (i32.store
- (i32.const 196)
- (local.get $9)
- )
- (i32.store offset=4
- (local.get $9)
- (i32.or
- (local.get $0)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
- (local.get $0)
- (local.get $9)
- )
+ )
+ (i32.store
+ (i32.const 200)
+ (local.get $8)
+ )
+ (i32.store offset=4
+ (local.get $8)
+ (i32.or
(local.get $0)
+ (i32.const 1)
)
- (br $do-once48)
)
)
- (i32.store
- (local.tee $0
- (i32.add
- (if (result i32)
- (i32.eq
- (i32.and
- (local.tee $0
- (i32.load offset=4
- (local.get $6)
- )
+ (block $do-once48
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 196)
+ )
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 184)
+ (local.tee $0
+ (i32.add
+ (i32.load
+ (i32.const 184)
)
- (i32.const 3)
+ (local.get $7)
)
+ )
+ )
+ (i32.store
+ (i32.const 196)
+ (local.get $8)
+ )
+ (i32.store offset=4
+ (local.get $8)
+ (i32.or
+ (local.get $0)
(i32.const 1)
)
- (block (result i32)
- (local.set $10
+ )
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (local.get $8)
+ )
+ (local.get $0)
+ )
+ (br $do-once48)
+ )
+ )
+ (i32.store
+ (local.tee $0
+ (i32.add
+ (if (result i32)
+ (i32.eq
(i32.and
- (local.get $0)
- (i32.const -8)
- )
- )
- (local.set $1
- (i32.shr_u
- (local.get $0)
+ (local.tee $0
+ (i32.load offset=4
+ (local.get $6)
+ )
+ )
(i32.const 3)
)
+ (i32.const 1)
)
- (block $label$break$L331
- (if
- (i32.lt_u
+ (block (result i32)
+ (local.set $12
+ (i32.and
(local.get $0)
- (i32.const 256)
+ (i32.const -8)
)
- (block
- (local.set $2
- (i32.load offset=12
- (local.get $6)
- )
+ )
+ (local.set $1
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
+ )
+ )
+ (block $label$break$L331
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 256)
)
- (if
- (i32.ne
- (local.tee $3
- (i32.load offset=8
- (local.get $6)
- )
- )
- (local.tee $0
- (i32.add
- (i32.shl
- (local.get $1)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (block
+ (local.set $3
+ (i32.load offset=12
+ (local.get $6)
)
)
- (block $do-once51
- (if
- (i32.lt_u
- (local.get $3)
- (local.get $4)
+ (if
+ (i32.ne
+ (local.tee $2
+ (i32.load offset=8
+ (local.get $6)
+ )
)
- (call $_abort)
- )
- (br_if $do-once51
- (i32.eq
- (i32.load offset=12
- (local.get $3)
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.get $1)
+ (i32.const 3)
+ )
+ (i32.const 216)
)
- (local.get $6)
)
)
- (call $_abort)
- )
- )
- (if
- (i32.eq
- (local.get $2)
- (local.get $3)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.and
- (i32.load
- (i32.const 176)
+ (block $do-once51
+ (if
+ (i32.lt_u
+ (local.get $2)
+ (local.get $4)
)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (call $_abort)
+ )
+ (br_if $do-once51
+ (i32.eq
+ (i32.load offset=12
+ (local.get $2)
)
- (i32.const -1)
+ (local.get $6)
)
)
+ (call $_abort)
)
- (br $label$break$L331)
)
- )
- (if
- (i32.eq
- (local.get $0)
- (local.get $2)
- )
- (local.set $15
- (i32.add
+ (if
+ (i32.eq
(local.get $2)
- (i32.const 8)
+ (local.get $3)
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.and
+ (i32.load
+ (i32.const 176)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$L331)
)
)
- (block $do-once53
- (if
- (i32.lt_u
- (local.get $2)
- (local.get $4)
+ (if
+ (i32.eq
+ (local.get $0)
+ (local.get $3)
+ )
+ (local.set $15
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
+ (block $do-once53
+ (if
+ (i32.lt_u
+ (local.get $3)
+ (local.get $4)
)
- (local.get $6)
+ (call $_abort)
)
- (block
- (local.set $15
- (local.get $0)
+ (local.set $0
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
)
- (br $do-once53)
)
+ (if
+ (i32.eq
+ (i32.load offset=8
+ (local.get $3)
+ )
+ (local.get $6)
+ )
+ (block
+ (local.set $15
+ (local.get $0)
+ )
+ (br $do-once53)
+ )
+ )
+ (call $_abort)
)
- (call $_abort)
)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $2)
- )
- (i32.store
- (local.get $15)
- (local.get $3)
- )
- )
- (block
- (local.set $5
- (i32.load offset=24
- (local.get $6)
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $3)
+ )
+ (i32.store
+ (local.get $15)
+ (local.get $2)
)
)
- (if
- (i32.eq
- (local.tee $0
- (i32.load offset=12
- (local.get $6)
- )
+ (block
+ (local.set $5
+ (i32.load offset=24
+ (local.get $6)
)
- (local.get $6)
)
- (block $do-once55
- (if
- (i32.eqz
- (local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.tee $3
- (i32.add
- (local.get $6)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
- )
+ (if
+ (i32.eq
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $6)
)
)
- (block
- (br_if $do-once55
- (i32.eqz
- (local.tee $1
- (i32.load
- (local.get $3)
- )
+ (local.get $6)
+ )
+ (block $do-once55
+ (local.set $0
+ (i32.add
+ (local.tee $2
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
)
)
- )
- (local.set $0
- (local.get $3)
+ (i32.const 4)
)
)
- )
- (loop $while-in58
(if
- (local.tee $3
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $1)
- (i32.const 20)
- )
+ (i32.eqz
+ (local.tee $1
+ (i32.load offset=4
+ (local.get $2)
)
)
)
(block
- (local.set $1
- (local.get $3)
+ (br_if $do-once55
+ (i32.eqz
+ (local.tee $1
+ (i32.load offset=16
+ (local.get $6)
+ )
+ )
+ )
)
(local.set $0
(local.get $2)
)
- (br $while-in58)
)
)
- (if
- (local.tee $3
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $1)
- (i32.const 16)
+ (loop $while-in58
+ (if
+ (local.tee $2
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $1)
+ (i32.const 20)
+ )
)
)
)
+ (block
+ (local.set $1
+ (local.get $2)
+ )
+ (local.set $0
+ (local.get $3)
+ )
+ (br $while-in58)
+ )
)
- (block
- (local.set $1
- (local.get $3)
+ (if
+ (local.tee $2
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
+ )
+ )
)
- (local.set $0
- (local.get $2)
+ (block
+ (local.set $1
+ (local.get $2)
+ )
+ (local.set $0
+ (local.get $3)
+ )
+ (br $while-in58)
)
- (br $while-in58)
)
)
- )
- (if
- (i32.lt_u
- (local.get $0)
- (local.get $4)
- )
- (call $_abort)
- (block
- (i32.store
+ (if
+ (i32.lt_u
(local.get $0)
- (i32.const 0)
- )
- (local.set $8
- (local.get $1)
+ (local.get $4)
)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.tee $2
- (i32.load offset=8
- (local.get $6)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $0)
+ (i32.const 0)
)
- )
- (local.get $4)
- )
- (call $_abort)
- )
- (if
- (i32.ne
- (local.get $6)
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $2)
- (i32.const 12)
- )
+ (local.set $11
+ (local.get $1)
)
)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
+ (block
+ (if
+ (i32.lt_u
(local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 8)
+ (i32.load offset=8
+ (local.get $6)
)
)
+ (local.get $4)
)
- (local.get $6)
+ (call $_abort)
)
- (block
- (i32.store
- (local.get $3)
- (local.get $0)
+ (if
+ (i32.ne
+ (local.get $6)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (i32.store
- (local.get $1)
- (local.get $2)
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load offset=8
+ (local.get $0)
+ )
+ (local.get $6)
)
- (local.set $8
- (local.get $0)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $11
+ (local.get $0)
+ )
)
+ (call $_abort)
)
- (call $_abort)
)
)
- )
- (br_if $label$break$L331
- (i32.eqz
- (local.get $5)
+ (br_if $label$break$L331
+ (i32.eqz
+ (local.get $5)
+ )
)
- )
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (i32.shl
- (local.tee $1
- (i32.load offset=28
- (local.get $6)
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.tee $1
+ (i32.load offset=28
+ (local.get $6)
+ )
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
)
+ (local.get $6)
)
- (local.get $6)
- )
- (block $do-once59
- (i32.store
- (local.get $0)
- (local.get $8)
- )
- (br_if $do-once59
- (local.get $8)
+ (block $do-once59
+ (i32.store
+ (local.get $0)
+ (local.get $11)
+ )
+ (br_if $do-once59
+ (local.get $11)
+ )
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$L331)
)
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
+ (block
+ (if
+ (i32.lt_u
+ (local.get $5)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load offset=16
+ (local.get $5)
)
- (i32.const -1)
+ (local.get $6)
+ )
+ (i32.store offset=16
+ (local.get $5)
+ (local.get $11)
+ )
+ (i32.store offset=20
+ (local.get $5)
+ (local.get $11)
+ )
+ )
+ (br_if $label$break$L331
+ (i32.eqz
+ (local.get $11)
)
)
)
- (br $label$break$L331)
)
- (block
- (if
- (i32.lt_u
- (local.get $5)
+ (if
+ (i32.lt_u
+ (local.get $11)
+ (local.tee $0
(i32.load
(i32.const 192)
)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $5)
- (i32.const 16)
- )
- )
- )
+ (call $_abort)
+ )
+ (i32.store
+ (i32.add
+ (local.get $11)
+ (i32.const 24)
+ )
+ (local.get $5)
+ )
+ (if
+ (local.tee $1
+ (i32.load offset=16
(local.get $6)
)
- (i32.store
- (local.get $0)
- (local.get $8)
- )
- (i32.store offset=20
- (local.get $5)
- (local.get $8)
- )
)
- (br_if $label$break$L331
- (i32.eqz
- (local.get $8)
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $0)
)
- )
- )
- )
- (if
- (i32.lt_u
- (local.get $8)
- (local.tee $1
- (i32.load
- (i32.const 192)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.add
+ (local.get $11)
+ (i32.const 16)
+ )
+ (local.get $1)
+ )
+ (i32.store offset=24
+ (local.get $1)
+ (local.get $11)
+ )
)
)
)
- (call $_abort)
- )
- (i32.store offset=24
- (local.get $8)
- (local.get $5)
- )
- (if
- (local.tee $3
- (i32.load
+ (br_if $label$break$L331
+ (i32.eqz
(local.tee $0
- (i32.add
- (local.get $6)
- (i32.const 16)
+ (i32.load offset=4
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
)
)
)
)
(if
(i32.lt_u
- (local.get $3)
- (local.get $1)
+ (local.get $0)
+ (i32.load
+ (i32.const 192)
+ )
)
(call $_abort)
(block
- (i32.store offset=16
- (local.get $8)
- (local.get $3)
+ (i32.store
+ (i32.add
+ (local.get $11)
+ (i32.const 20)
+ )
+ (local.get $0)
)
(i32.store offset=24
- (local.get $3)
- (local.get $8)
- )
- )
- )
- )
- (br_if $label$break$L331
- (i32.eqz
- (local.tee $0
- (i32.load offset=4
(local.get $0)
+ (local.get $11)
)
)
)
)
- (if
- (i32.lt_u
- (local.get $0)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- (block
- (i32.store offset=20
- (local.get $8)
- (local.get $0)
- )
- (i32.store offset=24
- (local.get $0)
- (local.get $8)
- )
- )
- )
)
)
- )
- (local.set $7
+ (local.set $7
+ (i32.add
+ (local.get $7)
+ (local.get $12)
+ )
+ )
(i32.add
- (local.get $7)
- (local.get $10)
+ (local.get $6)
+ (local.get $12)
)
)
- (i32.add
- (local.get $6)
- (local.get $10)
- )
+ (local.get $6)
)
- (local.get $6)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (i32.and
- (i32.load
- (local.get $0)
+ (i32.and
+ (i32.load
+ (local.get $0)
+ )
+ (i32.const -2)
)
- (i32.const -2)
- )
- )
- (i32.store offset=4
- (local.get $9)
- (i32.or
- (local.get $7)
- (i32.const 1)
)
- )
- (i32.store
- (i32.add
- (local.get $7)
- (local.get $9)
+ (i32.store offset=4
+ (local.get $8)
+ (i32.or
+ (local.get $7)
+ (i32.const 1)
+ )
)
- (local.get $7)
- )
- (local.set $0
- (i32.shr_u
+ (i32.store
+ (i32.add
+ (local.get $7)
+ (local.get $8)
+ )
(local.get $7)
- (i32.const 3)
)
- )
- (if
- (i32.lt_u
- (local.get $7)
- (i32.const 256)
+ (local.set $0
+ (i32.shr_u
+ (local.get $7)
+ (i32.const 3)
+ )
)
- (block
- (local.set $3
- (i32.add
- (i32.shl
- (local.get $0)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (if
+ (i32.lt_u
+ (local.get $7)
+ (i32.const 256)
)
- (if
- (i32.and
- (local.tee $1
- (i32.load
- (i32.const 176)
- )
- )
- (local.tee $0
+ (block
+ (local.set $2
+ (i32.add
(i32.shl
- (i32.const 1)
(local.get $0)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
- (block $do-once63
- (if
- (i32.ge_u
- (local.tee $0
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $3)
- (i32.const 8)
- )
- )
- )
- )
+ (if
+ (i32.and
+ (local.tee $1
(i32.load
- (i32.const 192)
+ (i32.const 176)
)
)
- (block
- (local.set $16
- (local.get $1)
- )
- (local.set $11
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
(local.get $0)
)
- (br $do-once63)
)
)
- (call $_abort)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $0)
- (local.get $1)
+ (block $do-once63
+ (local.set $1
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ )
+ (if
+ (i32.ge_u
+ (local.tee $0
+ (i32.load offset=8
+ (local.get $2)
+ )
+ )
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (block
+ (local.set $16
+ (local.get $1)
+ )
+ (local.set $9
+ (local.get $0)
+ )
+ (br $do-once63)
+ )
)
+ (call $_abort)
)
- (local.set $16
- (i32.add
- (local.get $3)
- (i32.const 8)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (local.set $16
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ )
+ (local.set $9
+ (local.get $2)
)
)
- (local.set $11
- (local.get $3)
+ )
+ (i32.store
+ (local.get $16)
+ (local.get $8)
+ )
+ (i32.store
+ (i32.add
+ (local.get $9)
+ (i32.const 12)
)
+ (local.get $8)
)
+ (i32.store offset=8
+ (local.get $8)
+ (local.get $9)
+ )
+ (i32.store offset=12
+ (local.get $8)
+ (local.get $2)
+ )
+ (br $do-once48)
)
- (i32.store
- (local.get $16)
- (local.get $9)
- )
- (i32.store offset=12
- (local.get $11)
- (local.get $9)
- )
- (i32.store offset=8
- (local.get $9)
- (local.get $11)
- )
- (i32.store offset=12
- (local.get $9)
- (local.get $3)
- )
- (br $do-once48)
)
- )
- (local.set $3
- (i32.add
- (i32.shl
- (local.tee $2
- (if (result i32)
- (local.tee $0
- (i32.shr_u
- (local.get $7)
- (i32.const 8)
- )
- )
+ (local.set $2
+ (i32.add
+ (i32.shl
+ (local.tee $3
(if (result i32)
- (i32.gt_u
- (local.get $7)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $7)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $2
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $0)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $7)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $3
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $0)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (local.set $3
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.get $2)
+ (local.set $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.get $3)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $7)
- (i32.add
- (local.tee $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $7)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
- (local.get $1)
+ (i32.or
+ (local.get $1)
+ (local.get $3)
+ )
(local.get $2)
)
- (local.get $3)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $0)
- (local.get $3)
+ (i32.shr_u
+ (i32.shl
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $0)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
- )
- (i32.store offset=28
- (local.get $9)
- (local.get $2)
- )
- (i32.store offset=4
- (local.tee $0
+ (i32.store offset=28
+ (local.get $8)
+ (local.get $3)
+ )
+ (i32.store offset=4
(i32.add
- (local.get $9)
+ (local.get $8)
(i32.const 16)
)
+ (i32.const 0)
)
- (i32.const 0)
- )
- (i32.store
- (local.get $0)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $1
- (i32.load
- (i32.const 180)
+ (i32.store offset=16
+ (local.get $8)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $1
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (local.tee $0
- (i32.shl
- (i32.const 1)
- (local.get $2)
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
+ (local.get $3)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (local.get $0)
- (local.get $1)
- )
- )
- (i32.store
- (local.get $3)
- (local.get $9)
- )
- (i32.store offset=24
- (local.get $9)
- (local.get $3)
- )
- (i32.store offset=12
- (local.get $9)
- (local.get $9)
- )
- (i32.store offset=8
- (local.get $9)
- (local.get $9)
- )
- (br $do-once48)
- )
- )
- (local.set $2
- (i32.shl
- (local.get $7)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (local.get $2)
- (i32.const 1)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
)
)
- (i32.eq
+ (i32.store
+ (local.get $2)
+ (local.get $8)
+ )
+ (i32.store offset=24
+ (local.get $8)
(local.get $2)
- (i32.const 31)
)
+ (i32.store offset=12
+ (local.get $8)
+ (local.get $8)
+ )
+ (i32.store offset=8
+ (local.get $8)
+ (local.get $8)
+ )
+ (br $do-once48)
)
)
- )
- (local.set $0
- (i32.load
- (local.get $3)
- )
- )
- (block $__rjto$7
- (block $__rjti$7
- (loop $while-in68
- (br_if $__rjti$7
- (i32.eq
- (i32.and
- (i32.load offset=4
- (local.get $0)
- )
- (i32.const -8)
+ (local.set $3
+ (i32.shl
+ (local.get $7)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $3)
+ (i32.const 1)
)
- (local.get $7)
)
- )
- (local.set $3
- (i32.shl
- (local.get $2)
- (i32.const 1)
+ (i32.eq
+ (local.get $3)
+ (i32.const 31)
)
)
- (if
- (local.tee $1
- (i32.load
- (local.tee $2
- (i32.add
+ )
+ )
+ (local.set $0
+ (i32.load
+ (local.get $2)
+ )
+ )
+ (block $__rjto$7
+ (block $__rjti$7
+ (loop $while-in68
+ (br_if $__rjti$7
+ (i32.eq
+ (i32.and
+ (i32.load
(i32.add
(local.get $0)
- (i32.const 16)
+ (i32.const 4)
)
- (i32.shl
- (i32.shr_u
- (local.get $2)
- (i32.const 31)
+ )
+ (i32.const -8)
+ )
+ (local.get $7)
+ )
+ )
+ (local.set $2
+ (i32.shl
+ (local.get $3)
+ (i32.const 1)
+ )
+ )
+ (if
+ (local.tee $1
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $3)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
)
+ (block
+ (local.set $3
+ (local.get $2)
+ )
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in68)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $3)
+ (i32.load
+ (i32.const 192)
+ )
)
+ (call $_abort)
(block
- (local.set $2
+ (i32.store
(local.get $3)
+ (local.get $8)
)
- (local.set $0
- (local.get $1)
+ (i32.store offset=24
+ (local.get $8)
+ (local.get $0)
)
- (br $while-in68)
+ (i32.store offset=12
+ (local.get $8)
+ (local.get $8)
+ )
+ (i32.store offset=8
+ (local.get $8)
+ (local.get $8)
+ )
+ (br $do-once48)
)
)
+ (br $__rjto$7)
)
(if
- (i32.lt_u
- (local.get $2)
- (i32.load
- (i32.const 192)
+ (i32.and
+ (i32.ge_u
+ (local.tee $2
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (local.tee $1
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $1)
)
)
- (call $_abort)
(block
- (i32.store
+ (i32.store offset=12
(local.get $2)
- (local.get $9)
+ (local.get $8)
)
- (i32.store offset=24
- (local.get $9)
+ (i32.store offset=8
(local.get $0)
- )
- (i32.store offset=12
- (local.get $9)
- (local.get $9)
+ (local.get $8)
)
(i32.store offset=8
- (local.get $9)
- (local.get $9)
+ (local.get $8)
+ (local.get $2)
)
- (br $do-once48)
- )
- )
- (br $__rjto$7)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $2
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
- )
+ (i32.store offset=12
+ (local.get $8)
+ (local.get $0)
)
- (local.tee $1
- (i32.load
- (i32.const 192)
- )
+ (i32.store offset=24
+ (local.get $8)
+ (i32.const 0)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $1)
- )
- )
- (block
- (i32.store offset=12
- (local.get $2)
- (local.get $9)
- )
- (i32.store
- (local.get $3)
- (local.get $9)
- )
- (i32.store offset=8
- (local.get $9)
- (local.get $2)
- )
- (i32.store offset=12
- (local.get $9)
- (local.get $0)
- )
- (i32.store offset=24
- (local.get $9)
- (i32.const 0)
- )
+ (call $_abort)
)
- (call $_abort)
)
)
)
- )
- (return
- (i32.add
- (local.get $12)
- (i32.const 8)
+ (return
+ (i32.add
+ (local.get $10)
+ (i32.const 8)
+ )
)
)
)
)
)
- )
- (loop $while-in70
- (block $while-out69
- (if
- (i32.le_u
- (local.tee $2
- (i32.load
- (local.get $4)
+ (loop $while-in70
+ (block $while-out69
+ (if
+ (i32.le_u
+ (local.tee $3
+ (i32.load
+ (local.get $4)
+ )
)
+ (local.get $5)
)
- (local.get $5)
- )
- (br_if $while-out69
- (i32.gt_u
- (local.tee $2
- (i32.add
- (local.get $2)
- (i32.load offset=4
- (local.get $4)
+ (br_if $while-out69
+ (i32.gt_u
+ (local.tee $3
+ (i32.add
+ (local.get $3)
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 4)
+ )
+ )
)
)
+ (local.get $5)
)
- (local.get $5)
)
)
- )
- (local.set $4
- (i32.load offset=8
- (local.get $4)
+ (local.set $4
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 8)
+ )
+ )
)
+ (br $while-in70)
)
- (br $while-in70)
)
- )
- (local.set $11
- (i32.add
- (local.tee $4
- (i32.add
- (local.get $2)
- (i32.const -47)
+ (local.set $9
+ (i32.add
+ (local.tee $4
+ (i32.add
+ (local.get $3)
+ (i32.const -47)
+ )
)
+ (i32.const 8)
)
- (i32.const 8)
)
- )
- (local.set $8
- (i32.add
- (local.tee $10
- (select
- (local.get $5)
- (local.tee $4
- (i32.add
- (local.get $4)
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.get $11)
+ (local.set $6
+ (i32.add
+ (local.tee $11
+ (select
+ (local.get $5)
+ (local.tee $4
+ (i32.add
+ (local.get $4)
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.get $9)
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $9)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $11)
- (i32.const 7)
)
)
)
- )
- (i32.lt_u
- (local.get $4)
- (local.tee $11
+ (i32.lt_u
+ (local.get $4)
(i32.add
(local.get $5)
(i32.const 16)
@@ -12154,791 +12110,790 @@
)
)
)
+ (i32.const 8)
)
- (i32.const 8)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $6
- (i32.add
- (local.tee $4
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $4
- (i32.add
- (local.get $1)
- (i32.const 8)
+ (i32.store
+ (i32.const 200)
+ (local.tee $9
+ (i32.add
+ (local.tee $4
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $4
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $4)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $4)
- (i32.const 7)
)
)
+ (local.get $1)
)
- (local.get $1)
)
)
- )
- (i32.store
- (i32.const 188)
- (local.tee $4
- (i32.sub
- (i32.add
- (local.get $3)
- (i32.const -40)
+ (i32.store
+ (i32.const 188)
+ (local.tee $4
+ (i32.sub
+ (i32.add
+ (local.get $2)
+ (i32.const -40)
+ )
+ (local.get $4)
)
+ )
+ )
+ (i32.store offset=4
+ (local.get $9)
+ (i32.or
+ (local.get $4)
+ (i32.const 1)
+ )
+ )
+ (i32.store offset=4
+ (i32.add
(local.get $4)
+ (local.get $9)
)
+ (i32.const 40)
)
- )
- (i32.store offset=4
- (local.get $6)
- (i32.or
- (local.get $4)
- (i32.const 1)
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
)
- )
- (i32.store offset=4
- (i32.add
- (local.get $4)
+ (i32.store offset=4
+ (local.get $11)
+ (i32.const 27)
+ )
+ (i32.store offset=8
+ (local.get $11)
+ (i32.load
+ (i32.const 624)
+ )
+ )
+ (i32.store offset=4
(local.get $6)
+ (i32.load
+ (i32.const 628)
+ )
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (i32.store offset=8
+ (local.get $6)
+ (i32.load
+ (i32.const 632)
+ )
)
- )
- (i32.store
- (local.tee $4
- (i32.add
- (local.get $10)
- (i32.const 4)
+ (i32.store offset=12
+ (local.get $6)
+ (i32.load
+ (i32.const 636)
)
)
- (i32.const 27)
- )
- (i32.store
- (local.get $8)
- (i32.load
+ (i32.store
(i32.const 624)
+ (local.get $1)
)
- )
- (i32.store offset=4
- (local.get $8)
- (i32.load
+ (i32.store
(i32.const 628)
+ (local.get $2)
)
- )
- (i32.store offset=8
- (local.get $8)
- (i32.load
- (i32.const 632)
- )
- )
- (i32.store offset=12
- (local.get $8)
- (i32.load
+ (i32.store
(i32.const 636)
+ (i32.const 0)
)
- )
- (i32.store
- (i32.const 624)
- (local.get $1)
- )
- (i32.store
- (i32.const 628)
- (local.get $3)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 632)
- (local.get $8)
- )
- (local.set $1
- (i32.add
- (local.get $10)
- (i32.const 24)
- )
- )
- (loop $while-in72
(i32.store
- (local.tee $1
- (i32.add
- (local.get $1)
- (i32.const 4)
- )
- )
- (i32.const 7)
+ (i32.const 632)
+ (local.get $6)
)
- (br_if $while-in72
- (i32.lt_u
- (i32.add
- (local.get $1)
- (i32.const 4)
- )
- (local.get $2)
+ (local.set $1
+ (i32.add
+ (local.get $11)
+ (i32.const 24)
)
)
- )
- (if
- (i32.ne
- (local.get $5)
- (local.get $10)
- )
- (block
+ (loop $while-in72
(i32.store
- (local.get $4)
- (i32.and
- (i32.load
- (local.get $4)
+ (local.tee $1
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const -2)
)
+ (i32.const 7)
)
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.tee $6
- (i32.sub
- (local.get $10)
- (local.get $5)
- )
+ (br_if $while-in72
+ (i32.lt_u
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const 1)
+ (local.get $3)
)
)
- (i32.store
- (local.get $10)
- (local.get $6)
- )
- (local.set $1
- (i32.shr_u
- (local.get $6)
- (i32.const 3)
- )
+ )
+ (if
+ (i32.ne
+ (local.get $5)
+ (local.get $11)
)
- (if
- (i32.lt_u
- (local.get $6)
- (i32.const 256)
+ (block
+ (i32.store offset=4
+ (local.get $11)
+ (i32.and
+ (i32.load offset=4
+ (local.get $11)
+ )
+ (i32.const -2)
+ )
)
- (block
- (local.set $2
- (i32.add
- (i32.shl
- (local.get $1)
- (i32.const 3)
+ (i32.store offset=4
+ (local.get $5)
+ (i32.or
+ (local.tee $9
+ (i32.sub
+ (local.get $11)
+ (local.get $5)
)
- (i32.const 216)
)
+ (i32.const 1)
)
- (if
- (i32.and
- (local.tee $3
- (i32.load
- (i32.const 176)
- )
- )
- (local.tee $1
+ )
+ (i32.store
+ (local.get $11)
+ (local.get $9)
+ )
+ (local.set $1
+ (i32.shr_u
+ (local.get $9)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $9)
+ (i32.const 256)
+ )
+ (block
+ (local.set $3
+ (i32.add
(i32.shl
- (i32.const 1)
(local.get $1)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
(if
- (i32.lt_u
- (local.tee $1
+ (i32.and
+ (local.tee $2
(i32.load
- (local.tee $3
- (i32.add
- (local.get $2)
- (i32.const 8)
+ (i32.const 176)
+ )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ )
+ )
+ (block
+ (local.set $2
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $3)
)
)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ (block
+ (local.set $17
+ (local.get $2)
+ )
+ (local.set $7
+ (local.get $1)
+ )
)
- )
- (i32.load
- (i32.const 192)
)
)
- (call $_abort)
(block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $1)
+ (local.get $2)
+ )
+ )
(local.set $17
- (local.get $3)
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
)
(local.set $7
- (local.get $1)
- )
- )
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $1)
(local.get $3)
)
)
- (local.set $17
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
- (local.set $7
- (local.get $2)
+ )
+ (i32.store
+ (local.get $17)
+ (local.get $5)
+ )
+ (i32.store
+ (i32.add
+ (local.get $7)
+ (i32.const 12)
)
+ (local.get $5)
)
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $7)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $3)
+ )
+ (br $do-once40)
)
- (i32.store
- (local.get $17)
- (local.get $5)
- )
- (i32.store offset=12
- (local.get $7)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $7)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $2)
- )
- (br $do-once40)
)
- )
- (local.set $2
- (i32.add
- (i32.shl
- (local.tee $4
- (if (result i32)
- (local.tee $1
- (i32.shr_u
- (local.get $6)
- (i32.const 8)
- )
- )
+ (local.set $3
+ (i32.add
+ (i32.shl
+ (local.tee $4
(if (result i32)
- (i32.gt_u
- (local.get $6)
- (i32.const 16777215)
+ (local.tee $1
+ (i32.shr_u
+ (local.get $9)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $4
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $1
- (i32.shl
- (local.get $1)
- (local.tee $3
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $1)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $9)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $4
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $1
+ (i32.shl
+ (local.get $1)
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $1)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (local.set $2
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $1
- (i32.shl
- (local.get $1)
- (local.get $4)
+ (local.set $3
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $1
+ (i32.shl
+ (local.get $1)
+ (local.get $4)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $6)
- (i32.add
- (local.tee $1
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $9)
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
+ (i32.or
+ (local.get $2)
+ (local.get $4)
+ )
(local.get $3)
- (local.get $4)
)
- (local.get $2)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $1)
- (local.get $2)
+ (i32.shr_u
+ (i32.shl
+ (local.get $1)
+ (local.get $3)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $1)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $1)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
- )
- (i32.store offset=28
- (local.get $5)
- (local.get $4)
- )
- (i32.store offset=20
- (local.get $5)
- (i32.const 0)
- )
- (i32.store
- (local.get $11)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $3
- (i32.load
- (i32.const 180)
+ (i32.store offset=28
+ (local.get $5)
+ (local.get $4)
+ )
+ (i32.store offset=20
+ (local.get $5)
+ (i32.const 0)
+ )
+ (i32.store offset=16
+ (local.get $5)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $2
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (local.tee $1
- (i32.shl
- (i32.const 1)
- (local.get $4)
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $4)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (local.get $1)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (local.get $1)
+ (local.get $2)
+ )
+ )
+ (i32.store
(local.get $3)
+ (local.get $5)
)
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
+ )
+ (br $do-once40)
)
- (i32.store
- (local.get $2)
- (local.get $5)
- )
- (i32.store offset=24
- (local.get $5)
- (local.get $2)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $5)
- )
- (br $do-once40)
)
- )
- (local.set $4
- (i32.shl
- (local.get $6)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
+ (local.set $4
+ (i32.shl
+ (local.get $9)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
(local.get $4)
- (i32.const 1)
+ (i32.const 31)
)
)
- (i32.eq
- (local.get $4)
- (i32.const 31)
- )
)
)
- )
- (local.set $1
- (i32.load
- (local.get $2)
+ (local.set $1
+ (i32.load
+ (local.get $3)
+ )
)
- )
- (block $__rjto$9
- (block $__rjti$9
- (loop $while-in74
- (br_if $__rjti$9
- (i32.eq
- (i32.and
- (i32.load offset=4
- (local.get $1)
+ (block $__rjto$9
+ (block $__rjti$9
+ (loop $while-in74
+ (br_if $__rjti$9
+ (i32.eq
+ (i32.and
+ (i32.load
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
+ )
+ (i32.const -8)
)
- (i32.const -8)
+ (local.get $9)
)
- (local.get $6)
)
- )
- (local.set $2
- (i32.shl
- (local.get $4)
- (i32.const 1)
+ (local.set $3
+ (i32.shl
+ (local.get $4)
+ (i32.const 1)
+ )
)
- )
- (if
- (local.tee $3
- (i32.load
- (local.tee $4
- (i32.add
+ (if
+ (local.tee $2
+ (i32.load
+ (local.tee $4
(i32.add
- (local.get $1)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $4)
- (i32.const 31)
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
)
+ (block
+ (local.set $4
+ (local.get $3)
+ )
+ (local.set $1
+ (local.get $2)
+ )
+ (br $while-in74)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (i32.load
+ (i32.const 192)
+ )
)
+ (call $_abort)
(block
- (local.set $4
- (local.get $2)
+ (i32.store
+ (local.get $4)
+ (local.get $5)
)
- (local.set $1
- (local.get $3)
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
)
- (br $while-in74)
+ (br $do-once40)
)
)
+ (br $__rjto$9)
)
(if
- (i32.lt_u
- (local.get $4)
- (i32.load
- (i32.const 192)
+ (i32.and
+ (i32.ge_u
+ (local.tee $3
+ (i32.load offset=8
+ (local.get $1)
+ )
+ )
+ (local.tee $2
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (i32.ge_u
+ (local.get $1)
+ (local.get $2)
)
)
- (call $_abort)
(block
- (i32.store
- (local.get $4)
+ (i32.store offset=12
+ (local.get $3)
(local.get $5)
)
- (i32.store offset=24
- (local.get $5)
+ (i32.store offset=8
(local.get $1)
- )
- (i32.store offset=12
- (local.get $5)
(local.get $5)
)
(i32.store offset=8
(local.get $5)
- (local.get $5)
+ (local.get $3)
)
- (br $do-once40)
- )
- )
- (br $__rjto$9)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $4
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $1)
- (i32.const 8)
- )
- )
- )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $1)
)
- (local.tee $3
- (i32.load
- (i32.const 192)
- )
+ (i32.store offset=24
+ (local.get $5)
+ (i32.const 0)
)
)
- (i32.ge_u
- (local.get $1)
- (local.get $3)
- )
- )
- (block
- (i32.store offset=12
- (local.get $4)
- (local.get $5)
- )
- (i32.store
- (local.get $2)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $4)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $1)
- )
- (i32.store offset=24
- (local.get $5)
- (i32.const 0)
- )
+ (call $_abort)
)
- (call $_abort)
)
)
)
)
- )
- (block
- (if
- (i32.or
- (i32.eqz
- (local.tee $2
- (i32.load
- (i32.const 192)
+ (block
+ (if
+ (i32.or
+ (i32.eqz
+ (local.tee $3
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (i32.lt_u
+ (local.get $1)
+ (local.get $3)
+ )
)
- (i32.lt_u
+ (i32.store
+ (i32.const 192)
(local.get $1)
- (local.get $2)
)
)
(i32.store
- (i32.const 192)
+ (i32.const 624)
(local.get $1)
)
- )
- (i32.store
- (i32.const 624)
- (local.get $1)
- )
- (i32.store
- (i32.const 628)
- (local.get $3)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 212)
- (i32.load
- (i32.const 648)
+ (i32.store
+ (i32.const 628)
+ (local.get $2)
)
- )
- (i32.store
- (i32.const 208)
- (i32.const -1)
- )
- (local.set $2
- (i32.const 0)
- )
- (loop $while-in43
- (i32.store offset=12
- (local.tee $4
- (i32.add
- (i32.shl
- (local.get $2)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (i32.store
+ (i32.const 636)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 212)
+ (i32.load
+ (i32.const 648)
)
- (local.get $4)
)
- (i32.store offset=8
- (local.get $4)
- (local.get $4)
+ (i32.store
+ (i32.const 208)
+ (i32.const -1)
)
- (br_if $while-in43
- (i32.ne
- (local.tee $2
+ (local.set $3
+ (i32.const 0)
+ )
+ (loop $while-in43
+ (i32.store offset=12
+ (local.tee $4
(i32.add
- (local.get $2)
- (i32.const 1)
+ (i32.shl
+ (local.get $3)
+ (i32.const 3)
+ )
+ (i32.const 216)
)
)
- (i32.const 32)
+ (local.get $4)
+ )
+ (i32.store offset=8
+ (local.get $4)
+ (local.get $4)
+ )
+ (br_if $while-in43
+ (i32.ne
+ (local.tee $3
+ (i32.add
+ (local.get $3)
+ (i32.const 1)
+ )
+ )
+ (i32.const 32)
+ )
)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $4
- (i32.add
- (local.tee $2
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $2
- (i32.add
- (local.get $1)
- (i32.const 8)
+ (i32.store
+ (i32.const 200)
+ (local.tee $4
+ (i32.add
+ (local.tee $3
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $3
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $3)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $2)
- (i32.const 7)
)
)
+ (local.get $1)
)
- (local.get $1)
)
)
- )
- (i32.store
- (i32.const 188)
- (local.tee $1
- (i32.sub
- (i32.add
+ (i32.store
+ (i32.const 188)
+ (local.tee $1
+ (i32.sub
+ (i32.add
+ (local.get $2)
+ (i32.const -40)
+ )
(local.get $3)
- (i32.const -40)
)
- (local.get $2)
)
)
- )
- (i32.store offset=4
- (local.get $4)
- (i32.or
- (local.get $1)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (i32.add
- (local.get $1)
+ (i32.store offset=4
(local.get $4)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (i32.store offset=4
+ (i32.add
+ (local.get $1)
+ (local.get $4)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
)
)
)
- )
- (br_if $folding-inner0
- (i32.gt_u
- (local.tee $1
- (i32.load
- (i32.const 188)
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $1
+ (i32.load
+ (i32.const 188)
+ )
)
+ (local.get $0)
)
- (local.get $0)
)
)
+ (i32.store
+ (call $___errno_location)
+ (i32.const 12)
+ )
+ (return
+ (i32.const 0)
+ )
)
(i32.store
- (call $___errno_location)
- (i32.const 12)
- )
- (return
- (i32.const 0)
- )
- )
- (i32.store
- (i32.const 188)
- (local.tee $3
- (i32.sub
- (local.get $1)
- (local.get $0)
+ (i32.const 188)
+ (local.tee $2
+ (i32.sub
+ (local.get $1)
+ (local.get $0)
+ )
)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $1
- (i32.add
- (local.tee $2
- (i32.load
- (i32.const 200)
+ (i32.store
+ (i32.const 200)
+ (local.tee $1
+ (i32.add
+ (local.tee $3
+ (i32.load
+ (i32.const 200)
+ )
)
+ (local.get $0)
)
- (local.get $0)
)
)
- )
- (i32.store offset=4
- (local.get $1)
- (i32.or
- (local.get $3)
- (i32.const 1)
+ (i32.store offset=4
+ (local.get $1)
+ (i32.or
+ (local.get $2)
+ (i32.const 1)
+ )
)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $0)
- (i32.const 3)
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.get $0)
+ (i32.const 3)
+ )
)
)
(i32.add
- (local.get $2)
+ (local.get $3)
(i32.const 8)
)
)
@@ -12982,9 +12937,9 @@
)
(if
(i32.eq
- (local.tee $5
+ (local.tee $4
(i32.and
- (local.tee $7
+ (local.tee $8
(i32.load
(i32.add
(local.get $0)
@@ -12999,12 +12954,12 @@
)
(call $_abort)
)
- (local.set $8
+ (local.set $7
(i32.add
(local.get $1)
(local.tee $0
(i32.and
- (local.get $7)
+ (local.get $8)
(i32.const -8)
)
)
@@ -13012,26 +12967,26 @@
)
(if
(i32.and
- (local.get $7)
+ (local.get $8)
(i32.const 1)
)
(block
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
)
(block $do-once
- (local.set $7
+ (local.set $8
(i32.load
(local.get $1)
)
)
(if
(i32.eqz
- (local.get $5)
+ (local.get $4)
)
(return)
)
@@ -13040,7 +12995,7 @@
(local.tee $1
(i32.sub
(local.get $1)
- (local.get $7)
+ (local.get $8)
)
)
(local.get $11)
@@ -13050,7 +13005,7 @@
(local.set $0
(i32.add
(local.get $0)
- (local.get $7)
+ (local.get $8)
)
)
(if
@@ -13064,14 +13019,9 @@
(if
(i32.ne
(i32.and
- (local.tee $3
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $8)
- (i32.const 4)
- )
- )
+ (local.tee $2
+ (i32.load offset=4
+ (local.get $7)
)
)
(i32.const 3)
@@ -13079,10 +13029,10 @@
(i32.const 3)
)
(block
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
(br $do-once)
@@ -13092,10 +13042,10 @@
(i32.const 184)
(local.get $0)
)
- (i32.store
- (local.get $2)
+ (i32.store offset=4
+ (local.get $7)
(i32.and
- (local.get $3)
+ (local.get $2)
(i32.const -2)
)
)
@@ -13116,15 +13066,15 @@
(return)
)
)
- (local.set $5
+ (local.set $4
(i32.shr_u
- (local.get $7)
+ (local.get $8)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $7)
+ (local.get $8)
(i32.const 256)
)
(block
@@ -13135,15 +13085,15 @@
)
(if
(i32.ne
- (local.tee $2
+ (local.tee $3
(i32.load offset=8
(local.get $1)
)
)
- (local.tee $3
+ (local.tee $2
(i32.add
(i32.shl
- (local.get $5)
+ (local.get $4)
(i32.const 3)
)
(i32.const 216)
@@ -13153,7 +13103,7 @@
(block
(if
(i32.lt_u
- (local.get $2)
+ (local.get $3)
(local.get $11)
)
(call $_abort)
@@ -13162,7 +13112,7 @@
(i32.ne
(local.get $1)
(i32.load offset=12
- (local.get $2)
+ (local.get $3)
)
)
(call $_abort)
@@ -13171,7 +13121,7 @@
)
(if
(i32.eq
- (local.get $2)
+ (local.get $3)
(local.get $6)
)
(block
@@ -13184,16 +13134,16 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $5)
+ (local.get $4)
)
(i32.const -1)
)
)
)
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
(br $do-once)
@@ -13201,10 +13151,10 @@
)
(if
(i32.eq
- (local.get $3)
+ (local.get $2)
(local.get $6)
)
- (local.set $4
+ (local.set $5
(i32.add
(local.get $6)
(i32.const 8)
@@ -13218,50 +13168,51 @@
)
(call $_abort)
)
+ (local.set $2
+ (i32.add
+ (local.get $6)
+ (i32.const 8)
+ )
+ )
(if
(i32.eq
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $6)
- (i32.const 8)
- )
- )
+ (i32.load offset=8
+ (local.get $6)
)
(local.get $1)
)
- (local.set $4
- (local.get $3)
+ (local.set $5
+ (local.get $2)
)
(call $_abort)
)
)
)
(i32.store offset=12
- (local.get $2)
+ (local.get $3)
(local.get $6)
)
(i32.store
- (local.get $4)
- (local.get $2)
+ (local.get $5)
+ (local.get $3)
)
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
(br $do-once)
)
)
- (local.set $12
+ (local.set $10
(i32.load offset=24
(local.get $1)
)
)
(if
(i32.eq
- (local.tee $4
+ (local.tee $5
(i32.load offset=12
(local.get $1)
)
@@ -13269,78 +13220,79 @@
(local.get $1)
)
(block $do-once0
+ (local.set $5
+ (i32.add
+ (local.tee $8
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
+ )
+ (i32.const 4)
+ )
+ )
(if
(i32.eqz
- (local.tee $5
- (i32.load
- (local.tee $4
- (i32.add
- (local.tee $7
- (i32.add
- (local.get $1)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
+ (local.tee $4
+ (i32.load offset=4
+ (local.get $8)
)
)
)
(block
(br_if $do-once0
(i32.eqz
- (local.tee $5
- (i32.load
- (local.get $7)
+ (local.tee $4
+ (i32.load offset=16
+ (local.get $1)
)
)
)
)
- (local.set $4
- (local.get $7)
+ (local.set $5
+ (local.get $8)
)
)
)
(loop $while-in
(if
- (local.tee $7
+ (local.tee $8
(i32.load
- (local.tee $10
+ (local.tee $12
(i32.add
- (local.get $5)
+ (local.get $4)
(i32.const 20)
)
)
)
)
(block
- (local.set $5
- (local.get $7)
- )
(local.set $4
- (local.get $10)
+ (local.get $8)
+ )
+ (local.set $5
+ (local.get $12)
)
(br $while-in)
)
)
(if
- (local.tee $7
+ (local.tee $8
(i32.load
- (local.tee $10
+ (local.tee $12
(i32.add
- (local.get $5)
+ (local.get $4)
(i32.const 16)
)
)
)
)
(block
- (local.set $5
- (local.get $7)
- )
(local.set $4
- (local.get $10)
+ (local.get $8)
+ )
+ (local.set $5
+ (local.get $12)
)
(br $while-in)
)
@@ -13348,17 +13300,17 @@
)
(if
(i32.lt_u
- (local.get $4)
+ (local.get $5)
(local.get $11)
)
(call $_abort)
(block
(i32.store
- (local.get $4)
+ (local.get $5)
(i32.const 0)
)
(local.set $6
- (local.get $5)
+ (local.get $4)
)
)
)
@@ -13366,7 +13318,7 @@
(block
(if
(i32.lt_u
- (local.tee $10
+ (local.tee $4
(i32.load offset=8
(local.get $1)
)
@@ -13378,40 +13330,30 @@
(if
(i32.ne
(local.get $1)
- (i32.load
- (local.tee $7
- (i32.add
- (local.get $10)
- (i32.const 12)
- )
- )
+ (i32.load offset=12
+ (local.get $4)
)
)
(call $_abort)
)
(if
(i32.eq
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $4)
- (i32.const 8)
- )
- )
+ (i32.load offset=8
+ (local.get $5)
)
(local.get $1)
)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=12
(local.get $4)
+ (local.get $5)
)
- (i32.store
+ (i32.store offset=8
(local.get $5)
- (local.get $10)
+ (local.get $4)
)
(local.set $6
- (local.get $4)
+ (local.get $5)
)
)
(call $_abort)
@@ -13419,15 +13361,15 @@
)
)
(if
- (local.get $12)
+ (local.get $10)
(block
(if
(i32.eq
(i32.load
- (local.tee $4
+ (local.tee $5
(i32.add
(i32.shl
- (local.tee $5
+ (local.tee $4
(i32.load offset=28
(local.get $1)
)
@@ -13442,7 +13384,7 @@
)
(block
(i32.store
- (local.get $4)
+ (local.get $5)
(local.get $6)
)
(if
@@ -13459,16 +13401,16 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $5)
+ (local.get $4)
)
(i32.const -1)
)
)
)
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
(br $do-once)
@@ -13478,7 +13420,7 @@
(block
(if
(i32.lt_u
- (local.get $12)
+ (local.get $10)
(i32.load
(i32.const 192)
)
@@ -13487,22 +13429,17 @@
)
(if
(i32.eq
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $12)
- (i32.const 16)
- )
- )
+ (i32.load offset=16
+ (local.get $10)
)
(local.get $1)
)
- (i32.store
- (local.get $4)
+ (i32.store offset=16
+ (local.get $10)
(local.get $6)
)
(i32.store offset=20
- (local.get $12)
+ (local.get $10)
(local.get $6)
)
)
@@ -13511,10 +13448,10 @@
(local.get $6)
)
(block
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
(br $do-once)
@@ -13533,85 +13470,92 @@
)
(call $_abort)
)
- (i32.store offset=24
- (local.get $6)
- (local.get $12)
+ (i32.store
+ (i32.add
+ (local.get $6)
+ (i32.const 24)
+ )
+ (local.get $10)
)
(if
- (local.tee $7
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $1)
- (i32.const 16)
- )
- )
+ (local.tee $4
+ (i32.load offset=16
+ (local.get $1)
)
)
(if
(i32.lt_u
- (local.get $7)
+ (local.get $4)
(local.get $5)
)
(call $_abort)
(block
- (i32.store offset=16
- (local.get $6)
- (local.get $7)
+ (i32.store
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
+ (local.get $4)
)
(i32.store offset=24
- (local.get $7)
+ (local.get $4)
(local.get $6)
)
)
)
)
(if
- (local.tee $4
+ (local.tee $5
(i32.load offset=4
- (local.get $4)
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
)
)
(if
(i32.lt_u
- (local.get $4)
+ (local.get $5)
(i32.load
(i32.const 192)
)
)
(call $_abort)
(block
- (i32.store offset=20
- (local.get $6)
- (local.get $4)
+ (i32.store
+ (i32.add
+ (local.get $6)
+ (i32.const 20)
+ )
+ (local.get $5)
)
(i32.store offset=24
- (local.get $4)
+ (local.get $5)
(local.get $6)
)
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
)
)
(block
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
)
)
)
(block
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
)
@@ -13620,22 +13564,17 @@
)
(if
(i32.ge_u
- (local.get $2)
- (local.get $8)
+ (local.get $3)
+ (local.get $7)
)
(call $_abort)
)
(if
(i32.eqz
(i32.and
- (local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $8)
- (i32.const 4)
- )
- )
+ (local.tee $0
+ (i32.load offset=4
+ (local.get $7)
)
)
(i32.const 1)
@@ -13645,21 +13584,24 @@
)
(if
(i32.and
- (local.get $1)
+ (local.get $0)
(i32.const 2)
)
(block
- (i32.store
- (local.get $0)
+ (i32.store offset=4
+ (local.get $7)
(i32.and
- (local.get $1)
+ (local.get $0)
(i32.const -2)
)
)
- (i32.store offset=4
- (local.get $2)
- (i32.or
+ (i32.store
+ (i32.add
(local.get $3)
+ (i32.const 4)
+ )
+ (i32.or
+ (local.get $2)
(i32.const 1)
)
)
@@ -13668,7 +13610,7 @@
(local.get $2)
(local.get $3)
)
- (local.get $3)
+ (local.get $2)
)
)
(block
@@ -13677,7 +13619,7 @@
(i32.load
(i32.const 200)
)
- (local.get $8)
+ (local.get $7)
)
(block
(i32.store
@@ -13687,16 +13629,19 @@
(i32.load
(i32.const 188)
)
- (local.get $3)
+ (local.get $2)
)
)
)
(i32.store
(i32.const 200)
- (local.get $2)
+ (local.get $3)
)
- (i32.store offset=4
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
(i32.or
(local.get $0)
(i32.const 1)
@@ -13704,7 +13649,7 @@
)
(if
(i32.ne
- (local.get $2)
+ (local.get $3)
(i32.load
(i32.const 196)
)
@@ -13727,7 +13672,7 @@
(i32.load
(i32.const 196)
)
- (local.get $8)
+ (local.get $7)
)
(block
(i32.store
@@ -13737,16 +13682,19 @@
(i32.load
(i32.const 184)
)
- (local.get $3)
+ (local.get $2)
)
)
)
(i32.store
(i32.const 196)
- (local.get $2)
+ (local.get $3)
)
- (i32.store offset=4
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
(i32.or
(local.get $0)
(i32.const 1)
@@ -13755,51 +13703,51 @@
(i32.store
(i32.add
(local.get $0)
- (local.get $2)
+ (local.get $3)
)
(local.get $0)
)
(return)
)
)
- (local.set $5
+ (local.set $4
(i32.add
(i32.and
- (local.get $1)
+ (local.get $0)
(i32.const -8)
)
- (local.get $3)
+ (local.get $2)
)
)
- (local.set $3
+ (local.set $2
(i32.shr_u
- (local.get $1)
+ (local.get $0)
(i32.const 3)
)
)
(block $do-once4
(if
(i32.lt_u
- (local.get $1)
+ (local.get $0)
(i32.const 256)
)
(block
- (local.set $4
+ (local.set $5
(i32.load offset=12
- (local.get $8)
+ (local.get $7)
)
)
(if
(i32.ne
(local.tee $1
(i32.load offset=8
- (local.get $8)
+ (local.get $7)
)
)
(local.tee $0
(i32.add
(i32.shl
- (local.get $3)
+ (local.get $2)
(i32.const 3)
)
(i32.const 216)
@@ -13818,7 +13766,7 @@
)
(if
(i32.ne
- (local.get $8)
+ (local.get $7)
(i32.load offset=12
(local.get $1)
)
@@ -13830,7 +13778,7 @@
(if
(i32.eq
(local.get $1)
- (local.get $4)
+ (local.get $5)
)
(block
(i32.store
@@ -13842,7 +13790,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $3)
+ (local.get $2)
)
(i32.const -1)
)
@@ -13854,35 +13802,36 @@
(if
(i32.eq
(local.get $0)
- (local.get $4)
+ (local.get $5)
)
(local.set $14
(i32.add
- (local.get $4)
+ (local.get $5)
(i32.const 8)
)
)
(block
(if
(i32.lt_u
- (local.get $4)
+ (local.get $5)
(i32.load
(i32.const 192)
)
)
(call $_abort)
)
+ (local.set $0
+ (i32.add
+ (local.get $5)
+ (i32.const 8)
+ )
+ )
(if
(i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $4)
- (i32.const 8)
- )
- )
+ (i32.load offset=8
+ (local.get $5)
)
- (local.get $8)
+ (local.get $7)
)
(local.set $14
(local.get $0)
@@ -13893,7 +13842,7 @@
)
(i32.store offset=12
(local.get $1)
- (local.get $4)
+ (local.get $5)
)
(i32.store
(local.get $14)
@@ -13903,43 +13852,44 @@
(block
(local.set $6
(i32.load offset=24
- (local.get $8)
+ (local.get $7)
)
)
(if
(i32.eq
(local.tee $0
(i32.load offset=12
- (local.get $8)
+ (local.get $7)
)
)
- (local.get $8)
+ (local.get $7)
)
(block $do-once6
+ (local.set $0
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (local.get $7)
+ (i32.const 16)
+ )
+ )
+ (i32.const 4)
+ )
+ )
(if
(i32.eqz
- (local.tee $3
- (i32.load
- (local.tee $0
- (i32.add
- (local.tee $1
- (i32.add
- (local.get $8)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
+ (local.tee $2
+ (i32.load offset=4
+ (local.get $1)
)
)
)
(block
(br_if $do-once6
(i32.eqz
- (local.tee $3
- (i32.load
- (local.get $1)
+ (local.tee $2
+ (i32.load offset=16
+ (local.get $7)
)
)
)
@@ -13953,20 +13903,20 @@
(if
(local.tee $1
(i32.load
- (local.tee $4
+ (local.tee $5
(i32.add
- (local.get $3)
+ (local.get $2)
(i32.const 20)
)
)
)
)
(block
- (local.set $3
+ (local.set $2
(local.get $1)
)
(local.set $0
- (local.get $4)
+ (local.get $5)
)
(br $while-in9)
)
@@ -13974,20 +13924,20 @@
(if
(local.tee $1
(i32.load
- (local.tee $4
+ (local.tee $5
(i32.add
- (local.get $3)
+ (local.get $2)
(i32.const 16)
)
)
)
)
(block
- (local.set $3
+ (local.set $2
(local.get $1)
)
(local.set $0
- (local.get $4)
+ (local.get $5)
)
(br $while-in9)
)
@@ -14007,7 +13957,7 @@
(i32.const 0)
)
(local.set $9
- (local.get $3)
+ (local.get $2)
)
)
)
@@ -14015,9 +13965,9 @@
(block
(if
(i32.lt_u
- (local.tee $4
+ (local.tee $2
(i32.load offset=8
- (local.get $8)
+ (local.get $7)
)
)
(i32.load
@@ -14028,38 +13978,28 @@
)
(if
(i32.ne
- (local.get $8)
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $4)
- (i32.const 12)
- )
- )
+ (local.get $7)
+ (i32.load offset=12
+ (local.get $2)
)
)
(call $_abort)
)
(if
(i32.eq
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
+ (i32.load offset=8
+ (local.get $0)
)
- (local.get $8)
+ (local.get $7)
)
(block
- (i32.store
- (local.get $1)
+ (i32.store offset=12
+ (local.get $2)
(local.get $0)
)
- (i32.store
- (local.get $3)
- (local.get $4)
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $2)
)
(local.set $9
(local.get $0)
@@ -14078,9 +14018,9 @@
(local.tee $0
(i32.add
(i32.shl
- (local.tee $3
+ (local.tee $2
(i32.load offset=28
- (local.get $8)
+ (local.get $7)
)
)
(i32.const 2)
@@ -14089,7 +14029,7 @@
)
)
)
- (local.get $8)
+ (local.get $7)
)
(block
(i32.store
@@ -14110,7 +14050,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $3)
+ (local.get $2)
)
(i32.const -1)
)
@@ -14132,18 +14072,13 @@
)
(if
(i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $6)
- (i32.const 16)
- )
- )
+ (i32.load offset=16
+ (local.get $6)
)
- (local.get $8)
+ (local.get $7)
)
- (i32.store
- (local.get $0)
+ (i32.store offset=16
+ (local.get $6)
(local.get $9)
)
(i32.store offset=20
@@ -14161,7 +14096,7 @@
(if
(i32.lt_u
(local.get $9)
- (local.tee $3
+ (local.tee $0
(i32.load
(i32.const 192)
)
@@ -14169,34 +14104,35 @@
)
(call $_abort)
)
- (i32.store offset=24
- (local.get $9)
+ (i32.store
+ (i32.add
+ (local.get $9)
+ (i32.const 24)
+ )
(local.get $6)
)
(if
- (local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $8)
- (i32.const 16)
- )
- )
+ (local.tee $2
+ (i32.load offset=16
+ (local.get $7)
)
)
(if
(i32.lt_u
- (local.get $1)
- (local.get $3)
+ (local.get $2)
+ (local.get $0)
)
(call $_abort)
(block
- (i32.store offset=16
- (local.get $9)
- (local.get $1)
+ (i32.store
+ (i32.add
+ (local.get $9)
+ (i32.const 16)
+ )
+ (local.get $2)
)
(i32.store offset=24
- (local.get $1)
+ (local.get $2)
(local.get $9)
)
)
@@ -14205,7 +14141,10 @@
(if
(local.tee $0
(i32.load offset=4
- (local.get $0)
+ (i32.add
+ (local.get $7)
+ (i32.const 16)
+ )
)
)
(if
@@ -14217,8 +14156,11 @@
)
(call $_abort)
(block
- (i32.store offset=20
- (local.get $9)
+ (i32.store
+ (i32.add
+ (local.get $9)
+ (i32.const 20)
+ )
(local.get $0)
)
(i32.store offset=24
@@ -14233,49 +14175,52 @@
)
)
)
- (i32.store offset=4
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
(i32.or
- (local.get $5)
+ (local.get $4)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $2)
- (local.get $5)
+ (local.get $3)
+ (local.get $4)
)
- (local.get $5)
+ (local.get $4)
)
- (local.set $3
+ (local.set $2
(if (result i32)
(i32.eq
(i32.load
(i32.const 196)
)
- (local.get $2)
+ (local.get $3)
)
(block
(i32.store
(i32.const 184)
- (local.get $5)
+ (local.get $4)
)
(return)
)
- (local.get $5)
+ (local.get $4)
)
)
)
)
(local.set $0
(i32.shr_u
- (local.get $3)
+ (local.get $2)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $3)
+ (local.get $2)
(i32.const 256)
)
(block
@@ -14290,7 +14235,7 @@
)
(if
(i32.and
- (local.tee $3
+ (local.tee $2
(i32.load
(i32.const 176)
)
@@ -14302,29 +14247,32 @@
)
)
)
- (if
- (i32.lt_u
- (local.tee $0
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $1)
- (i32.const 8)
- )
- )
- )
- )
- (i32.load
- (i32.const 192)
+ (block
+ (local.set $2
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
)
)
- (call $_abort)
- (block
- (local.set $15
- (local.get $3)
+ (if
+ (i32.lt_u
+ (local.tee $0
+ (i32.load offset=8
+ (local.get $1)
+ )
+ )
+ (i32.load
+ (i32.const 192)
+ )
)
- (local.set $13
- (local.get $0)
+ (call $_abort)
+ (block
+ (local.set $15
+ (local.get $2)
+ )
+ (local.set $13
+ (local.get $0)
+ )
)
)
)
@@ -14333,7 +14281,7 @@
(i32.const 176)
(i32.or
(local.get $0)
- (local.get $3)
+ (local.get $2)
)
)
(local.set $15
@@ -14349,42 +14297,51 @@
)
(i32.store
(local.get $15)
- (local.get $2)
+ (local.get $3)
)
- (i32.store offset=12
- (local.get $13)
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $13)
+ (i32.const 12)
+ )
+ (local.get $3)
)
- (i32.store offset=8
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
(local.get $13)
)
- (i32.store offset=12
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 12)
+ )
(local.get $1)
)
(return)
)
)
- (local.set $4
+ (local.set $5
(i32.add
(i32.shl
- (local.tee $5
+ (local.tee $4
(if (result i32)
(local.tee $0
(i32.shr_u
- (local.get $3)
+ (local.get $2)
(i32.const 8)
)
)
(if (result i32)
(i32.gt_u
- (local.get $3)
+ (local.get $2)
(i32.const 16777215)
)
(i32.const 31)
(block (result i32)
- (local.set $5
+ (local.set $4
(i32.and
(i32.shr_u
(i32.add
@@ -14412,14 +14369,14 @@
(i32.const 4)
)
)
- (local.set $4
+ (local.set $5
(i32.and
(i32.shr_u
(i32.add
(local.tee $0
(i32.shl
(local.get $0)
- (local.get $5)
+ (local.get $4)
)
)
(i32.const 245760)
@@ -14432,7 +14389,7 @@
(i32.or
(i32.and
(i32.shr_u
- (local.get $3)
+ (local.get $2)
(i32.add
(local.tee $0
(i32.add
@@ -14441,15 +14398,15 @@
(i32.or
(i32.or
(local.get $1)
- (local.get $5)
+ (local.get $4)
)
- (local.get $4)
+ (local.get $5)
)
)
(i32.shr_u
(i32.shl
(local.get $0)
- (local.get $4)
+ (local.get $5)
)
(i32.const 15)
)
@@ -14475,16 +14432,25 @@
(i32.const 480)
)
)
- (i32.store offset=28
- (local.get $2)
- (local.get $5)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 28)
+ )
+ (local.get $4)
)
- (i32.store offset=20
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 20)
+ )
(i32.const 0)
)
- (i32.store offset=16
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
(i32.const 0)
)
(if
@@ -14497,25 +14463,25 @@
(local.tee $0
(i32.shl
(i32.const 1)
- (local.get $5)
+ (local.get $4)
)
)
)
(block $do-once12
- (local.set $5
+ (local.set $4
(i32.shl
- (local.get $3)
+ (local.get $2)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $5)
+ (local.get $4)
(i32.const 1)
)
)
(i32.eq
- (local.get $5)
+ (local.get $4)
(i32.const 31)
)
)
@@ -14523,7 +14489,7 @@
)
(local.set $0
(i32.load
- (local.get $4)
+ (local.get $5)
)
)
(block $__rjto$1
@@ -14532,24 +14498,27 @@
(br_if $__rjti$1
(i32.eq
(i32.and
- (i32.load offset=4
- (local.get $0)
+ (i32.load
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
)
(i32.const -8)
)
- (local.get $3)
+ (local.get $2)
)
)
- (local.set $4
+ (local.set $5
(i32.shl
- (local.get $5)
+ (local.get $4)
(i32.const 1)
)
)
(if
(local.tee $1
(i32.load
- (local.tee $5
+ (local.tee $4
(i32.add
(i32.add
(local.get $0)
@@ -14557,7 +14526,7 @@
)
(i32.shl
(i32.shr_u
- (local.get $5)
+ (local.get $4)
(i32.const 31)
)
(i32.const 2)
@@ -14567,8 +14536,8 @@
)
)
(block
- (local.set $5
- (local.get $4)
+ (local.set $4
+ (local.get $5)
)
(local.set $0
(local.get $1)
@@ -14579,7 +14548,7 @@
)
(if
(i32.lt_u
- (local.get $5)
+ (local.get $4)
(i32.load
(i32.const 192)
)
@@ -14587,20 +14556,29 @@
(call $_abort)
(block
(i32.store
- (local.get $5)
- (local.get $2)
+ (local.get $4)
+ (local.get $3)
)
- (i32.store offset=24
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 24)
+ )
(local.get $0)
)
- (i32.store offset=12
- (local.get $2)
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 12)
+ )
+ (local.get $3)
)
- (i32.store offset=8
- (local.get $2)
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (local.get $3)
)
(br $do-once12)
)
@@ -14610,17 +14588,12 @@
(if
(i32.and
(i32.ge_u
- (local.tee $4
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $0)
)
)
- (local.tee $3
+ (local.tee $2
(i32.load
(i32.const 192)
)
@@ -14628,28 +14601,37 @@
)
(i32.ge_u
(local.get $0)
- (local.get $3)
+ (local.get $2)
)
)
(block
(i32.store offset=12
- (local.get $4)
- (local.get $2)
- )
- (i32.store
(local.get $1)
- (local.get $2)
+ (local.get $3)
)
(i32.store offset=8
- (local.get $2)
- (local.get $4)
+ (local.get $0)
+ (local.get $3)
)
- (i32.store offset=12
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (local.get $1)
+ )
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 12)
+ )
(local.get $0)
)
- (i32.store offset=24
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 24)
+ )
(i32.const 0)
)
)
@@ -14666,20 +14648,29 @@
)
)
(i32.store
- (local.get $4)
- (local.get $2)
+ (local.get $5)
+ (local.get $3)
)
- (i32.store offset=24
- (local.get $2)
- (local.get $4)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 24)
+ )
+ (local.get $5)
)
- (i32.store offset=12
- (local.get $2)
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 12)
+ )
+ (local.get $3)
)
- (i32.store offset=8
- (local.get $2)
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (local.get $3)
)
)
)
@@ -14704,7 +14695,7 @@
(loop $while-in17
(local.set $0
(i32.add
- (local.tee $3
+ (local.tee $2
(i32.load
(local.get $0)
)
@@ -14713,7 +14704,7 @@
)
)
(br_if $while-in17
- (local.get $3)
+ (local.get $2)
)
)
(i32.store
diff --git a/test/emcc_hello_world.fromasm.imprecise b/test/emcc_hello_world.fromasm.imprecise
index e3feaa729..aedcabd06 100644
--- a/test/emcc_hello_world.fromasm.imprecise
+++ b/test/emcc_hello_world.fromasm.imprecise
@@ -261,8 +261,11 @@
(loop $while-in
(if
(i32.ne
- (i32.load8_u offset=687
- (local.get $1)
+ (i32.load8_u
+ (i32.add
+ (local.get $1)
+ (i32.const 687)
+ )
)
(local.get $0)
)
@@ -496,11 +499,9 @@
)
(i32.store offset=12
(local.get $3)
- (local.tee $0
- (i32.add
- (local.get $3)
- (i32.const 20)
- )
+ (i32.add
+ (local.get $3)
+ (i32.const 20)
)
)
(i32.store offset=16
@@ -519,14 +520,14 @@
(i32.const 0)
)
(block (result i32)
- (i32.store
- (local.get $0)
+ (i32.store offset=20
+ (local.get $4)
(i32.const -1)
)
(i32.const -1)
)
- (i32.load
- (local.get $0)
+ (i32.load offset=20
+ (local.get $4)
)
)
)
@@ -658,11 +659,7 @@
(local $8 i32)
(local $9 i32)
(local $10 i32)
- (local $11 i32)
- (local $12 i32)
- (local $13 i32)
- (local $14 i32)
- (local.set $10
+ (local.set $8
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -678,43 +675,33 @@
)
(call $abort)
)
- (local.set $8
+ (local.set $9
(i32.add
- (local.get $10)
+ (local.get $8)
(i32.const 16)
)
)
- (i32.store
- (local.tee $4
- (i32.add
- (local.tee $9
- (local.get $10)
- )
- (i32.const 32)
- )
+ (i32.store offset=32
+ (local.tee $6
+ (local.get $8)
)
(local.tee $3
- (i32.load
- (local.tee $6
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (i32.load offset=28
+ (local.get $0)
)
)
)
(i32.store offset=4
- (local.get $4)
+ (local.tee $4
+ (i32.add
+ (local.get $6)
+ (i32.const 32)
+ )
+ )
(local.tee $3
(i32.sub
- (i32.load
- (local.tee $11
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
(local.get $3)
)
@@ -728,25 +715,13 @@
(local.get $4)
(local.get $2)
)
- (local.set $13
- (i32.add
- (local.get $0)
- (i32.const 60)
- )
- )
- (local.set $14
- (i32.add
- (local.get $0)
- (i32.const 44)
- )
- )
(local.set $1
(local.get $4)
)
(local.set $4
(i32.const 2)
)
- (local.set $12
+ (local.set $10
(i32.add
(local.get $2)
(local.get $3)
@@ -766,24 +741,24 @@
(local.get $0)
)
(i32.store
- (local.get $9)
- (i32.load
- (local.get $13)
+ (local.get $6)
+ (i32.load offset=60
+ (local.get $0)
)
)
(i32.store offset=4
- (local.get $9)
+ (local.get $6)
(local.get $1)
)
(i32.store offset=8
- (local.get $9)
+ (local.get $6)
(local.get $4)
)
(local.set $3
(call $___syscall_ret
(call $___syscall146
(i32.const 146)
- (local.get $9)
+ (local.get $6)
)
)
)
@@ -792,25 +767,25 @@
)
)
(block
- (i32.store
+ (i32.store offset=16
(local.get $8)
- (i32.load
- (local.get $13)
+ (i32.load offset=60
+ (local.get $0)
)
)
(i32.store offset=4
- (local.get $8)
+ (local.get $9)
(local.get $1)
)
(i32.store offset=8
- (local.get $8)
+ (local.get $9)
(local.get $4)
)
(local.set $3
(call $___syscall_ret
(call $___syscall146
(i32.const 146)
- (local.get $8)
+ (local.get $9)
)
)
)
@@ -819,7 +794,7 @@
(br_if $__rjti$0
(i32.eq
(local.get $3)
- (local.get $12)
+ (local.get $10)
)
)
(br_if $__rjti$1
@@ -833,27 +808,33 @@
(i32.gt_u
(local.get $3)
(local.tee $5
- (i32.load offset=4
- (local.get $1)
+ (i32.load
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
)
)
)
(block (result i32)
- (i32.store
- (local.get $6)
+ (i32.store offset=28
+ (local.get $0)
(local.tee $7
- (i32.load
- (local.get $14)
+ (i32.load offset=44
+ (local.get $0)
)
)
)
- (i32.store
- (local.get $11)
+ (i32.store offset=20
+ (local.get $0)
(local.get $7)
)
(local.set $7
- (i32.load offset=12
- (local.get $1)
+ (i32.load
+ (i32.add
+ (local.get $1)
+ (i32.const 12)
+ )
)
)
(local.set $1
@@ -880,11 +861,11 @@
(i32.const 2)
)
(block
- (i32.store
- (local.get $6)
+ (i32.store offset=28
+ (local.get $0)
(i32.add
- (i32.load
- (local.get $6)
+ (i32.load offset=28
+ (local.get $0)
)
(local.get $3)
)
@@ -913,16 +894,19 @@
(local.get $5)
)
)
- (i32.store offset=4
- (local.get $1)
+ (i32.store
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
(i32.sub
(local.get $7)
(local.get $5)
)
)
- (local.set $12
+ (local.set $10
(i32.sub
- (local.get $12)
+ (local.get $10)
(local.get $3)
)
)
@@ -933,8 +917,8 @@
(local.get $0)
(i32.add
(local.tee $1
- (i32.load
- (local.get $14)
+ (i32.load offset=44
+ (local.get $0)
)
)
(i32.load offset=48
@@ -942,12 +926,12 @@
)
)
)
- (i32.store
- (local.get $6)
+ (i32.store offset=28
+ (local.get $0)
(local.get $1)
)
- (i32.store
- (local.get $11)
+ (i32.store offset=20
+ (local.get $0)
(local.get $1)
)
(br $__rjto$1)
@@ -956,12 +940,12 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $6)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $11)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
(i32.store
@@ -990,7 +974,7 @@
)
)
(global.set $STACKTOP
- (local.get $10)
+ (local.get $8)
)
(local.get $2)
)
@@ -1002,11 +986,7 @@
(local $6 i32)
(local $7 i32)
(local $8 i32)
- (local $9 i32)
- (local $10 i32)
- (local $11 i32)
- (local $12 i32)
- (local.set $6
+ (local.set $2
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -1022,26 +1002,27 @@
)
(call $abort)
)
- (local.set $3
+ (local.set $6
(i32.add
- (local.get $6)
+ (local.get $2)
(i32.const 120)
)
)
- (local.set $5
+ (local.set $7
+ (local.get $2)
+ )
+ (local.set $4
(i32.add
- (local.tee $4
- (local.get $6)
- )
+ (local.get $2)
(i32.const 136)
)
)
- (local.set $8
+ (local.set $5
(i32.add
- (local.tee $2
- (local.tee $7
+ (local.tee $3
+ (local.tee $8
(i32.add
- (local.get $4)
+ (local.get $2)
(i32.const 80)
)
)
@@ -1051,23 +1032,23 @@
)
(loop $do-in
(i32.store
- (local.get $2)
+ (local.get $3)
(i32.const 0)
)
(br_if $do-in
(i32.lt_s
- (local.tee $2
+ (local.tee $3
(i32.add
- (local.get $2)
+ (local.get $3)
(i32.const 4)
)
)
- (local.get $8)
+ (local.get $5)
)
)
)
- (i32.store
- (local.get $3)
+ (i32.store offset=120
+ (local.get $2)
(i32.load
(local.get $1)
)
@@ -1077,15 +1058,15 @@
(i32.lt_s
(call $_printf_core
(i32.const 0)
- (local.get $3)
- (local.get $4)
+ (local.get $6)
(local.get $7)
+ (local.get $8)
)
(i32.const 0)
)
(i32.const -1)
(block (result i32)
- (local.set $9
+ (local.set $3
(i32.load
(local.get $0)
)
@@ -1100,87 +1081,62 @@
(i32.store
(local.get $0)
(i32.and
- (local.get $9)
+ (local.get $3)
(i32.const -33)
)
)
)
(if
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 48)
- )
- )
+ (i32.load offset=48
+ (local.get $0)
)
(drop
(call $_printf_core
(local.get $0)
- (local.get $3)
- (local.get $4)
+ (local.get $6)
(local.get $7)
+ (local.get $8)
)
)
(block
- (local.set $11
- (i32.load
- (local.tee $10
- (i32.add
- (local.get $0)
- (i32.const 44)
- )
- )
+ (local.set $5
+ (i32.load offset=44
+ (local.get $0)
)
)
- (i32.store
- (local.get $10)
- (local.get $5)
+ (i32.store offset=44
+ (local.get $0)
+ (local.get $4)
)
- (i32.store
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
- (local.get $5)
+ (i32.store offset=28
+ (local.get $0)
+ (local.get $4)
)
- (i32.store
- (local.tee $12
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
- (local.get $5)
+ (i32.store offset=20
+ (local.get $0)
+ (local.get $4)
)
- (i32.store
- (local.get $1)
+ (i32.store offset=48
+ (local.get $0)
(i32.const 80)
)
- (i32.store
- (local.tee $8
- (i32.add
- (local.get $0)
- (i32.const 16)
- )
- )
+ (i32.store offset=16
+ (local.get $0)
(i32.add
- (local.get $5)
+ (local.get $4)
(i32.const 80)
)
)
(drop
(call $_printf_core
(local.get $0)
- (local.get $3)
- (local.get $4)
+ (local.get $6)
(local.get $7)
+ (local.get $8)
)
)
(if
- (local.get $11)
+ (local.get $5)
(block
(drop
(call_indirect (type $FUNCSIG$iiii)
@@ -1198,24 +1154,24 @@
)
)
)
- (i32.store
- (local.get $10)
- (local.get $11)
+ (i32.store offset=44
+ (local.get $0)
+ (local.get $5)
)
- (i32.store
- (local.get $1)
+ (i32.store offset=48
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $8)
+ (i32.store offset=16
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $2)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $12)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
)
@@ -1229,7 +1185,7 @@
(local.get $0)
)
(i32.and
- (local.get $9)
+ (local.get $3)
(i32.const 32)
)
)
@@ -1239,25 +1195,19 @@
)
)
(global.set $STACKTOP
- (local.get $6)
+ (local.get $2)
)
)
(func $___fwritex (; 36 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
- (local $6 i32)
(block $label$break$L5
(block $__rjti$0
(br_if $__rjti$0
(local.tee $3
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $2)
- (i32.const 16)
- )
- )
+ (i32.load offset=16
+ (local.get $2)
)
)
)
@@ -1269,8 +1219,8 @@
)
(block
(local.set $3
- (i32.load
- (local.get $4)
+ (i32.load offset=16
+ (local.get $2)
)
)
(br $__rjti$0)
@@ -1283,13 +1233,8 @@
(i32.sub
(local.get $3)
(local.tee $4
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $2)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $2)
)
)
)
@@ -1341,7 +1286,7 @@
(i32.load8_s
(i32.add
(local.get $0)
- (local.tee $6
+ (local.tee $5
(i32.add
(local.get $3)
(i32.const -1)
@@ -1353,7 +1298,7 @@
)
(block
(local.set $3
- (local.get $6)
+ (local.get $5)
)
(br $while-in)
)
@@ -1379,8 +1324,8 @@
)
)
(local.set $4
- (i32.load
- (local.get $5)
+ (i32.load offset=20
+ (local.get $2)
)
)
(local.set $1
@@ -1407,11 +1352,11 @@
(local.get $1)
)
)
- (i32.store
- (local.get $5)
+ (i32.store offset=20
+ (local.get $2)
(i32.add
- (i32.load
- (local.get $5)
+ (i32.load offset=20
+ (local.get $2)
)
(local.get $1)
)
@@ -1420,21 +1365,14 @@
)
(func $___towrite (; 37 ;) (; has Stack IR ;) (param $0 i32) (result i32)
(local $1 i32)
- (local $2 i32)
- (local.set $1
- (i32.load8_s
- (local.tee $2
- (i32.add
+ (i32.store8 offset=74
+ (local.get $0)
+ (i32.or
+ (local.tee $1
+ (i32.load8_s offset=74
(local.get $0)
- (i32.const 74)
)
)
- )
- )
- (i32.store8
- (local.get $2)
- (i32.or
- (local.get $1)
(i32.add
(local.get $1)
(i32.const 255)
@@ -1892,29 +1830,15 @@
(local $1 i32)
(local $2 i32)
(local $3 i32)
- (local $4 i32)
- (local $5 i32)
- (local $6 i32)
- (local $7 i32)
(block $__rjto$0 (result i32)
(block $__rjti$0
(br_if $__rjti$0
(i32.le_u
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (i32.load offset=28
+ (local.get $0)
)
)
)
@@ -1938,8 +1862,8 @@
)
)
(br_if $__rjti$0
- (i32.load
- (local.get $2)
+ (i32.load offset=20
+ (local.get $0)
)
)
(br $__rjto$0
@@ -1948,29 +1872,19 @@
)
(if
(i32.lt_u
- (local.tee $4
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 4)
- )
- )
+ (local.tee $1
+ (i32.load offset=4
+ (local.get $0)
)
)
- (local.tee $6
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
+ (local.tee $2
+ (i32.load offset=8
+ (local.get $0)
)
)
)
(block
- (local.set $7
+ (local.set $3
(i32.load offset=40
(local.get $0)
)
@@ -1979,13 +1893,13 @@
(call_indirect (type $FUNCSIG$iiii)
(local.get $0)
(i32.sub
- (local.get $4)
- (local.get $6)
+ (local.get $1)
+ (local.get $2)
)
(i32.const 1)
(i32.add
(i32.and
- (local.get $7)
+ (local.get $3)
(i32.const 7)
)
(i32.const 2)
@@ -1998,20 +1912,20 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $3)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $2)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $5)
+ (i32.store offset=8
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $1)
+ (i32.store offset=4
+ (local.get $0)
(i32.const 0)
)
(i32.const 0)
@@ -2067,8 +1981,7 @@
(local $47 i32)
(local $48 i32)
(local $49 i32)
- (local $50 i32)
- (local.set $34
+ (local.set $20
(global.get $STACKTOP)
)
(global.set $STACKTOP
@@ -2084,16 +1997,16 @@
)
(call $abort)
)
- (local.set $20
+ (local.set $39
(i32.add
- (local.get $34)
+ (local.get $20)
(i32.const 16)
)
)
- (local.set $35
+ (local.set $33
(i32.add
(local.tee $13
- (local.get $34)
+ (local.get $20)
)
(i32.const 528)
)
@@ -2104,7 +2017,7 @@
(i32.const 0)
)
)
- (local.set $38
+ (local.set $36
(local.tee $25
(i32.add
(local.tee $4
@@ -2117,21 +2030,16 @@
)
)
)
- (local.set $39
+ (local.set $40
(i32.add
(local.get $4)
(i32.const 39)
)
)
- (local.set $43
+ (local.set $41
(i32.add
- (local.tee $40
- (i32.add
- (local.get $13)
- (i32.const 8)
- )
- )
- (i32.const 4)
+ (local.get $13)
+ (i32.const 8)
)
)
(local.set $32
@@ -2145,18 +2053,18 @@
(i32.const 12)
)
)
- (local.set $41
+ (local.set $42
(i32.add
(local.get $4)
(i32.const 11)
)
)
- (local.set $44
+ (local.set $43
(i32.sub
(local.tee $27
(local.get $32)
)
- (local.tee $36
+ (local.tee $34
(local.tee $23
(i32.add
(local.get $13)
@@ -2166,21 +2074,21 @@
)
)
)
- (local.set $45
+ (local.set $44
(i32.sub
(i32.const -2)
- (local.get $36)
+ (local.get $34)
)
)
- (local.set $46
+ (local.set $45
(i32.add
(local.get $27)
(i32.const 2)
)
)
- (local.set $48
+ (local.set $47
(i32.add
- (local.tee $47
+ (local.tee $46
(i32.add
(local.get $13)
(i32.const 24)
@@ -2189,7 +2097,7 @@
(i32.const 288)
)
)
- (local.set $42
+ (local.set $37
(local.tee $29
(i32.add
(local.get $23)
@@ -2197,7 +2105,7 @@
)
)
)
- (local.set $33
+ (local.set $38
(i32.add
(local.get $23)
(i32.const 8)
@@ -3507,7 +3415,7 @@
(local.tee $10
(i32.add
(i32.sub
- (local.get $38)
+ (local.get $36)
(local.tee $6
(local.get $7)
)
@@ -3630,14 +3538,14 @@
)
(br $__rjti$4)
)
- (i32.store8
- (local.get $39)
+ (i32.store8 offset=575
+ (local.get $13)
(i32.load
(local.get $13)
)
)
(local.set $4
- (local.get $39)
+ (local.get $40)
)
(local.set $10
(local.get $7)
@@ -3677,19 +3585,19 @@
)
(br $__rjti$5)
)
- (i32.store
- (local.get $40)
+ (i32.store offset=8
+ (local.get $20)
(i32.load
(local.get $13)
)
)
- (i32.store
- (local.get $43)
+ (i32.store offset=12
+ (local.get $13)
(i32.const 0)
)
(i32.store
(local.get $13)
- (local.get $40)
+ (local.get $41)
)
(local.set $7
(i32.const -1)
@@ -3723,7 +3631,7 @@
(local.get $13)
)
)
- (i32.store
+ (i32.store offset=16
(local.get $20)
(i32.const 0)
)
@@ -3802,7 +3710,7 @@
(f64.mul
(call $_frexp
(local.get $15)
- (local.get $20)
+ (local.get $39)
)
(f64.const 2)
)
@@ -3810,10 +3718,10 @@
(f64.const 0)
)
)
- (i32.store
+ (i32.store offset=16
(local.get $20)
(i32.add
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
(i32.const -1)
@@ -3927,7 +3835,7 @@
(i32.sub
(i32.const 0)
(local.tee $6
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
)
@@ -3955,12 +3863,12 @@
(local.get $32)
)
(block
- (i32.store8
- (local.get $41)
+ (i32.store8 offset=587
+ (local.get $13)
(i32.const 48)
)
(local.set $4
- (local.get $41)
+ (local.get $42)
)
)
)
@@ -4047,7 +3955,7 @@
(i32.const 1)
)
)
- (local.get $36)
+ (local.get $34)
)
(i32.const 1)
)
@@ -4096,14 +4004,14 @@
(i32.sub
(i32.add
(local.get $5)
- (local.get $46)
+ (local.get $45)
)
(local.get $7)
)
(i32.add
(local.get $4)
(i32.sub
- (local.get $44)
+ (local.get $43)
(local.get $7)
)
)
@@ -4115,7 +4023,7 @@
(i32.lt_s
(i32.add
(local.get $4)
- (local.get $45)
+ (local.get $44)
)
(local.get $5)
)
@@ -4154,7 +4062,7 @@
(local.set $4
(i32.sub
(local.get $4)
- (local.get $36)
+ (local.get $34)
)
)
(if
@@ -4231,11 +4139,11 @@
(if (result f64)
(local.get $4)
(block (result f64)
- (i32.store
+ (i32.store offset=16
(local.get $20)
(local.tee $4
(i32.add
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
(i32.const -28)
@@ -4249,7 +4157,7 @@
)
(block (result f64)
(local.set $4
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
)
@@ -4260,8 +4168,8 @@
(local.set $6
(local.tee $7
(select
+ (local.get $46)
(local.get $47)
- (local.get $48)
(i32.lt_s
(local.get $4)
(i32.const 0)
@@ -4304,7 +4212,7 @@
(if
(i32.gt_s
(local.tee $8
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
)
@@ -4424,11 +4332,11 @@
)
)
)
- (i32.store
+ (i32.store offset=16
(local.get $20)
(local.tee $8
(i32.sub
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
(local.get $12)
@@ -4519,7 +4427,7 @@
(i32.const -1)
)
)
- (local.set $37
+ (local.set $35
(i32.shr_u
(i32.const 1000000000)
(local.get $12)
@@ -4552,7 +4460,7 @@
(local.get $8)
(local.get $11)
)
- (local.get $37)
+ (local.get $35)
)
)
(br_if $while-in74
@@ -4636,11 +4544,11 @@
)
)
)
- (i32.store
+ (i32.store offset=16
(local.get $20)
(local.tee $8
(i32.add
- (i32.load
+ (i32.load offset=16
(local.get $20)
)
(local.get $12)
@@ -4758,7 +4666,7 @@
(i32.const 103)
)
)
- (local.tee $37
+ (local.tee $35
(i32.ne
(local.get $17)
(i32.const 0)
@@ -4859,7 +4767,7 @@
(if
(i32.eqz
(i32.and
- (local.tee $49
+ (local.tee $48
(i32.eq
(i32.add
(local.get $5)
@@ -4878,7 +4786,7 @@
(if (result f64)
(i32.lt_u
(local.get $12)
- (local.tee $50
+ (local.tee $49
(i32.div_s
(local.get $11)
(i32.const 2)
@@ -4890,10 +4798,10 @@
(f64.const 1)
(f64.const 1.5)
(i32.and
- (local.get $49)
+ (local.get $48)
(i32.eq
(local.get $12)
- (local.get $50)
+ (local.get $49)
)
)
)
@@ -5142,7 +5050,7 @@
(i32.add
(local.get $17)
(i32.xor
- (local.get $37)
+ (local.get $35)
(i32.const 1)
)
)
@@ -5567,12 +5475,12 @@
(local.get $29)
)
)
- (i32.store8
- (local.get $33)
+ (i32.store8 offset=596
+ (local.get $13)
(i32.const 48)
)
(local.set $6
- (local.get $33)
+ (local.get $38)
)
)
(block
@@ -5614,7 +5522,7 @@
(call $___fwritex
(local.get $6)
(i32.sub
- (local.get $42)
+ (local.get $37)
(local.get $6)
)
(local.get $0)
@@ -5811,12 +5719,12 @@
(local.get $29)
)
(block
- (i32.store8
- (local.get $33)
+ (i32.store8 offset=596
+ (local.get $13)
(i32.const 48)
)
(local.set $4
- (local.get $33)
+ (local.get $38)
)
)
)
@@ -5900,7 +5808,7 @@
)
(local.set $7
(i32.sub
- (local.get $42)
+ (local.get $37)
(local.get $4)
)
)
@@ -6313,7 +6221,7 @@
(i32.lt_s
(local.tee $6
(call $_wctomb
- (local.get $35)
+ (local.get $33)
(local.get $8)
)
)
@@ -6398,7 +6306,7 @@
(i32.add
(local.tee $7
(call $_wctomb
- (local.get $35)
+ (local.get $33)
(local.get $7)
)
)
@@ -6419,7 +6327,7 @@
)
)
(call $___fwritex
- (local.get $35)
+ (local.get $33)
(local.get $7)
(local.get $0)
)
@@ -6510,7 +6418,7 @@
(i32.const 1)
)
(i32.sub
- (local.get $38)
+ (local.get $36)
(local.tee $4
(local.get $6)
)
@@ -6725,7 +6633,7 @@
)
)
(global.set $STACKTOP
- (local.get $34)
+ (local.get $20)
)
(local.get $16)
)
@@ -6810,8 +6718,11 @@
(local.get $0)
(local.get $1)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.shr_s
(i32.shl
(i32.lt_s
@@ -6851,8 +6762,11 @@
(local.get $0)
(local.get $3)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.const 0)
)
(br $label$break$L1)
@@ -6875,8 +6789,11 @@
)
)
(local.set $3
- (i32.load offset=4
- (local.get $3)
+ (i32.load
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
)
)
(i32.store
@@ -6890,8 +6807,11 @@
(local.get $0)
(local.get $5)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(local.get $3)
)
(br $label$break$L1)
@@ -6933,8 +6853,11 @@
)
)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.shr_s
(i32.shl
(i32.lt_s
@@ -6977,8 +6900,11 @@
(i32.const 65535)
)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.const 0)
)
(br $label$break$L1)
@@ -7020,8 +6946,11 @@
)
)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.shr_s
(i32.shl
(i32.lt_s
@@ -7064,8 +6993,11 @@
(i32.const 255)
)
)
- (i32.store offset=4
- (local.get $0)
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
(i32.const 0)
)
(br $label$break$L1)
@@ -7406,569 +7338,575 @@
(local $16 i32)
(local $17 i32)
(local $18 i32)
- (local.set $0
- (if (result i32)
- (i32.lt_u
- (local.get $0)
- (i32.const 245)
- )
- (block (result i32)
- (if
- (i32.and
- (local.tee $10
- (i32.shr_u
- (local.tee $6
- (i32.load
- (i32.const 176)
+ (block $folding-inner1
+ (local.set $0
+ (if (result i32)
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 245)
+ )
+ (block (result i32)
+ (if
+ (i32.and
+ (local.tee $12
+ (i32.shr_u
+ (local.tee $6
+ (i32.load
+ (i32.const 176)
+ )
)
- )
- (local.tee $13
- (i32.shr_u
- (local.tee $2
- (select
- (i32.const 16)
- (i32.and
- (i32.add
+ (local.tee $13
+ (i32.shr_u
+ (local.tee $4
+ (select
+ (i32.const 16)
+ (i32.and
+ (i32.add
+ (local.get $0)
+ (i32.const 11)
+ )
+ (i32.const -8)
+ )
+ (i32.lt_u
(local.get $0)
(i32.const 11)
)
- (i32.const -8)
- )
- (i32.lt_u
- (local.get $0)
- (i32.const 11)
)
)
+ (i32.const 3)
)
- (i32.const 3)
)
)
)
+ (i32.const 3)
)
- (i32.const 3)
- )
- (block
- (if
- (i32.eq
- (local.tee $7
- (i32.load
- (local.tee $1
- (i32.add
- (local.tee $11
- (i32.load
- (local.tee $3
- (i32.add
- (local.tee $2
+ (block
+ (if
+ (i32.eq
+ (local.tee $2
+ (i32.load offset=8
+ (local.tee $3
+ (i32.load offset=8
+ (local.tee $1
+ (i32.add
+ (i32.shl
+ (local.tee $0
(i32.add
- (i32.shl
- (local.tee $4
- (i32.add
- (i32.xor
- (i32.and
- (local.get $10)
- (i32.const 1)
- )
- (i32.const 1)
- )
- (local.get $13)
- )
+ (i32.xor
+ (i32.and
+ (local.get $12)
+ (i32.const 1)
)
- (i32.const 3)
+ (i32.const 1)
)
- (i32.const 216)
+ (local.get $13)
)
)
- (i32.const 8)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
)
- (i32.const 8)
)
)
)
+ (local.get $1)
)
- (local.get $2)
- )
- (i32.store
- (i32.const 176)
- (i32.and
- (local.get $6)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $4)
- )
- (i32.const -1)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.get $7)
- (i32.load
- (i32.const 192)
+ (i32.store
+ (i32.const 176)
+ (i32.and
+ (local.get $6)
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ (i32.const -1)
)
)
- (call $_abort)
)
- (if
- (i32.eq
- (local.get $11)
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $7)
- (i32.const 12)
- )
+ (block
+ (if
+ (i32.lt_u
+ (local.get $2)
+ (i32.load
+ (i32.const 192)
)
)
+ (call $_abort)
)
- (block
- (i32.store
- (local.get $0)
- (local.get $2)
- )
- (i32.store
+ (if
+ (i32.eq
(local.get $3)
- (local.get $7)
+ (i32.load offset=12
+ (local.get $2)
+ )
)
+ (block
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $1)
+ )
+ (i32.store offset=8
+ (local.get $1)
+ (local.get $2)
+ )
+ )
+ (call $_abort)
)
- (call $_abort)
)
)
- )
- (i32.store offset=4
- (local.get $11)
- (i32.or
- (local.tee $0
- (i32.shl
- (local.get $4)
- (i32.const 3)
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (i32.const 3)
+ )
)
+ (i32.const 3)
)
- (i32.const 3)
)
- )
- (i32.store
- (local.tee $0
- (i32.add
+ (i32.store offset=4
+ (local.tee $0
(i32.add
(local.get $0)
- (local.get $11)
+ (local.get $3)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.load
- (local.get $0)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const 1)
)
- (i32.const 1)
)
- )
- (return
- (local.get $1)
+ (br $folding-inner1)
)
)
- )
- (if (result i32)
- (i32.gt_u
- (local.get $2)
- (local.tee $0
- (i32.load
- (i32.const 184)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $4)
+ (local.tee $0
+ (i32.load
+ (i32.const 184)
+ )
)
)
- )
- (block (result i32)
- (if
- (local.get $10)
- (block
- (if
- (i32.eq
- (local.tee $8
- (i32.load
- (local.tee $4
- (i32.add
- (local.tee $10
- (i32.load
- (local.tee $3
- (i32.add
- (local.tee $7
+ (block (result i32)
+ (if
+ (local.get $12)
+ (block
+ (if
+ (i32.eq
+ (local.tee $9
+ (i32.load offset=8
+ (local.tee $11
+ (i32.load offset=8
+ (local.tee $7
+ (i32.add
+ (i32.shl
+ (local.tee $2
(i32.add
- (i32.shl
- (local.tee $11
- (i32.add
+ (i32.or
+ (i32.or
+ (i32.or
(i32.or
- (i32.or
- (i32.or
- (i32.or
- (local.tee $3
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.add
- (i32.and
- (local.tee $3
- (i32.and
- (i32.or
- (local.tee $3
- (i32.shl
- (i32.const 2)
- (local.get $13)
- )
- )
- (i32.sub
- (i32.const 0)
- (local.get $3)
- )
- )
- (i32.shl
- (local.get $10)
- (local.get $13)
- )
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
+ (i32.add
+ (i32.and
+ (local.tee $2
+ (i32.and
+ (i32.or
+ (local.tee $2
+ (i32.shl
+ (i32.const 2)
+ (local.get $13)
)
)
(i32.sub
(i32.const 0)
- (local.get $3)
+ (local.get $2)
)
)
- (i32.const -1)
+ (i32.shl
+ (local.get $12)
+ (local.get $13)
+ )
)
)
- (i32.const 12)
- )
- (i32.const 16)
- )
- )
- (local.tee $3
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $3)
- )
+ (i32.sub
+ (i32.const 0)
+ (local.get $2)
)
- (i32.const 5)
)
- (i32.const 8)
+ (i32.const -1)
)
)
+ (i32.const 12)
)
- (local.tee $3
- (i32.and
+ (i32.const 16)
+ )
+ )
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
(i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $3)
- )
- )
- (i32.const 2)
+ (local.get $7)
+ (local.get $2)
)
- (i32.const 4)
)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (local.tee $3
- (i32.and
+ )
+ )
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
(i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $3)
- )
- )
- (i32.const 1)
+ (local.get $7)
+ (local.get $2)
)
- (i32.const 2)
)
+ (i32.const 2)
)
+ (i32.const 4)
)
- (local.tee $3
- (i32.and
+ )
+ )
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (local.tee $7
(i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $3)
- )
- )
- (i32.const 1)
+ (local.get $7)
+ (local.get $2)
)
- (i32.const 1)
)
+ (i32.const 1)
)
+ (i32.const 2)
)
+ )
+ )
+ (local.tee $2
+ (i32.and
(i32.shr_u
- (local.get $4)
- (local.get $3)
+ (local.tee $7
+ (i32.shr_u
+ (local.get $7)
+ (local.get $2)
+ )
+ )
+ (i32.const 1)
)
+ (i32.const 1)
)
)
- (i32.const 3)
)
- (i32.const 216)
+ (i32.shr_u
+ (local.get $7)
+ (local.get $2)
+ )
)
)
- (i32.const 8)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
)
- (i32.const 8)
)
)
)
+ (local.get $7)
)
- (local.get $7)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.and
- (local.get $6)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $11)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.and
+ (local.get $6)
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $2)
+ )
+ (i32.const -1)
)
- (i32.const -1)
)
)
- )
- (local.set $9
- (local.get $0)
- )
- )
- (block
- (if
- (i32.lt_u
- (local.get $8)
- (i32.load
- (i32.const 192)
- )
+ (local.set $8
+ (local.get $0)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $8)
- (i32.const 12)
- )
- )
- )
- (local.get $10)
- )
- (block
- (i32.store
- (local.get $0)
- (local.get $7)
- )
- (i32.store
- (local.get $3)
- (local.get $8)
- )
- (local.set $9
+ (block
+ (if
+ (i32.lt_u
+ (local.get $9)
(i32.load
- (i32.const 184)
+ (i32.const 192)
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- )
- )
- (i32.store offset=4
- (local.get $10)
- (i32.or
- (local.get $2)
- (i32.const 3)
- )
- )
- (i32.store offset=4
- (local.tee $7
- (i32.add
- (local.get $2)
- (local.get $10)
- )
- )
- (i32.or
- (local.tee $11
- (i32.sub
- (i32.shl
+ (if
+ (i32.eq
+ (i32.load offset=12
+ (local.get $9)
+ )
(local.get $11)
- (i32.const 3)
)
- (local.get $2)
+ (block
+ (i32.store offset=12
+ (local.get $9)
+ (local.get $7)
+ )
+ (i32.store offset=8
+ (local.get $7)
+ (local.get $9)
+ )
+ (local.set $8
+ (i32.load
+ (i32.const 184)
+ )
+ )
+ )
+ (call $_abort)
)
)
- (i32.const 1)
)
- )
- (i32.store
- (i32.add
- (local.get $7)
+ (i32.store offset=4
(local.get $11)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
+ )
)
- (local.get $11)
- )
- (if
- (local.get $9)
- (block
- (local.set $6
- (i32.load
- (i32.const 196)
+ (i32.store offset=4
+ (local.tee $7
+ (i32.add
+ (local.get $4)
+ (local.get $11)
)
)
- (local.set $2
- (i32.add
- (i32.shl
- (local.tee $0
- (i32.shr_u
- (local.get $9)
- (i32.const 3)
- )
+ (i32.or
+ (local.tee $9
+ (i32.sub
+ (i32.shl
+ (local.get $2)
+ (i32.const 3)
)
- (i32.const 3)
+ (local.get $4)
)
- (i32.const 216)
)
+ (i32.const 1)
)
- (if
- (i32.and
- (local.tee $3
- (i32.load
- (i32.const 176)
- )
+ )
+ (i32.store
+ (i32.add
+ (local.get $7)
+ (local.get $9)
+ )
+ (local.get $9)
+ )
+ (if
+ (local.get $8)
+ (block
+ (local.set $6
+ (i32.load
+ (i32.const 196)
)
- (local.tee $0
+ )
+ (local.set $4
+ (i32.add
(i32.shl
- (i32.const 1)
- (local.get $0)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $8)
+ (i32.const 3)
+ )
+ )
+ (i32.const 3)
)
+ (i32.const 216)
)
)
(if
- (i32.lt_u
- (local.tee $0
+ (i32.and
+ (local.tee $2
(i32.load
- (local.tee $3
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
+ (i32.const 176)
)
)
- (i32.load
- (i32.const 192)
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
- (call $_abort)
(block
- (local.set $5
- (local.get $3)
+ (local.set $2
+ (i32.add
+ (local.get $4)
+ (i32.const 8)
+ )
)
- (local.set $1
- (local.get $0)
+ (if
+ (i32.lt_u
+ (local.tee $0
+ (i32.load offset=8
+ (local.get $4)
+ )
+ )
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ (block
+ (local.set $3
+ (local.get $2)
+ )
+ (local.set $1
+ (local.get $0)
+ )
+ )
)
)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $0)
- (local.get $3)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $0)
+ (local.get $2)
+ )
)
- )
- (local.set $5
- (i32.add
- (local.get $2)
- (i32.const 8)
+ (local.set $3
+ (i32.add
+ (local.get $4)
+ (i32.const 8)
+ )
+ )
+ (local.set $1
+ (local.get $4)
)
)
- (local.set $1
- (local.get $2)
+ )
+ (i32.store
+ (local.get $3)
+ (local.get $6)
+ )
+ (i32.store
+ (i32.add
+ (local.get $1)
+ (i32.const 12)
)
+ (local.get $6)
+ )
+ (i32.store offset=8
+ (local.get $6)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $6)
+ (local.get $4)
)
)
- (i32.store
- (local.get $5)
- (local.get $6)
- )
- (i32.store offset=12
- (local.get $1)
- (local.get $6)
- )
- (i32.store offset=8
- (local.get $6)
- (local.get $1)
- )
- (i32.store offset=12
- (local.get $6)
- (local.get $2)
+ )
+ (i32.store
+ (i32.const 184)
+ (local.get $9)
+ )
+ (i32.store
+ (i32.const 196)
+ (local.get $7)
+ )
+ (return
+ (i32.add
+ (local.get $11)
+ (i32.const 8)
)
)
)
- (i32.store
- (i32.const 184)
- (local.get $11)
- )
- (i32.store
- (i32.const 196)
- (local.get $7)
- )
- (return
- (local.get $4)
- )
)
- )
- (if (result i32)
- (local.tee $0
- (i32.load
- (i32.const 180)
+ (if (result i32)
+ (local.tee $0
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (block
- (local.set $11
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.tee $0
- (i32.load offset=480
- (i32.shl
+ (block
+ (local.set $7
+ (i32.sub
+ (i32.and
+ (i32.load offset=4
+ (local.tee $0
+ (i32.load
(i32.add
- (i32.or
- (i32.or
+ (i32.shl
+ (i32.add
(i32.or
(i32.or
- (local.tee $0
- (i32.and
- (i32.shr_u
- (local.tee $1
- (i32.add
- (i32.and
- (local.get $0)
- (i32.sub
- (i32.const 0)
+ (i32.or
+ (i32.or
+ (local.tee $0
+ (i32.and
+ (i32.shr_u
+ (local.tee $1
+ (i32.add
+ (i32.and
+ (local.get $0)
+ (i32.sub
+ (i32.const 0)
+ (local.get $0)
+ )
+ )
+ (i32.const -1)
+ )
+ )
+ (i32.const 12)
+ )
+ (i32.const 16)
+ )
+ )
+ (local.tee $0
+ (i32.and
+ (i32.shr_u
+ (local.tee $1
+ (i32.shr_u
+ (local.get $1)
(local.get $0)
)
)
- (i32.const -1)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (i32.const 12)
)
- (i32.const 16)
+ )
+ (local.tee $0
+ (i32.and
+ (i32.shr_u
+ (local.tee $1
+ (i32.shr_u
+ (local.get $1)
+ (local.get $0)
+ )
+ )
+ (i32.const 2)
+ )
+ (i32.const 4)
+ )
)
)
(local.tee $0
@@ -7980,9 +7918,9 @@
(local.get $0)
)
)
- (i32.const 5)
+ (i32.const 1)
)
- (i32.const 8)
+ (i32.const 2)
)
)
)
@@ -7995,881 +7933,876 @@
(local.get $0)
)
)
- (i32.const 2)
- )
- (i32.const 4)
- )
- )
- )
- (local.tee $0
- (i32.and
- (i32.shr_u
- (local.tee $1
- (i32.shr_u
- (local.get $1)
- (local.get $0)
- )
+ (i32.const 1)
)
(i32.const 1)
)
- (i32.const 2)
)
)
- )
- (local.tee $0
- (i32.and
- (i32.shr_u
- (local.tee $1
- (i32.shr_u
- (local.get $1)
- (local.get $0)
- )
- )
- (i32.const 1)
- )
- (i32.const 1)
+ (i32.shr_u
+ (local.get $1)
+ (local.get $0)
)
)
+ (i32.const 2)
)
- (i32.shr_u
- (local.get $1)
- (local.get $0)
- )
+ (i32.const 480)
)
- (i32.const 2)
)
)
)
+ (i32.const -8)
)
- (i32.const -8)
+ (local.get $4)
)
- (local.get $2)
)
- )
- (local.set $7
- (local.get $0)
- )
- (loop $while-in
- (block $while-out
- (if
- (local.tee $1
- (i32.load offset=16
- (local.get $0)
- )
- )
- (local.set $0
- (local.get $1)
- )
+ (local.set $3
+ (local.tee $1
+ (local.get $0)
+ )
+ )
+ (loop $while-in
+ (block $while-out
(if
(i32.eqz
(local.tee $0
- (i32.load offset=20
- (local.get $0)
+ (i32.load
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
)
)
)
- (block
- (local.set $6
- (local.get $11)
+ (if
+ (i32.eqz
+ (local.tee $0
+ (i32.load
+ (i32.add
+ (local.get $1)
+ (i32.const 20)
+ )
+ )
+ )
)
- (local.set $8
- (local.get $7)
+ (block
+ (local.set $9
+ (local.get $7)
+ )
+ (local.set $6
+ (local.get $3)
+ )
+ (br $while-out)
)
- (br $while-out)
)
)
- )
- (local.set $6
- (i32.lt_u
- (local.tee $1
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.get $0)
+ (local.set $9
+ (i32.lt_u
+ (local.tee $1
+ (i32.sub
+ (i32.and
+ (i32.load
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
+ )
+ (i32.const -8)
)
- (i32.const -8)
+ (local.get $4)
)
- (local.get $2)
)
+ (local.get $7)
)
- (local.get $11)
)
- )
- (local.set $11
- (select
- (local.get $1)
- (local.get $11)
- (local.get $6)
+ (local.set $7
+ (select
+ (local.get $1)
+ (local.get $7)
+ (local.get $9)
+ )
)
- )
- (local.set $7
- (select
- (local.get $0)
- (local.get $7)
- (local.get $6)
+ (local.set $3
+ (select
+ (local.tee $1
+ (local.get $0)
+ )
+ (local.get $3)
+ (local.get $9)
+ )
)
+ (br $while-in)
)
- (br $while-in)
)
- )
- (if
- (i32.lt_u
- (local.get $8)
- (local.tee $10
- (i32.load
- (i32.const 192)
+ (if
+ (i32.lt_u
+ (local.get $6)
+ (local.tee $11
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- (if
- (i32.ge_u
- (local.get $8)
- (local.tee $5
- (i32.add
- (local.get $2)
- (local.get $8)
+ (if
+ (i32.ge_u
+ (local.get $6)
+ (local.tee $12
+ (i32.add
+ (local.get $4)
+ (local.get $6)
+ )
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- (local.set $9
- (i32.load offset=24
- (local.get $8)
+ (local.set $8
+ (i32.load offset=24
+ (local.get $6)
+ )
)
- )
- (if
- (i32.eq
- (local.tee $0
- (i32.load offset=12
- (local.get $8)
+ (if
+ (i32.eq
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $6)
+ )
)
+ (local.get $6)
)
- (local.get $8)
- )
- (block $do-once4
- (if
- (i32.eqz
- (local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $8)
- (i32.const 20)
- )
- )
- )
+ (block $do-once4
+ (local.set $0
+ (i32.add
+ (local.get $6)
+ (i32.const 20)
)
)
- (br_if $do-once4
+ (if
(i32.eqz
(local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $8)
- (i32.const 16)
+ (i32.load offset=20
+ (local.get $6)
+ )
+ )
+ )
+ (block
+ (local.set $0
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
+ )
+ (br_if $do-once4
+ (i32.eqz
+ (local.tee $1
+ (i32.load offset=16
+ (local.get $6)
)
)
)
)
)
)
- )
- (loop $while-in7
- (if
- (local.tee $7
- (i32.load
- (local.tee $11
- (i32.add
- (local.get $1)
- (i32.const 20)
+ (loop $while-in7
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $7
+ (i32.add
+ (local.get $1)
+ (i32.const 20)
+ )
)
)
)
- )
- (block
- (local.set $1
- (local.get $7)
- )
- (local.set $0
- (local.get $11)
+ (block
+ (local.set $1
+ (local.get $3)
+ )
+ (local.set $0
+ (local.get $7)
+ )
+ (br $while-in7)
)
- (br $while-in7)
)
- )
- (if
- (local.tee $7
- (i32.load
- (local.tee $11
- (i32.add
- (local.get $1)
- (i32.const 16)
+ (if
+ (local.tee $3
+ (i32.load
+ (local.tee $7
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
)
)
)
- )
- (block
- (local.set $1
- (local.get $7)
- )
- (local.set $0
- (local.get $11)
+ (block
+ (local.set $1
+ (local.get $3)
+ )
+ (local.set $0
+ (local.get $7)
+ )
+ (br $while-in7)
)
- (br $while-in7)
)
)
- )
- (if
- (i32.lt_u
- (local.get $0)
- (local.get $10)
- )
- (call $_abort)
- (block
- (i32.store
+ (if
+ (i32.lt_u
(local.get $0)
- (i32.const 0)
- )
- (local.set $4
- (local.get $1)
+ (local.get $11)
)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.tee $11
- (i32.load offset=8
- (local.get $8)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $0)
+ (i32.const 0)
)
- )
- (local.get $10)
- )
- (call $_abort)
- )
- (if
- (i32.ne
- (local.get $8)
- (i32.load
- (local.tee $7
- (i32.add
- (local.get $11)
- (i32.const 12)
- )
+ (local.set $10
+ (local.get $1)
)
)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
+ (block
+ (if
+ (i32.lt_u
(local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 8)
+ (i32.load offset=8
+ (local.get $6)
)
)
+ (local.get $11)
)
- (local.get $8)
+ (call $_abort)
)
- (block
- (i32.store
- (local.get $7)
- (local.get $0)
+ (if
+ (i32.ne
+ (local.get $6)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (i32.store
- (local.get $1)
- (local.get $11)
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load offset=8
+ (local.get $0)
+ )
+ (local.get $6)
)
- (local.set $4
- (local.get $0)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $10
+ (local.get $0)
+ )
)
+ (call $_abort)
)
- (call $_abort)
)
)
- )
- (if
- (local.get $9)
- (block $do-once8
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (i32.shl
- (local.tee $1
- (i32.load offset=28
- (local.get $8)
+ (if
+ (local.get $8)
+ (block $do-once8
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.tee $1
+ (i32.load offset=28
+ (local.get $6)
+ )
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
)
+ (local.get $6)
)
- (local.get $8)
- )
- (block
- (i32.store
- (local.get $0)
- (local.get $4)
- )
- (if
- (i32.eqz
- (local.get $4)
+ (block
+ (i32.store
+ (local.get $0)
+ (local.get $10)
)
- (block
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (if
+ (i32.eqz
+ (local.get $10)
+ )
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ (i32.const -1)
)
- (i32.const -1)
)
)
+ (br $do-once8)
)
- (br $do-once8)
)
)
- )
- (block
- (if
- (i32.lt_u
- (local.get $9)
- (i32.load
- (i32.const 192)
+ (block
+ (if
+ (i32.lt_u
+ (local.get $8)
+ (i32.load
+ (i32.const 192)
+ )
)
+ (call $_abort)
)
- (call $_abort)
- )
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $9)
- (i32.const 16)
- )
+ (if
+ (i32.eq
+ (i32.load offset=16
+ (local.get $8)
)
+ (local.get $6)
+ )
+ (i32.store offset=16
+ (local.get $8)
+ (local.get $10)
+ )
+ (i32.store offset=20
+ (local.get $8)
+ (local.get $10)
)
- (local.get $8)
- )
- (i32.store
- (local.get $0)
- (local.get $4)
- )
- (i32.store offset=20
- (local.get $9)
- (local.get $4)
)
- )
- (br_if $do-once8
- (i32.eqz
- (local.get $4)
+ (br_if $do-once8
+ (i32.eqz
+ (local.get $10)
+ )
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $4)
- (local.tee $0
- (i32.load
- (i32.const 192)
+ (if
+ (i32.lt_u
+ (local.get $10)
+ (local.tee $0
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- (i32.store offset=24
- (local.get $4)
- (local.get $9)
- )
- (if
- (local.tee $1
- (i32.load offset=16
- (local.get $8)
+ (i32.store
+ (i32.add
+ (local.get $10)
+ (i32.const 24)
)
+ (local.get $8)
)
(if
- (i32.lt_u
- (local.get $1)
- (local.get $0)
+ (local.tee $1
+ (i32.load offset=16
+ (local.get $6)
+ )
)
- (call $_abort)
- (block
- (i32.store offset=16
- (local.get $4)
+ (if
+ (i32.lt_u
(local.get $1)
+ (local.get $0)
)
- (i32.store offset=24
- (local.get $1)
- (local.get $4)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.add
+ (local.get $10)
+ (i32.const 16)
+ )
+ (local.get $1)
+ )
+ (i32.store offset=24
+ (local.get $1)
+ (local.get $10)
+ )
)
)
)
- )
- (if
- (local.tee $0
- (i32.load offset=20
- (local.get $8)
- )
- )
(if
- (i32.lt_u
- (local.get $0)
- (i32.load
- (i32.const 192)
+ (local.tee $0
+ (i32.load offset=20
+ (local.get $6)
)
)
- (call $_abort)
- (block
- (i32.store offset=20
- (local.get $4)
+ (if
+ (i32.lt_u
(local.get $0)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.store offset=24
- (local.get $0)
- (local.get $4)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.add
+ (local.get $10)
+ (i32.const 20)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $10)
+ )
)
)
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $6)
- (i32.const 16)
- )
- (block
- (i32.store offset=4
- (local.get $8)
- (i32.or
- (local.tee $0
- (i32.add
- (local.get $2)
- (local.get $6)
+ (if
+ (i32.lt_u
+ (local.get $9)
+ (i32.const 16)
+ )
+ (block
+ (i32.store offset=4
+ (local.get $6)
+ (i32.or
+ (local.tee $0
+ (i32.add
+ (local.get $4)
+ (local.get $9)
+ )
)
+ (i32.const 3)
)
- (i32.const 3)
)
- )
- (i32.store
- (local.tee $0
- (i32.add
+ (i32.store offset=4
+ (local.tee $0
(i32.add
(local.get $0)
- (local.get $8)
+ (local.get $6)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.load
- (local.get $0)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const 1)
)
- (i32.const 1)
)
)
- )
- (block
- (i32.store offset=4
- (local.get $8)
- (i32.or
- (local.get $2)
- (i32.const 3)
- )
- )
- (i32.store offset=4
- (local.get $5)
- (i32.or
+ (block
+ (i32.store offset=4
(local.get $6)
- (i32.const 1)
+ (i32.or
+ (local.get $4)
+ (i32.const 3)
+ )
)
- )
- (i32.store
- (i32.add
- (local.get $5)
- (local.get $6)
+ (i32.store offset=4
+ (local.get $12)
+ (i32.or
+ (local.get $9)
+ (i32.const 1)
+ )
)
- (local.get $6)
- )
- (if
- (local.tee $0
- (i32.load
- (i32.const 184)
+ (i32.store
+ (i32.add
+ (local.get $9)
+ (local.get $12)
)
+ (local.get $9)
)
- (block
- (local.set $4
+ (if
+ (local.tee $0
(i32.load
- (i32.const 196)
+ (i32.const 184)
)
)
- (local.set $2
- (i32.add
- (i32.shl
- (local.tee $0
- (i32.shr_u
- (local.get $0)
- (i32.const 3)
- )
- )
- (i32.const 3)
+ (block
+ (local.set $4
+ (i32.load
+ (i32.const 196)
)
- (i32.const 216)
)
- )
- (if
- (i32.and
- (local.tee $1
- (i32.load
- (i32.const 176)
- )
- )
- (local.tee $0
+ (local.set $3
+ (i32.add
(i32.shl
- (i32.const 1)
- (local.get $0)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
+ )
+ )
+ (i32.const 3)
)
+ (i32.const 216)
)
)
(if
- (i32.lt_u
- (local.tee $0
+ (i32.and
+ (local.tee $1
(i32.load
- (local.tee $1
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
+ (i32.const 176)
)
)
- (i32.load
- (i32.const 192)
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
)
)
- (call $_abort)
(block
- (local.set $12
- (local.get $1)
+ (local.set $1
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
)
- (local.set $3
- (local.get $0)
+ (if
+ (i32.lt_u
+ (local.tee $0
+ (i32.load offset=8
+ (local.get $3)
+ )
+ )
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ (block
+ (local.set $5
+ (local.get $1)
+ )
+ (local.set $2
+ (local.get $0)
+ )
+ )
)
)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $0)
- (local.get $1)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
)
- )
- (local.set $12
- (i32.add
- (local.get $2)
- (i32.const 8)
+ (local.set $5
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
+ (local.set $2
+ (local.get $3)
)
)
- (local.set $3
+ )
+ (i32.store
+ (local.get $5)
+ (local.get $4)
+ )
+ (i32.store
+ (i32.add
(local.get $2)
+ (i32.const 12)
)
+ (local.get $4)
+ )
+ (i32.store offset=8
+ (local.get $4)
+ (local.get $2)
+ )
+ (i32.store offset=12
+ (local.get $4)
+ (local.get $3)
)
)
- (i32.store
- (local.get $12)
- (local.get $4)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $4)
- )
- (i32.store offset=8
- (local.get $4)
- (local.get $3)
- )
- (i32.store offset=12
- (local.get $4)
- (local.get $2)
- )
+ )
+ (i32.store
+ (i32.const 184)
+ (local.get $9)
+ )
+ (i32.store
+ (i32.const 196)
+ (local.get $12)
)
)
- (i32.store
- (i32.const 184)
+ )
+ (return
+ (i32.add
(local.get $6)
+ (i32.const 8)
)
- (i32.store
- (i32.const 196)
- (local.get $5)
- )
- )
- )
- (return
- (i32.add
- (local.get $8)
- (i32.const 8)
)
)
+ (local.get $4)
)
- (local.get $2)
)
+ (local.get $4)
)
- (local.get $2)
- )
- )
- (if (result i32)
- (i32.gt_u
- (local.get $0)
- (i32.const -65)
)
- (i32.const -1)
- (block $do-once (result i32)
- (local.set $2
- (i32.and
- (local.tee $0
- (i32.add
- (local.get $0)
- (i32.const 11)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $0)
+ (i32.const -65)
+ )
+ (i32.const -1)
+ (block $do-once (result i32)
+ (local.set $3
+ (i32.and
+ (local.tee $0
+ (i32.add
+ (local.get $0)
+ (i32.const 11)
+ )
)
+ (i32.const -8)
)
- (i32.const -8)
)
- )
- (if (result i32)
- (local.tee $18
- (i32.load
- (i32.const 180)
+ (if (result i32)
+ (local.tee $18
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (block (result i32)
- (local.set $14
- (if (result i32)
- (local.tee $0
- (i32.shr_u
- (local.get $0)
- (i32.const 8)
- )
- )
+ (block (result i32)
+ (local.set $14
(if (result i32)
- (i32.gt_u
- (local.get $2)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $4
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $0)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $3)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $4
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $0)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (local.set $3
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.get $4)
+ (local.set $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.get $4)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $2)
- (i32.add
- (local.tee $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $3)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
- (local.get $1)
- (local.get $4)
+ (i32.or
+ (local.get $1)
+ (local.get $4)
+ )
+ (local.get $2)
)
- (local.get $3)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $0)
- (local.get $3)
+ (i32.shr_u
+ (i32.shl
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $0)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
- )
- (local.set $3
- (i32.sub
- (i32.const 0)
- (local.get $2)
+ (local.set $2
+ (i32.sub
+ (i32.const 0)
+ (local.get $3)
+ )
)
- )
- (block $__rjto$3
- (block $__rjti$3
- (local.set $0
- (if (result i32)
- (local.tee $0
- (i32.load offset=480
- (i32.shl
- (local.get $14)
- (i32.const 2)
+ (block $__rjto$3
+ (block $__rjti$3
+ (local.set $0
+ (if (result i32)
+ (local.tee $0
+ (i32.load
+ (i32.add
+ (i32.shl
+ (local.get $14)
+ (i32.const 2)
+ )
+ (i32.const 480)
+ )
)
)
- )
- (block (result i32)
- (local.set $9
- (i32.shl
- (local.get $2)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
+ (block (result i32)
+ (local.set $8
+ (i32.shl
+ (local.get $3)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $14)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
(local.get $14)
- (i32.const 1)
+ (i32.const 31)
)
)
- (i32.eq
- (local.get $14)
- (i32.const 31)
- )
)
)
- )
- (local.set $1
- (i32.const 0)
- )
- (loop $while-in14 (result i32)
- (if
- (i32.lt_u
- (local.tee $4
- (i32.sub
- (local.tee $12
- (i32.and
- (i32.load offset=4
- (local.get $0)
+ (local.set $1
+ (i32.const 0)
+ )
+ (loop $while-in14 (result i32)
+ (if
+ (i32.lt_u
+ (local.tee $4
+ (i32.sub
+ (local.tee $10
+ (i32.and
+ (i32.load
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
+ )
+ (i32.const -8)
)
- (i32.const -8)
)
+ (local.get $3)
)
- (local.get $2)
)
+ (local.get $2)
)
- (local.get $3)
- )
- (local.set $1
- (if (result i32)
- (i32.eq
- (local.get $2)
- (local.get $12)
- )
- (block
- (local.set $1
- (local.get $4)
+ (local.set $1
+ (if (result i32)
+ (i32.eq
+ (local.get $3)
+ (local.get $10)
)
- (local.set $3
- (local.get $0)
+ (block
+ (local.set $1
+ (local.get $4)
+ )
+ (local.set $2
+ (local.get $0)
+ )
+ (br $__rjti$3)
)
- (br $__rjti$3)
- )
- (block (result i32)
- (local.set $3
- (local.get $4)
+ (block (result i32)
+ (local.set $2
+ (local.get $4)
+ )
+ (local.get $0)
)
- (local.get $0)
)
)
)
- )
- (local.set $0
- (select
- (local.get $5)
- (local.tee $4
- (i32.load offset=20
- (local.get $0)
- )
- )
- (i32.or
- (i32.eqz
- (local.get $4)
+ (local.set $0
+ (select
+ (local.get $5)
+ (local.tee $4
+ (i32.load
+ (i32.add
+ (local.get $0)
+ (i32.const 20)
+ )
+ )
)
- (i32.eq
- (local.get $4)
- (local.tee $12
- (i32.load
- (i32.add
+ (i32.or
+ (i32.eqz
+ (local.get $4)
+ )
+ (i32.eq
+ (local.get $4)
+ (local.tee $10
+ (i32.load
(i32.add
- (local.get $0)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $9)
- (i32.const 31)
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $8)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
@@ -8877,109 +8810,139 @@
)
)
)
- )
- (local.set $4
- (i32.shl
- (local.get $9)
- (i32.xor
- (local.tee $5
- (i32.eqz
- (local.get $12)
+ (local.set $4
+ (i32.shl
+ (local.get $8)
+ (i32.xor
+ (local.tee $5
+ (i32.eqz
+ (local.get $10)
+ )
)
+ (i32.const 1)
)
- (i32.const 1)
- )
- )
- )
- (if (result i32)
- (local.get $5)
- (block (result i32)
- (local.set $4
- (local.get $0)
)
- (local.get $1)
)
- (block
- (local.set $5
- (local.get $0)
- )
- (local.set $9
- (local.get $4)
+ (if (result i32)
+ (local.get $5)
+ (block (result i32)
+ (local.set $4
+ (local.get $0)
+ )
+ (local.get $1)
)
- (local.set $0
- (local.get $12)
+ (block
+ (local.set $5
+ (local.get $0)
+ )
+ (local.set $8
+ (local.get $4)
+ )
+ (local.set $0
+ (local.get $10)
+ )
+ (br $while-in14)
)
- (br $while-in14)
)
)
)
- )
- (block (result i32)
- (local.set $4
+ (block (result i32)
+ (local.set $4
+ (i32.const 0)
+ )
(i32.const 0)
)
- (i32.const 0)
)
)
- )
- (if
- (i32.eqz
- (i32.or
- (local.get $0)
- (local.get $4)
+ (if
+ (i32.eqz
+ (i32.or
+ (local.get $0)
+ (local.get $4)
+ )
)
- )
- (block
- (drop
- (br_if $do-once
- (local.get $2)
- (i32.eqz
- (local.tee $1
- (i32.and
- (local.get $18)
- (i32.or
- (local.tee $1
- (i32.shl
- (i32.const 2)
- (local.get $14)
+ (block
+ (drop
+ (br_if $do-once
+ (local.get $3)
+ (i32.eqz
+ (local.tee $1
+ (i32.and
+ (local.get $18)
+ (i32.or
+ (local.tee $1
+ (i32.shl
+ (i32.const 2)
+ (local.get $14)
+ )
+ )
+ (i32.sub
+ (i32.const 0)
+ (local.get $1)
)
- )
- (i32.sub
- (i32.const 0)
- (local.get $1)
)
)
)
)
)
)
- )
- (local.set $4
- (i32.load offset=480
- (i32.shl
+ (local.set $4
+ (i32.load
(i32.add
- (i32.or
- (i32.or
+ (i32.shl
+ (i32.add
(i32.or
(i32.or
- (local.tee $1
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.add
- (i32.and
- (local.get $1)
- (i32.sub
- (i32.const 0)
+ (i32.or
+ (i32.or
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (local.tee $4
+ (i32.add
+ (i32.and
+ (local.get $1)
+ (i32.sub
+ (i32.const 0)
+ (local.get $1)
+ )
+ )
+ (i32.const -1)
+ )
+ )
+ (i32.const 12)
+ )
+ (i32.const 16)
+ )
+ )
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (local.tee $4
+ (i32.shr_u
+ (local.get $4)
(local.get $1)
)
)
- (i32.const -1)
+ (i32.const 5)
)
+ (i32.const 8)
)
- (i32.const 12)
)
- (i32.const 16)
+ )
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (local.tee $4
+ (i32.shr_u
+ (local.get $4)
+ (local.get $1)
+ )
+ )
+ (i32.const 2)
+ )
+ (i32.const 4)
+ )
)
)
(local.tee $1
@@ -8991,9 +8954,9 @@
(local.get $1)
)
)
- (i32.const 5)
+ (i32.const 1)
)
- (i32.const 8)
+ (i32.const 2)
)
)
)
@@ -9006,1889 +8969,1852 @@
(local.get $1)
)
)
- (i32.const 2)
- )
- (i32.const 4)
- )
- )
- )
- (local.tee $1
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $1)
- )
+ (i32.const 1)
)
(i32.const 1)
)
- (i32.const 2)
)
)
- )
- (local.tee $1
- (i32.and
- (i32.shr_u
- (local.tee $4
- (i32.shr_u
- (local.get $4)
- (local.get $1)
- )
- )
- (i32.const 1)
- )
- (i32.const 1)
+ (i32.shr_u
+ (local.get $4)
+ (local.get $1)
)
)
+ (i32.const 2)
)
- (i32.shr_u
- (local.get $4)
- (local.get $1)
- )
+ (i32.const 480)
)
- (i32.const 2)
)
)
)
)
- )
- (local.set $4
- (if (result i32)
- (local.get $4)
- (block
- (local.set $1
- (local.get $3)
- )
- (local.set $3
- (local.get $4)
+ (local.set $4
+ (if (result i32)
+ (local.get $4)
+ (block
+ (local.set $1
+ (local.get $2)
+ )
+ (local.set $2
+ (local.get $4)
+ )
+ (br $__rjti$3)
)
- (br $__rjti$3)
+ (local.get $0)
)
- (local.get $0)
)
+ (br $__rjto$3)
)
- (br $__rjto$3)
- )
- (local.set $3
- (loop $while-in16 (result i32)
- (local.set $12
- (i32.lt_u
- (local.tee $4
- (i32.sub
- (i32.and
- (i32.load offset=4
- (local.get $3)
+ (local.set $2
+ (loop $while-in16 (result i32)
+ (local.set $10
+ (i32.lt_u
+ (local.tee $4
+ (i32.sub
+ (i32.and
+ (i32.load
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ )
+ (i32.const -8)
)
- (i32.const -8)
+ (local.get $3)
)
- (local.get $2)
)
+ (local.get $1)
)
- (local.get $1)
)
- )
- (local.set $1
- (select
- (local.get $4)
- (local.get $1)
- (local.get $12)
- )
- )
- (local.set $0
- (select
- (local.get $3)
- (local.get $0)
- (local.get $12)
+ (local.set $1
+ (select
+ (local.get $4)
+ (local.get $1)
+ (local.get $10)
+ )
)
- )
- (if
- (local.tee $4
- (i32.load offset=16
- (local.get $3)
+ (local.set $0
+ (select
+ (local.get $2)
+ (local.get $0)
+ (local.get $10)
)
)
- (block
- (local.set $3
- (local.get $4)
+ (if
+ (local.tee $4
+ (i32.load
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ )
+ )
+ (block
+ (local.set $2
+ (local.get $4)
+ )
+ (br $while-in16)
)
- (br $while-in16)
)
- )
- (br_if $while-in16
- (local.tee $3
- (i32.load offset=20
- (local.get $3)
+ (br_if $while-in16
+ (local.tee $2
+ (i32.load
+ (i32.add
+ (local.get $2)
+ (i32.const 20)
+ )
+ )
)
)
+ (local.set $4
+ (local.get $0)
+ )
+ (local.get $1)
)
- (local.set $4
- (local.get $0)
- )
- (local.get $1)
)
)
- )
- (if (result i32)
- (local.get $4)
(if (result i32)
- (i32.lt_u
- (local.get $3)
- (i32.sub
- (i32.load
- (i32.const 184)
- )
+ (local.get $4)
+ (if (result i32)
+ (i32.lt_u
(local.get $2)
- )
- )
- (block
- (if
- (i32.lt_u
- (local.get $4)
- (local.tee $8
- (i32.load
- (i32.const 192)
- )
+ (i32.sub
+ (i32.load
+ (i32.const 184)
)
+ (local.get $3)
)
- (call $_abort)
)
- (if
- (i32.ge_u
- (local.get $4)
- (local.tee $5
- (i32.add
- (local.get $2)
- (local.get $4)
+ (block
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (local.tee $11
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- (local.set $12
- (i32.load offset=24
- (local.get $4)
+ (if
+ (i32.ge_u
+ (local.get $4)
+ (local.tee $5
+ (i32.add
+ (local.get $3)
+ (local.get $4)
+ )
+ )
+ )
+ (call $_abort)
)
- )
- (if
- (i32.eq
- (local.tee $0
- (i32.load offset=12
+ (local.set $10
+ (i32.load
+ (i32.add
(local.get $4)
+ (i32.const 24)
)
)
- (local.get $4)
)
- (block $do-once17
- (if
- (i32.eqz
- (local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $4)
- (i32.const 20)
- )
- )
+ (if
+ (i32.eq
+ (local.tee $0
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 12)
)
)
)
- (br_if $do-once17
+ (local.get $4)
+ )
+ (block $do-once17
+ (if
(i32.eqz
(local.tee $1
(i32.load
(local.tee $0
(i32.add
(local.get $4)
- (i32.const 16)
+ (i32.const 20)
)
)
)
)
)
- )
- )
- (loop $while-in20
- (if
- (local.tee $7
- (i32.load
- (local.tee $11
- (i32.add
- (local.get $1)
- (i32.const 20)
+ (br_if $do-once17
+ (i32.eqz
+ (local.tee $1
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (local.get $4)
+ (i32.const 16)
+ )
+ )
)
)
)
)
- (block
- (local.set $1
- (local.get $7)
- )
- (local.set $0
- (local.get $11)
- )
- (br $while-in20)
- )
)
- (if
- (local.tee $7
- (i32.load
- (local.tee $11
- (i32.add
- (local.get $1)
- (i32.const 16)
+ (loop $while-in20
+ (if
+ (local.tee $7
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $1)
+ (i32.const 20)
+ )
)
)
)
+ (block
+ (local.set $1
+ (local.get $7)
+ )
+ (local.set $0
+ (local.get $9)
+ )
+ (br $while-in20)
+ )
)
- (block
- (local.set $1
- (local.get $7)
+ (if
+ (local.tee $7
+ (i32.load
+ (local.tee $9
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
+ )
+ )
)
- (local.set $0
- (local.get $11)
+ (block
+ (local.set $1
+ (local.get $7)
+ )
+ (local.set $0
+ (local.get $9)
+ )
+ (br $while-in20)
)
- (br $while-in20)
)
)
- )
- (if
- (i32.lt_u
- (local.get $0)
- (local.get $8)
- )
- (call $_abort)
- (block
- (i32.store
+ (if
+ (i32.lt_u
(local.get $0)
- (i32.const 0)
- )
- (local.set $10
- (local.get $1)
+ (local.get $11)
)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.tee $11
- (i32.load offset=8
- (local.get $4)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $0)
+ (i32.const 0)
)
- )
- (local.get $8)
- )
- (call $_abort)
- )
- (if
- (i32.ne
- (local.get $4)
- (i32.load
- (local.tee $7
- (i32.add
- (local.get $11)
- (i32.const 12)
- )
+ (local.set $12
+ (local.get $1)
)
)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
+ (block
+ (if
+ (i32.lt_u
(local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 8)
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 8)
+ )
)
)
+ (local.get $11)
)
- (local.get $4)
+ (call $_abort)
)
- (block
- (i32.store
- (local.get $7)
- (local.get $0)
+ (if
+ (i32.ne
+ (local.get $4)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (i32.store
- (local.get $1)
- (local.get $11)
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load offset=8
+ (local.get $0)
+ )
+ (local.get $4)
)
- (local.set $10
- (local.get $0)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $12
+ (local.get $0)
+ )
)
+ (call $_abort)
)
- (call $_abort)
)
)
- )
- (if
- (local.get $12)
- (block $do-once21
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (i32.shl
- (local.tee $1
- (i32.load offset=28
- (local.get $4)
+ (if
+ (local.get $10)
+ (block $do-once21
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.tee $1
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 28)
+ )
+ )
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
)
+ (local.get $4)
)
- (local.get $4)
- )
- (block
- (i32.store
- (local.get $0)
- (local.get $10)
- )
- (if
- (i32.eqz
- (local.get $10)
+ (block
+ (i32.store
+ (local.get $0)
+ (local.get $12)
)
- (block
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
- )
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (if
+ (i32.eqz
+ (local.get $12)
+ )
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ (i32.const -1)
)
- (i32.const -1)
)
)
+ (br $do-once21)
)
- (br $do-once21)
)
)
- )
- (block
- (if
- (i32.lt_u
- (local.get $12)
- (i32.load
- (i32.const 192)
+ (block
+ (if
+ (i32.lt_u
+ (local.get $10)
+ (i32.load
+ (i32.const 192)
+ )
)
+ (call $_abort)
)
- (call $_abort)
- )
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $12)
- (i32.const 16)
- )
+ (if
+ (i32.eq
+ (i32.load offset=16
+ (local.get $10)
)
+ (local.get $4)
+ )
+ (i32.store offset=16
+ (local.get $10)
+ (local.get $12)
+ )
+ (i32.store offset=20
+ (local.get $10)
+ (local.get $12)
)
- (local.get $4)
- )
- (i32.store
- (local.get $0)
- (local.get $10)
- )
- (i32.store offset=20
- (local.get $12)
- (local.get $10)
)
- )
- (br_if $do-once21
- (i32.eqz
- (local.get $10)
+ (br_if $do-once21
+ (i32.eqz
+ (local.get $12)
+ )
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $10)
- (local.tee $0
- (i32.load
- (i32.const 192)
+ (if
+ (i32.lt_u
+ (local.get $12)
+ (local.tee $0
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (call $_abort)
)
- (call $_abort)
- )
- (i32.store offset=24
- (local.get $10)
- (local.get $12)
- )
- (if
- (local.tee $1
- (i32.load offset=16
- (local.get $4)
+ (i32.store
+ (i32.add
+ (local.get $12)
+ (i32.const 24)
)
+ (local.get $10)
)
(if
- (i32.lt_u
- (local.get $1)
- (local.get $0)
+ (local.tee $1
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 16)
+ )
+ )
)
- (call $_abort)
- (block
- (i32.store offset=16
- (local.get $10)
+ (if
+ (i32.lt_u
(local.get $1)
+ (local.get $0)
)
- (i32.store offset=24
- (local.get $1)
- (local.get $10)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.add
+ (local.get $12)
+ (i32.const 16)
+ )
+ (local.get $1)
+ )
+ (i32.store offset=24
+ (local.get $1)
+ (local.get $12)
+ )
)
)
)
- )
- (if
- (local.tee $0
- (i32.load offset=20
- (local.get $4)
- )
- )
(if
- (i32.lt_u
- (local.get $0)
+ (local.tee $0
(i32.load
- (i32.const 192)
+ (i32.add
+ (local.get $4)
+ (i32.const 20)
+ )
)
)
- (call $_abort)
- (block
- (i32.store offset=20
- (local.get $10)
+ (if
+ (i32.lt_u
(local.get $0)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.store offset=24
- (local.get $0)
- (local.get $10)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.add
+ (local.get $12)
+ (i32.const 20)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=24
+ (local.get $0)
+ (local.get $12)
+ )
)
)
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $3)
- (i32.const 16)
- )
- (block
- (i32.store offset=4
- (local.get $4)
- (i32.or
- (local.tee $0
- (i32.add
- (local.get $2)
- (local.get $3)
+ (if
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 16)
+ )
+ (block
+ (i32.store
+ (i32.add
+ (local.get $4)
+ (i32.const 4)
+ )
+ (i32.or
+ (local.tee $0
+ (i32.add
+ (local.get $2)
+ (local.get $3)
+ )
)
+ (i32.const 3)
)
- (i32.const 3)
)
- )
- (i32.store
- (local.tee $0
- (i32.add
+ (i32.store offset=4
+ (local.tee $0
(i32.add
(local.get $0)
(local.get $4)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.load
- (local.get $0)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const 1)
)
- (i32.const 1)
)
)
- )
- (block $do-once25
- (i32.store offset=4
- (local.get $4)
- (i32.or
- (local.get $2)
- (i32.const 3)
- )
- )
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.get $3)
- (i32.const 1)
+ (block $do-once25
+ (i32.store
+ (i32.add
+ (local.get $4)
+ (i32.const 4)
+ )
+ (i32.or
+ (local.get $3)
+ (i32.const 3)
+ )
)
- )
- (i32.store
- (i32.add
- (local.get $3)
+ (i32.store offset=4
(local.get $5)
+ (i32.or
+ (local.get $2)
+ (i32.const 1)
+ )
)
- (local.get $3)
- )
- (local.set $0
- (i32.shr_u
- (local.get $3)
- (i32.const 3)
+ (i32.store
+ (i32.add
+ (local.get $2)
+ (local.get $5)
+ )
+ (local.get $2)
)
- )
- (if
- (i32.lt_u
- (local.get $3)
- (i32.const 256)
+ (local.set $0
+ (i32.shr_u
+ (local.get $2)
+ (i32.const 3)
+ )
)
- (block
- (local.set $3
- (i32.add
- (i32.shl
- (local.get $0)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (if
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 256)
)
- (if
- (i32.and
- (local.tee $1
- (i32.load
- (i32.const 176)
- )
- )
- (local.tee $0
+ (block
+ (local.set $2
+ (i32.add
(i32.shl
- (i32.const 1)
(local.get $0)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
(if
- (i32.lt_u
- (local.tee $0
+ (i32.and
+ (local.tee $1
(i32.load
- (local.tee $1
- (i32.add
- (local.get $3)
- (i32.const 8)
+ (i32.const 176)
+ )
+ )
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
+ (local.get $0)
+ )
+ )
+ )
+ (block
+ (local.set $1
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $0
+ (i32.load offset=8
+ (local.get $2)
)
)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ (block
+ (local.set $13
+ (local.get $1)
+ )
+ (local.set $6
+ (local.get $0)
+ )
)
- )
- (i32.load
- (i32.const 192)
)
)
- (call $_abort)
(block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
+ )
(local.set $13
- (local.get $1)
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
)
(local.set $6
- (local.get $0)
+ (local.get $2)
)
)
)
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $0)
- (local.get $1)
- )
- )
- (local.set $13
- (i32.add
- (local.get $3)
- (i32.const 8)
- )
- )
- (local.set $6
- (local.get $3)
+ (i32.store
+ (local.get $13)
+ (local.get $5)
+ )
+ (i32.store
+ (i32.add
+ (local.get $6)
+ (i32.const 12)
)
+ (local.get $5)
)
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $6)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $2)
+ )
+ (br $do-once25)
)
- (i32.store
- (local.get $13)
- (local.get $5)
- )
- (i32.store offset=12
- (local.get $6)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $6)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $3)
- )
- (br $do-once25)
)
- )
- (local.set $2
- (i32.add
- (i32.shl
- (local.tee $7
- (if (result i32)
- (local.tee $0
- (i32.shr_u
- (local.get $3)
- (i32.const 8)
- )
- )
+ (local.set $3
+ (i32.add
+ (i32.shl
+ (local.tee $7
(if (result i32)
- (i32.gt_u
- (local.get $3)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $2)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $7
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $0)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $2)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $7
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $0)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (local.set $2
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.get $7)
+ (local.set $3
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.get $7)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $3)
- (i32.add
- (local.tee $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $2)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
- (local.get $1)
- (local.get $7)
+ (i32.or
+ (local.get $1)
+ (local.get $7)
+ )
+ (local.get $3)
)
- (local.get $2)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $0)
- (local.get $2)
+ (i32.shr_u
+ (i32.shl
+ (local.get $0)
+ (local.get $3)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $0)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
- )
- (i32.store offset=28
- (local.get $5)
- (local.get $7)
- )
- (i32.store offset=4
- (local.tee $0
+ (i32.store offset=28
+ (local.get $5)
+ (local.get $7)
+ )
+ (i32.store offset=4
(i32.add
(local.get $5)
(i32.const 16)
)
+ (i32.const 0)
)
- (i32.const 0)
- )
- (i32.store
- (local.get $0)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $1
- (i32.load
- (i32.const 180)
+ (i32.store offset=16
+ (local.get $5)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $1
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (local.tee $0
- (i32.shl
- (i32.const 1)
- (local.get $7)
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
+ (local.get $7)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (local.get $0)
- (local.get $1)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
)
+ (i32.store
+ (local.get $3)
+ (local.get $5)
+ )
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $3)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
+ )
+ (br $do-once25)
)
- (i32.store
- (local.get $2)
- (local.get $5)
- )
- (i32.store offset=24
- (local.get $5)
- (local.get $2)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $5)
- )
- (br $do-once25)
)
- )
- (local.set $7
- (i32.shl
- (local.get $3)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
+ (local.set $7
+ (i32.shl
+ (local.get $2)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $7)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
(local.get $7)
- (i32.const 1)
+ (i32.const 31)
)
)
- (i32.eq
- (local.get $7)
- (i32.const 31)
- )
)
)
- )
- (local.set $0
- (i32.load
- (local.get $2)
+ (local.set $0
+ (i32.load
+ (local.get $3)
+ )
)
- )
- (block $__rjto$1
- (block $__rjti$1
- (loop $while-in28
- (br_if $__rjti$1
- (i32.eq
- (i32.and
- (i32.load offset=4
- (local.get $0)
+ (block $__rjto$1
+ (block $__rjti$1
+ (loop $while-in28
+ (br_if $__rjti$1
+ (i32.eq
+ (i32.and
+ (i32.load
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
+ )
+ (i32.const -8)
)
- (i32.const -8)
+ (local.get $2)
)
- (local.get $3)
)
- )
- (local.set $2
- (i32.shl
- (local.get $7)
- (i32.const 1)
+ (local.set $3
+ (i32.shl
+ (local.get $7)
+ (i32.const 1)
+ )
)
- )
- (if
- (local.tee $1
- (i32.load
- (local.tee $7
- (i32.add
+ (if
+ (local.tee $1
+ (i32.load
+ (local.tee $7
(i32.add
- (local.get $0)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $7)
- (i32.const 31)
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $7)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
)
+ (block
+ (local.set $7
+ (local.get $3)
+ )
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in28)
+ )
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $7)
+ (i32.load
+ (i32.const 192)
+ )
)
+ (call $_abort)
(block
- (local.set $7
- (local.get $2)
+ (i32.store
+ (local.get $7)
+ (local.get $5)
)
- (local.set $0
- (local.get $1)
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $0)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
)
- (br $while-in28)
+ (br $do-once25)
)
)
+ (br $__rjto$1)
)
(if
- (i32.lt_u
- (local.get $7)
- (i32.load
- (i32.const 192)
+ (i32.and
+ (i32.ge_u
+ (local.tee $2
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (local.tee $1
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $1)
)
)
- (call $_abort)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=12
+ (local.get $2)
(local.get $5)
)
- (i32.store offset=24
- (local.get $5)
+ (i32.store offset=8
(local.get $0)
- )
- (i32.store offset=12
- (local.get $5)
(local.get $5)
)
(i32.store offset=8
(local.get $5)
- (local.get $5)
+ (local.get $2)
)
- (br $do-once25)
- )
- )
- (br $__rjto$1)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $2
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
- )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $0)
)
- (local.tee $1
- (i32.load
- (i32.const 192)
- )
+ (i32.store offset=24
+ (local.get $5)
+ (i32.const 0)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $1)
- )
- )
- (block
- (i32.store offset=12
- (local.get $2)
- (local.get $5)
- )
- (i32.store
- (local.get $3)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $2)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $0)
- )
- (i32.store offset=24
- (local.get $5)
- (i32.const 0)
- )
+ (call $_abort)
)
- (call $_abort)
)
)
)
- )
- (return
- (i32.add
- (local.get $4)
- (i32.const 8)
+ (return
+ (i32.add
+ (local.get $4)
+ (i32.const 8)
+ )
)
)
+ (local.get $3)
)
- (local.get $2)
+ (local.get $3)
)
- (local.get $2)
)
+ (local.get $3)
)
- (local.get $2)
)
)
)
)
- )
- (if
- (i32.ge_u
- (local.tee $1
- (i32.load
- (i32.const 184)
- )
- )
- (local.get $0)
- )
- (block
- (local.set $2
- (i32.load
- (i32.const 196)
+ (if
+ (i32.ge_u
+ (local.tee $1
+ (i32.load
+ (i32.const 184)
+ )
)
+ (local.get $0)
)
- (if
- (i32.gt_u
- (local.tee $3
- (i32.sub
- (local.get $1)
- (local.get $0)
- )
+ (block
+ (local.set $3
+ (i32.load
+ (i32.const 196)
)
- (i32.const 15)
)
- (block
- (i32.store
- (i32.const 196)
- (local.tee $1
- (i32.add
+ (if
+ (i32.gt_u
+ (local.tee $2
+ (i32.sub
+ (local.get $1)
(local.get $0)
- (local.get $2)
)
)
+ (i32.const 15)
)
- (i32.store
- (i32.const 184)
- (local.get $3)
- )
- (i32.store offset=4
- (local.get $1)
- (i32.or
- (local.get $3)
- (i32.const 1)
+ (block
+ (i32.store
+ (i32.const 196)
+ (local.tee $1
+ (i32.add
+ (local.get $0)
+ (local.get $3)
+ )
+ )
)
- )
- (i32.store
- (i32.add
+ (i32.store
+ (i32.const 184)
+ (local.get $2)
+ )
+ (i32.store offset=4
(local.get $1)
+ (i32.or
+ (local.get $2)
+ (i32.const 1)
+ )
+ )
+ (i32.store
+ (i32.add
+ (local.get $1)
+ (local.get $2)
+ )
+ (local.get $2)
+ )
+ (i32.store offset=4
(local.get $3)
+ (i32.or
+ (local.get $0)
+ (i32.const 3)
+ )
)
- (local.get $3)
)
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $0)
- (i32.const 3)
+ (block
+ (i32.store
+ (i32.const 184)
+ (i32.const 0)
)
- )
- )
- (block
- (i32.store
- (i32.const 184)
- (i32.const 0)
- )
- (i32.store
- (i32.const 196)
- (i32.const 0)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $1)
- (i32.const 3)
+ (i32.store
+ (i32.const 196)
+ (i32.const 0)
)
- )
- (i32.store
- (local.tee $0
- (i32.add
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.get $1)
+ (i32.const 3)
+ )
+ )
+ (i32.store offset=4
+ (local.tee $0
(i32.add
(local.get $1)
- (local.get $2)
+ (local.get $3)
)
- (i32.const 4)
)
- )
- (i32.or
- (i32.load
- (local.get $0)
+ (i32.or
+ (i32.load offset=4
+ (local.get $0)
+ )
+ (i32.const 1)
)
- (i32.const 1)
)
)
)
- )
- (return
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
+ (br $folding-inner1)
)
)
- )
- (block $folding-inner0
- (br_if $folding-inner0
- (i32.gt_u
- (local.tee $1
- (i32.load
- (i32.const 188)
+ (block $folding-inner0
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $1
+ (i32.load
+ (i32.const 188)
+ )
)
- )
- (local.get $0)
- )
- )
- (if
- (i32.eqz
- (i32.load
- (i32.const 648)
+ (local.get $0)
)
)
(if
- (i32.and
- (local.tee $1
- (call $_sysconf
- (i32.const 30)
- )
- )
- (i32.add
- (local.get $1)
- (i32.const -1)
+ (i32.eqz
+ (i32.load
+ (i32.const 648)
)
)
- (call $_abort)
- (block
- (i32.store
- (i32.const 656)
- (local.get $1)
- )
- (i32.store
- (i32.const 652)
- (local.get $1)
- )
- (i32.store
- (i32.const 660)
- (i32.const -1)
- )
- (i32.store
- (i32.const 664)
- (i32.const -1)
- )
- (i32.store
- (i32.const 668)
- (i32.const 0)
- )
- (i32.store
- (i32.const 620)
- (i32.const 0)
+ (if
+ (i32.and
+ (local.tee $1
+ (call $_sysconf
+ (i32.const 30)
+ )
+ )
+ (i32.add
+ (local.get $1)
+ (i32.const -1)
+ )
)
- (i32.store
- (i32.const 648)
- (i32.xor
- (i32.and
- (call $_time
- (i32.const 0)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.const 656)
+ (local.get $1)
+ )
+ (i32.store
+ (i32.const 652)
+ (local.get $1)
+ )
+ (i32.store
+ (i32.const 660)
+ (i32.const -1)
+ )
+ (i32.store
+ (i32.const 664)
+ (i32.const -1)
+ )
+ (i32.store
+ (i32.const 668)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 620)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 648)
+ (i32.xor
+ (i32.and
+ (call $_time
+ (i32.const 0)
+ )
+ (i32.const -16)
)
- (i32.const -16)
+ (i32.const 1431655768)
)
- (i32.const 1431655768)
)
)
)
)
- )
- (if
- (i32.le_u
- (local.tee $6
- (i32.and
- (local.tee $5
- (i32.add
- (local.tee $1
- (i32.load
- (i32.const 656)
+ (if
+ (i32.le_u
+ (local.tee $6
+ (i32.and
+ (local.tee $5
+ (i32.add
+ (local.tee $1
+ (i32.load
+ (i32.const 656)
+ )
)
- )
- (local.tee $9
- (i32.add
- (local.get $0)
- (i32.const 47)
+ (local.tee $8
+ (i32.add
+ (local.get $0)
+ (i32.const 47)
+ )
)
)
)
- )
- (local.tee $12
- (i32.sub
- (i32.const 0)
- (local.get $1)
+ (local.tee $10
+ (i32.sub
+ (i32.const 0)
+ (local.get $1)
+ )
)
)
)
+ (local.get $0)
)
- (local.get $0)
- )
- (return
- (i32.const 0)
- )
- )
- (if
- (local.tee $2
- (i32.load
- (i32.const 616)
+ (return
+ (i32.const 0)
)
)
(if
- (i32.or
- (i32.le_u
- (local.tee $1
- (i32.add
- (local.tee $3
- (i32.load
- (i32.const 608)
+ (local.tee $3
+ (i32.load
+ (i32.const 616)
+ )
+ )
+ (if
+ (i32.or
+ (i32.le_u
+ (local.tee $1
+ (i32.add
+ (local.tee $2
+ (i32.load
+ (i32.const 608)
+ )
)
+ (local.get $6)
)
- (local.get $6)
)
+ (local.get $2)
+ )
+ (i32.gt_u
+ (local.get $1)
+ (local.get $3)
)
- (local.get $3)
)
- (i32.gt_u
- (local.get $1)
- (local.get $2)
+ (return
+ (i32.const 0)
)
)
- (return
- (i32.const 0)
- )
)
- )
- (local.set $10
- (i32.add
- (local.get $0)
- (i32.const 48)
+ (local.set $12
+ (i32.add
+ (local.get $0)
+ (i32.const 48)
+ )
)
- )
- (block $__rjto$13
- (block $__rjti$13
- (if
- (i32.eqz
- (i32.and
- (i32.load
- (i32.const 620)
+ (block $__rjto$13
+ (block $__rjti$13
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (i32.const 620)
+ )
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (block
- (block $label$break$L279
- (block $__rjti$5
- (block $__rjti$4
- (br_if $__rjti$4
- (i32.eqz
- (local.tee $4
- (i32.load
- (i32.const 200)
+ (block
+ (block $label$break$L279
+ (block $__rjti$5
+ (block $__rjti$4
+ (br_if $__rjti$4
+ (i32.eqz
+ (local.tee $4
+ (i32.load
+ (i32.const 200)
+ )
)
)
)
- )
- (local.set $1
- (i32.const 624)
- )
- (loop $while-in34
- (block $while-out33
- (if
- (i32.le_u
- (local.tee $3
- (i32.load
- (local.get $1)
- )
- )
- (local.get $4)
- )
+ (local.set $1
+ (i32.const 624)
+ )
+ (loop $while-in34
+ (block $while-out33
(if
- (i32.gt_u
- (i32.add
- (local.get $3)
+ (i32.le_u
+ (local.tee $2
(i32.load
- (local.tee $2
- (i32.add
- (local.get $1)
- (i32.const 4)
- )
- )
+ (local.get $1)
)
)
(local.get $4)
)
- (block
- (local.set $4
- (local.get $1)
+ (if
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
+ )
+ )
+ )
+ (local.get $4)
+ )
+ (block
+ (local.set $4
+ (local.get $1)
+ )
+ (br $while-out33)
)
- (br $while-out33)
- )
- )
- )
- (br_if $while-in34
- (local.tee $1
- (i32.load offset=8
- (local.get $1)
)
)
- )
- (br $__rjti$4)
- )
- )
- (if
- (i32.lt_u
- (local.tee $3
- (i32.and
- (i32.sub
- (local.get $5)
+ (br_if $while-in34
+ (local.tee $1
(i32.load
- (i32.const 188)
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
)
)
- (local.get $12)
)
+ (br $__rjti$4)
)
- (i32.const 2147483647)
)
- (block
- (local.set $1
- (call $_sbrk
- (local.get $3)
- )
- )
- (if
- (i32.eq
- (i32.add
- (i32.load
- (local.get $4)
- )
- (i32.load
- (local.get $2)
+ (if
+ (i32.lt_u
+ (local.tee $2
+ (i32.and
+ (i32.sub
+ (local.get $5)
+ (i32.load
+ (i32.const 188)
+ )
)
+ (local.get $10)
)
- (local.get $1)
)
- (br_if $__rjti$13
- (i32.ne
- (local.get $1)
- (i32.const -1)
+ (i32.const 2147483647)
+ )
+ (block
+ (local.set $1
+ (call $_sbrk
+ (local.get $2)
)
)
- (block
- (local.set $2
+ (if
+ (i32.eq
+ (i32.add
+ (i32.load
+ (local.get $4)
+ )
+ (i32.load
+ (local.get $3)
+ )
+ )
(local.get $1)
)
- (br $__rjti$5)
+ (br_if $__rjti$13
+ (i32.ne
+ (local.get $1)
+ (i32.const -1)
+ )
+ )
+ (block
+ (local.set $3
+ (local.get $1)
+ )
+ (br $__rjti$5)
+ )
)
)
)
+ (br $label$break$L279)
)
- (br $label$break$L279)
- )
- (if
- (i32.ne
- (local.tee $1
- (call $_sbrk
- (i32.const 0)
+ (if
+ (i32.ne
+ (local.tee $1
+ (call $_sbrk
+ (i32.const 0)
+ )
)
+ (i32.const -1)
)
- (i32.const -1)
- )
- (block
- (local.set $3
- (if (result i32)
- (i32.and
- (local.tee $3
- (local.get $1)
- )
- (local.tee $2
- (i32.add
- (local.tee $4
- (i32.load
- (i32.const 652)
+ (block
+ (local.set $2
+ (if (result i32)
+ (i32.and
+ (local.tee $2
+ (local.get $1)
+ )
+ (local.tee $3
+ (i32.add
+ (local.tee $4
+ (i32.load
+ (i32.const 652)
+ )
)
+ (i32.const -1)
)
- (i32.const -1)
)
)
- )
- (i32.add
- (i32.sub
- (local.get $6)
- (local.get $3)
- )
- (i32.and
- (i32.add
+ (i32.add
+ (i32.sub
+ (local.get $6)
(local.get $2)
- (local.get $3)
)
- (i32.sub
- (i32.const 0)
- (local.get $4)
+ (i32.and
+ (i32.add
+ (local.get $2)
+ (local.get $3)
+ )
+ (i32.sub
+ (i32.const 0)
+ (local.get $4)
+ )
)
)
+ (local.get $6)
)
- (local.get $6)
)
- )
- (local.set $12
- (i32.add
- (local.tee $4
- (i32.load
- (i32.const 608)
+ (local.set $10
+ (i32.add
+ (local.tee $4
+ (i32.load
+ (i32.const 608)
+ )
)
- )
- (local.get $3)
- )
- )
- (if
- (i32.and
- (i32.lt_u
- (local.get $3)
- (i32.const 2147483647)
- )
- (i32.gt_u
- (local.get $3)
- (local.get $0)
+ (local.get $2)
)
)
- (block
- (if
- (local.tee $2
- (i32.load
- (i32.const 616)
- )
+ (if
+ (i32.and
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 2147483647)
)
- (br_if $label$break$L279
- (i32.or
- (i32.le_u
- (local.get $12)
- (local.get $4)
+ (i32.gt_u
+ (local.get $2)
+ (local.get $0)
+ )
+ )
+ (block
+ (if
+ (local.tee $3
+ (i32.load
+ (i32.const 616)
)
- (i32.gt_u
- (local.get $12)
- (local.get $2)
+ )
+ (br_if $label$break$L279
+ (i32.or
+ (i32.le_u
+ (local.get $10)
+ (local.get $4)
+ )
+ (i32.gt_u
+ (local.get $10)
+ (local.get $3)
+ )
)
)
)
- )
- (br_if $__rjti$13
- (i32.eq
- (local.get $1)
- (local.tee $2
- (call $_sbrk
- (local.get $3)
+ (br_if $__rjti$13
+ (i32.eq
+ (local.get $1)
+ (local.tee $3
+ (call $_sbrk
+ (local.get $2)
+ )
)
)
)
+ (br $__rjti$5)
)
- (br $__rjti$5)
)
)
)
+ (br $label$break$L279)
)
- (br $label$break$L279)
- )
- (local.set $1
- (local.get $3)
- )
- (local.set $4
- (i32.sub
- (i32.const 0)
- (local.get $1)
+ (local.set $1
+ (local.get $2)
)
- )
- (local.set $3
- (if (result i32)
- (i32.and
+ (local.set $4
+ (i32.sub
+ (i32.const 0)
+ (local.get $1)
+ )
+ )
+ (local.set $2
+ (if (result i32)
(i32.and
- (i32.ne
- (local.get $2)
- (i32.const -1)
+ (i32.and
+ (i32.ne
+ (local.get $3)
+ (i32.const -1)
+ )
+ (i32.lt_u
+ (local.get $1)
+ (i32.const 2147483647)
+ )
)
- (i32.lt_u
+ (i32.gt_u
+ (local.get $12)
(local.get $1)
- (i32.const 2147483647)
)
)
- (i32.gt_u
- (local.get $10)
- (local.get $1)
- )
- )
- (if (result i32)
- (i32.lt_u
- (local.tee $3
- (i32.and
- (i32.add
- (local.tee $3
- (i32.load
- (i32.const 656)
+ (if (result i32)
+ (i32.lt_u
+ (local.tee $2
+ (i32.and
+ (i32.add
+ (local.tee $2
+ (i32.load
+ (i32.const 656)
+ )
+ )
+ (i32.sub
+ (local.get $8)
+ (local.get $1)
)
)
(i32.sub
- (local.get $9)
- (local.get $1)
+ (i32.const 0)
+ (local.get $2)
)
)
- (i32.sub
- (i32.const 0)
- (local.get $3)
- )
)
+ (i32.const 2147483647)
)
- (i32.const 2147483647)
- )
- (if (result i32)
- (i32.eq
- (call $_sbrk
- (local.get $3)
- )
- (i32.const -1)
- )
- (block
- (drop
+ (if (result i32)
+ (i32.eq
(call $_sbrk
- (local.get $4)
+ (local.get $2)
)
+ (i32.const -1)
+ )
+ (block
+ (drop
+ (call $_sbrk
+ (local.get $4)
+ )
+ )
+ (br $label$break$L279)
+ )
+ (i32.add
+ (local.get $1)
+ (local.get $2)
)
- (br $label$break$L279)
- )
- (i32.add
- (local.get $1)
- (local.get $3)
)
+ (local.get $1)
)
(local.get $1)
)
- (local.get $1)
- )
- )
- (if
- (i32.ne
- (local.get $2)
- (i32.const -1)
)
- (block
- (local.set $1
- (local.get $2)
+ (if
+ (i32.ne
+ (local.get $3)
+ (i32.const -1)
+ )
+ (block
+ (local.set $1
+ (local.get $3)
+ )
+ (br $__rjti$13)
)
- (br $__rjti$13)
)
)
- )
- (i32.store
- (i32.const 620)
- (i32.or
- (i32.load
- (i32.const 620)
+ (i32.store
+ (i32.const 620)
+ (i32.or
+ (i32.load
+ (i32.const 620)
+ )
+ (i32.const 4)
)
- (i32.const 4)
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $6)
- (i32.const 2147483647)
- )
(if
- (i32.and
- (i32.lt_u
- (local.tee $1
- (call $_sbrk
- (local.get $6)
+ (i32.lt_u
+ (local.get $6)
+ (i32.const 2147483647)
+ )
+ (if
+ (i32.and
+ (i32.lt_u
+ (local.tee $1
+ (call $_sbrk
+ (local.get $6)
+ )
+ )
+ (local.tee $2
+ (call $_sbrk
+ (i32.const 0)
+ )
)
)
- (local.tee $3
- (call $_sbrk
- (i32.const 0)
+ (i32.and
+ (i32.ne
+ (local.get $1)
+ (i32.const -1)
+ )
+ (i32.ne
+ (local.get $2)
+ (i32.const -1)
)
)
)
- (i32.and
- (i32.ne
- (local.get $1)
- (i32.const -1)
- )
- (i32.ne
- (local.get $3)
- (i32.const -1)
+ (br_if $__rjti$13
+ (i32.gt_u
+ (local.tee $2
+ (i32.sub
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (i32.add
+ (local.get $0)
+ (i32.const 40)
+ )
)
)
)
- (br_if $__rjti$13
- (i32.gt_u
- (local.tee $3
- (i32.sub
- (local.get $3)
- (local.get $1)
- )
- )
- (i32.add
- (local.get $0)
- (i32.const 40)
- )
+ )
+ (br $__rjto$13)
+ )
+ (i32.store
+ (i32.const 608)
+ (local.tee $3
+ (i32.add
+ (i32.load
+ (i32.const 608)
)
+ (local.get $2)
)
)
)
- (br $__rjto$13)
- )
- (i32.store
- (i32.const 608)
- (local.tee $2
- (i32.add
+ (if
+ (i32.gt_u
+ (local.get $3)
(i32.load
- (i32.const 608)
+ (i32.const 612)
)
- (local.get $3)
)
- )
- )
- (if
- (i32.gt_u
- (local.get $2)
- (i32.load
+ (i32.store
(i32.const 612)
+ (local.get $3)
)
)
- (i32.store
- (i32.const 612)
- (local.get $2)
- )
- )
- (if
- (local.tee $5
- (i32.load
- (i32.const 200)
- )
- )
- (block $do-once40
- (local.set $2
- (i32.const 624)
+ (if
+ (local.tee $5
+ (i32.load
+ (i32.const 200)
+ )
)
- (block $__rjto$10
- (block $__rjti$10
- (loop $while-in45
- (br_if $__rjti$10
- (i32.eq
- (i32.add
- (local.tee $10
- (i32.load
- (local.get $2)
+ (block $do-once40
+ (local.set $3
+ (i32.const 624)
+ )
+ (block $__rjto$10
+ (block $__rjti$10
+ (loop $while-in45
+ (br_if $__rjti$10
+ (i32.eq
+ (i32.add
+ (local.tee $12
+ (i32.load
+ (local.get $3)
+ )
)
- )
- (local.tee $6
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $2)
- (i32.const 4)
+ (local.tee $6
+ (i32.load
+ (local.tee $4
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
)
)
)
)
+ (local.get $1)
)
- (local.get $1)
)
- )
- (br_if $while-in45
- (local.tee $2
- (i32.load offset=8
- (local.get $2)
+ (br_if $while-in45
+ (local.tee $3
+ (i32.load
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
)
)
)
- )
- (br $__rjto$10)
- )
- (if
- (i32.eqz
- (i32.and
- (i32.load offset=12
- (local.get $2)
- )
- (i32.const 8)
- )
+ (br $__rjto$10)
)
(if
- (i32.and
- (i32.lt_u
- (local.get $5)
- (local.get $1)
- )
- (i32.ge_u
- (local.get $5)
- (local.get $10)
- )
- )
- (block
- (i32.store
- (local.get $4)
- (i32.add
+ (i32.eqz
+ (i32.and
+ (i32.load offset=12
(local.get $3)
- (local.get $6)
)
+ (i32.const 8)
)
- (local.set $2
- (i32.add
+ )
+ (if
+ (i32.and
+ (i32.lt_u
(local.get $5)
- (local.tee $1
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $1
- (i32.add
- (local.get $5)
- (i32.const 8)
+ (local.get $1)
+ )
+ (i32.ge_u
+ (local.get $5)
+ (local.get $12)
+ )
+ )
+ (block
+ (i32.store
+ (local.get $4)
+ (i32.add
+ (local.get $2)
+ (local.get $6)
+ )
+ )
+ (local.set $3
+ (i32.add
+ (local.get $5)
+ (local.tee $1
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $5)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $1)
- (i32.const 7)
)
)
)
)
- )
- (local.set $1
- (i32.add
- (i32.load
- (i32.const 188)
- )
- (i32.sub
- (local.get $3)
- (local.get $1)
+ (local.set $1
+ (i32.add
+ (i32.load
+ (i32.const 188)
+ )
+ (i32.sub
+ (local.get $2)
+ (local.get $1)
+ )
)
)
- )
- (i32.store
- (i32.const 200)
- (local.get $2)
- )
- (i32.store
- (i32.const 188)
- (local.get $1)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $1)
- (i32.const 1)
+ (i32.store
+ (i32.const 200)
+ (local.get $3)
)
- )
- (i32.store offset=4
- (i32.add
+ (i32.store
+ (i32.const 188)
(local.get $1)
- (local.get $2)
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
)
+ (i32.store offset=4
+ (i32.add
+ (local.get $1)
+ (local.get $3)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
+ )
+ (br $do-once40)
)
- (br $do-once40)
)
)
)
- )
- (if
- (i32.lt_u
- (local.get $1)
- (local.tee $4
- (i32.load
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.tee $4
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (block
+ (i32.store
(i32.const 192)
+ (local.get $1)
+ )
+ (local.set $4
+ (local.get $1)
)
)
)
- (block
- (i32.store
- (i32.const 192)
- (local.get $1)
- )
- (local.set $4
+ (local.set $12
+ (i32.add
(local.get $1)
+ (local.get $2)
)
)
- )
- (local.set $10
- (i32.add
- (local.get $1)
- (local.get $3)
+ (local.set $3
+ (i32.const 624)
)
- )
- (local.set $2
- (i32.const 624)
- )
- (local.set $4
- (block $__rjto$11 (result i32)
- (block $__rjti$11
- (br $__rjto$11
- (loop $while-in47 (result i32)
- (if
- (i32.eq
- (i32.load
- (local.get $2)
+ (local.set $4
+ (block $__rjto$11 (result i32)
+ (block $__rjti$11
+ (br $__rjto$11
+ (loop $while-in47 (result i32)
+ (if
+ (i32.eq
+ (i32.load
+ (local.get $3)
+ )
+ (local.get $12)
)
- (local.get $10)
- )
- (block
- (local.set $6
- (local.get $2)
+ (block
+ (local.set $6
+ (local.get $3)
+ )
+ (br $__rjti$11)
)
- (br $__rjti$11)
)
- )
- (br_if $while-in47
- (local.tee $2
- (i32.load offset=8
- (local.get $2)
+ (br_if $while-in47
+ (local.tee $3
+ (i32.load
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
)
)
+ (i32.const 624)
)
- (i32.const 624)
)
)
- )
- (if (result i32)
- (i32.and
- (i32.load offset=12
- (local.get $2)
- )
- (i32.const 8)
- )
- (i32.const 624)
- (block
- (i32.store
- (local.get $6)
- (local.get $1)
- )
- (i32.store
- (local.tee $2
- (i32.add
- (local.get $2)
- (i32.const 4)
- )
- )
- (i32.add
- (i32.load
- (local.get $2)
- )
+ (if (result i32)
+ (i32.and
+ (i32.load offset=12
(local.get $3)
)
+ (i32.const 8)
)
- (local.set $9
- (i32.add
- (local.tee $12
- (i32.add
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $3
- (i32.add
- (local.get $1)
- (i32.const 8)
- )
- )
- )
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $3)
- (i32.const 7)
- )
- )
- (local.get $1)
+ (i32.const 624)
+ (block
+ (i32.store
+ (local.get $6)
+ (local.get $1)
+ )
+ (i32.store offset=4
+ (local.get $3)
+ (i32.add
+ (i32.load offset=4
+ (local.get $3)
)
+ (local.get $2)
)
- (local.get $0)
)
- )
- (local.set $7
- (i32.sub
- (i32.sub
- (local.tee $6
+ (local.set $8
+ (i32.add
+ (local.tee $10
(i32.add
- (local.get $10)
(select
(i32.and
(i32.sub
(i32.const 0)
- (local.tee $1
+ (local.tee $2
(i32.add
- (local.get $10)
+ (local.get $1)
(i32.const 8)
)
)
@@ -10897,1116 +10823,1146 @@
)
(i32.const 0)
(i32.and
- (local.get $1)
+ (local.get $2)
(i32.const 7)
)
)
+ (local.get $1)
)
)
- (local.get $12)
+ (local.get $0)
)
- (local.get $0)
)
- )
- (i32.store offset=4
- (local.get $12)
- (i32.or
- (local.get $0)
- (i32.const 3)
- )
- )
- (if
- (i32.eq
- (local.get $5)
- (local.get $6)
- )
- (block
- (i32.store
- (i32.const 188)
- (local.tee $0
- (i32.add
- (i32.load
- (i32.const 188)
+ (local.set $7
+ (i32.sub
+ (i32.sub
+ (local.tee $6
+ (i32.add
+ (local.get $12)
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $1
+ (i32.add
+ (local.get $12)
+ (i32.const 8)
+ )
+ )
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $1)
+ (i32.const 7)
+ )
+ )
)
- (local.get $7)
)
+ (local.get $10)
)
+ (local.get $0)
)
- (i32.store
- (i32.const 200)
- (local.get $9)
- )
- (i32.store offset=4
- (local.get $9)
- (i32.or
- (local.get $0)
- (i32.const 1)
- )
+ )
+ (i32.store offset=4
+ (local.get $10)
+ (i32.or
+ (local.get $0)
+ (i32.const 3)
)
)
- (block $do-once48
- (if
- (i32.eq
- (i32.load
- (i32.const 196)
- )
- (local.get $6)
- )
- (block
- (i32.store
- (i32.const 184)
- (local.tee $0
- (i32.add
- (i32.load
- (i32.const 184)
- )
- (local.get $7)
+ (if
+ (i32.eq
+ (local.get $5)
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 188)
+ (local.tee $0
+ (i32.add
+ (i32.load
+ (i32.const 188)
)
+ (local.get $7)
)
)
- (i32.store
- (i32.const 196)
- (local.get $9)
- )
- (i32.store offset=4
- (local.get $9)
- (i32.or
- (local.get $0)
- (i32.const 1)
- )
- )
- (i32.store
- (i32.add
- (local.get $0)
- (local.get $9)
- )
+ )
+ (i32.store
+ (i32.const 200)
+ (local.get $8)
+ )
+ (i32.store offset=4
+ (local.get $8)
+ (i32.or
(local.get $0)
+ (i32.const 1)
)
- (br $do-once48)
)
)
- (i32.store
- (local.tee $0
- (i32.add
- (if (result i32)
- (i32.eq
- (i32.and
- (local.tee $0
- (i32.load offset=4
- (local.get $6)
- )
+ (block $do-once48
+ (if
+ (i32.eq
+ (i32.load
+ (i32.const 196)
+ )
+ (local.get $6)
+ )
+ (block
+ (i32.store
+ (i32.const 184)
+ (local.tee $0
+ (i32.add
+ (i32.load
+ (i32.const 184)
)
- (i32.const 3)
+ (local.get $7)
)
+ )
+ )
+ (i32.store
+ (i32.const 196)
+ (local.get $8)
+ )
+ (i32.store offset=4
+ (local.get $8)
+ (i32.or
+ (local.get $0)
(i32.const 1)
)
- (block (result i32)
- (local.set $10
+ )
+ (i32.store
+ (i32.add
+ (local.get $0)
+ (local.get $8)
+ )
+ (local.get $0)
+ )
+ (br $do-once48)
+ )
+ )
+ (i32.store
+ (local.tee $0
+ (i32.add
+ (if (result i32)
+ (i32.eq
(i32.and
- (local.get $0)
- (i32.const -8)
- )
- )
- (local.set $1
- (i32.shr_u
- (local.get $0)
+ (local.tee $0
+ (i32.load offset=4
+ (local.get $6)
+ )
+ )
(i32.const 3)
)
+ (i32.const 1)
)
- (block $label$break$L331
- (if
- (i32.lt_u
+ (block (result i32)
+ (local.set $12
+ (i32.and
(local.get $0)
- (i32.const 256)
+ (i32.const -8)
)
- (block
- (local.set $2
- (i32.load offset=12
- (local.get $6)
- )
+ )
+ (local.set $1
+ (i32.shr_u
+ (local.get $0)
+ (i32.const 3)
+ )
+ )
+ (block $label$break$L331
+ (if
+ (i32.lt_u
+ (local.get $0)
+ (i32.const 256)
)
- (if
- (i32.ne
- (local.tee $3
- (i32.load offset=8
- (local.get $6)
- )
- )
- (local.tee $0
- (i32.add
- (i32.shl
- (local.get $1)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (block
+ (local.set $3
+ (i32.load offset=12
+ (local.get $6)
)
)
- (block $do-once51
- (if
- (i32.lt_u
- (local.get $3)
- (local.get $4)
+ (if
+ (i32.ne
+ (local.tee $2
+ (i32.load offset=8
+ (local.get $6)
+ )
)
- (call $_abort)
- )
- (br_if $do-once51
- (i32.eq
- (i32.load offset=12
- (local.get $3)
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.get $1)
+ (i32.const 3)
+ )
+ (i32.const 216)
)
- (local.get $6)
)
)
- (call $_abort)
- )
- )
- (if
- (i32.eq
- (local.get $2)
- (local.get $3)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.and
- (i32.load
- (i32.const 176)
+ (block $do-once51
+ (if
+ (i32.lt_u
+ (local.get $2)
+ (local.get $4)
)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (call $_abort)
+ )
+ (br_if $do-once51
+ (i32.eq
+ (i32.load offset=12
+ (local.get $2)
)
- (i32.const -1)
+ (local.get $6)
)
)
+ (call $_abort)
)
- (br $label$break$L331)
)
- )
- (if
- (i32.eq
- (local.get $0)
- (local.get $2)
- )
- (local.set $15
- (i32.add
+ (if
+ (i32.eq
(local.get $2)
- (i32.const 8)
+ (local.get $3)
+ )
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.and
+ (i32.load
+ (i32.const 176)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$L331)
)
)
- (block $do-once53
- (if
- (i32.lt_u
- (local.get $2)
- (local.get $4)
+ (if
+ (i32.eq
+ (local.get $0)
+ (local.get $3)
+ )
+ (local.set $15
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
+ (block $do-once53
+ (if
+ (i32.lt_u
+ (local.get $3)
+ (local.get $4)
)
- (local.get $6)
+ (call $_abort)
)
- (block
- (local.set $15
- (local.get $0)
+ (local.set $0
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
)
- (br $do-once53)
)
+ (if
+ (i32.eq
+ (i32.load offset=8
+ (local.get $3)
+ )
+ (local.get $6)
+ )
+ (block
+ (local.set $15
+ (local.get $0)
+ )
+ (br $do-once53)
+ )
+ )
+ (call $_abort)
)
- (call $_abort)
)
- )
- (i32.store offset=12
- (local.get $3)
- (local.get $2)
- )
- (i32.store
- (local.get $15)
- (local.get $3)
- )
- )
- (block
- (local.set $5
- (i32.load offset=24
- (local.get $6)
+ (i32.store offset=12
+ (local.get $2)
+ (local.get $3)
+ )
+ (i32.store
+ (local.get $15)
+ (local.get $2)
)
)
- (if
- (i32.eq
- (local.tee $0
- (i32.load offset=12
- (local.get $6)
- )
+ (block
+ (local.set $5
+ (i32.load offset=24
+ (local.get $6)
)
- (local.get $6)
)
- (block $do-once55
- (if
- (i32.eqz
- (local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.tee $3
- (i32.add
- (local.get $6)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
- )
+ (if
+ (i32.eq
+ (local.tee $0
+ (i32.load offset=12
+ (local.get $6)
)
)
- (block
- (br_if $do-once55
- (i32.eqz
- (local.tee $1
- (i32.load
- (local.get $3)
- )
+ (local.get $6)
+ )
+ (block $do-once55
+ (local.set $0
+ (i32.add
+ (local.tee $2
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
)
)
- )
- (local.set $0
- (local.get $3)
+ (i32.const 4)
)
)
- )
- (loop $while-in58
(if
- (local.tee $3
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $1)
- (i32.const 20)
- )
+ (i32.eqz
+ (local.tee $1
+ (i32.load offset=4
+ (local.get $2)
)
)
)
(block
- (local.set $1
- (local.get $3)
+ (br_if $do-once55
+ (i32.eqz
+ (local.tee $1
+ (i32.load offset=16
+ (local.get $6)
+ )
+ )
+ )
)
(local.set $0
(local.get $2)
)
- (br $while-in58)
)
)
- (if
- (local.tee $3
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $1)
- (i32.const 16)
+ (loop $while-in58
+ (if
+ (local.tee $2
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $1)
+ (i32.const 20)
+ )
)
)
)
+ (block
+ (local.set $1
+ (local.get $2)
+ )
+ (local.set $0
+ (local.get $3)
+ )
+ (br $while-in58)
+ )
)
- (block
- (local.set $1
- (local.get $3)
+ (if
+ (local.tee $2
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
+ )
+ )
)
- (local.set $0
- (local.get $2)
+ (block
+ (local.set $1
+ (local.get $2)
+ )
+ (local.set $0
+ (local.get $3)
+ )
+ (br $while-in58)
)
- (br $while-in58)
)
)
- )
- (if
- (i32.lt_u
- (local.get $0)
- (local.get $4)
- )
- (call $_abort)
- (block
- (i32.store
+ (if
+ (i32.lt_u
(local.get $0)
- (i32.const 0)
- )
- (local.set $8
- (local.get $1)
+ (local.get $4)
)
- )
- )
- )
- (block
- (if
- (i32.lt_u
- (local.tee $2
- (i32.load offset=8
- (local.get $6)
+ (call $_abort)
+ (block
+ (i32.store
+ (local.get $0)
+ (i32.const 0)
)
- )
- (local.get $4)
- )
- (call $_abort)
- )
- (if
- (i32.ne
- (local.get $6)
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $2)
- (i32.const 12)
- )
+ (local.set $11
+ (local.get $1)
)
)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
+ (block
+ (if
+ (i32.lt_u
(local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 8)
+ (i32.load offset=8
+ (local.get $6)
)
)
+ (local.get $4)
)
- (local.get $6)
+ (call $_abort)
)
- (block
- (i32.store
- (local.get $3)
- (local.get $0)
+ (if
+ (i32.ne
+ (local.get $6)
+ (i32.load offset=12
+ (local.get $1)
+ )
)
- (i32.store
- (local.get $1)
- (local.get $2)
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load offset=8
+ (local.get $0)
+ )
+ (local.get $6)
)
- (local.set $8
- (local.get $0)
+ (block
+ (i32.store offset=12
+ (local.get $1)
+ (local.get $0)
+ )
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $1)
+ )
+ (local.set $11
+ (local.get $0)
+ )
)
+ (call $_abort)
)
- (call $_abort)
)
)
- )
- (br_if $label$break$L331
- (i32.eqz
- (local.get $5)
+ (br_if $label$break$L331
+ (i32.eqz
+ (local.get $5)
+ )
)
- )
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (i32.shl
- (local.tee $1
- (i32.load offset=28
- (local.get $6)
+ (if
+ (i32.eq
+ (i32.load
+ (local.tee $0
+ (i32.add
+ (i32.shl
+ (local.tee $1
+ (i32.load offset=28
+ (local.get $6)
+ )
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
)
+ (local.get $6)
)
- (local.get $6)
- )
- (block $do-once59
- (i32.store
- (local.get $0)
- (local.get $8)
- )
- (br_if $do-once59
- (local.get $8)
+ (block $do-once59
+ (i32.store
+ (local.get $0)
+ (local.get $11)
+ )
+ (br_if $do-once59
+ (local.get $11)
+ )
+ (i32.store
+ (i32.const 180)
+ (i32.and
+ (i32.load
+ (i32.const 180)
+ )
+ (i32.xor
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (br $label$break$L331)
)
- (i32.store
- (i32.const 180)
- (i32.and
- (i32.load
- (i32.const 180)
+ (block
+ (if
+ (i32.lt_u
+ (local.get $5)
+ (i32.load
+ (i32.const 192)
+ )
)
- (i32.xor
- (i32.shl
- (i32.const 1)
- (local.get $1)
+ (call $_abort)
+ )
+ (if
+ (i32.eq
+ (i32.load offset=16
+ (local.get $5)
)
- (i32.const -1)
+ (local.get $6)
+ )
+ (i32.store offset=16
+ (local.get $5)
+ (local.get $11)
+ )
+ (i32.store offset=20
+ (local.get $5)
+ (local.get $11)
+ )
+ )
+ (br_if $label$break$L331
+ (i32.eqz
+ (local.get $11)
)
)
)
- (br $label$break$L331)
)
- (block
- (if
- (i32.lt_u
- (local.get $5)
+ (if
+ (i32.lt_u
+ (local.get $11)
+ (local.tee $0
(i32.load
(i32.const 192)
)
)
- (call $_abort)
)
- (if
- (i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $5)
- (i32.const 16)
- )
- )
- )
+ (call $_abort)
+ )
+ (i32.store
+ (i32.add
+ (local.get $11)
+ (i32.const 24)
+ )
+ (local.get $5)
+ )
+ (if
+ (local.tee $1
+ (i32.load offset=16
(local.get $6)
)
- (i32.store
- (local.get $0)
- (local.get $8)
- )
- (i32.store offset=20
- (local.get $5)
- (local.get $8)
- )
)
- (br_if $label$break$L331
- (i32.eqz
- (local.get $8)
+ (if
+ (i32.lt_u
+ (local.get $1)
+ (local.get $0)
)
- )
- )
- )
- (if
- (i32.lt_u
- (local.get $8)
- (local.tee $1
- (i32.load
- (i32.const 192)
+ (call $_abort)
+ (block
+ (i32.store
+ (i32.add
+ (local.get $11)
+ (i32.const 16)
+ )
+ (local.get $1)
+ )
+ (i32.store offset=24
+ (local.get $1)
+ (local.get $11)
+ )
)
)
)
- (call $_abort)
- )
- (i32.store offset=24
- (local.get $8)
- (local.get $5)
- )
- (if
- (local.tee $3
- (i32.load
+ (br_if $label$break$L331
+ (i32.eqz
(local.tee $0
- (i32.add
- (local.get $6)
- (i32.const 16)
+ (i32.load offset=4
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
)
)
)
)
(if
(i32.lt_u
- (local.get $3)
- (local.get $1)
+ (local.get $0)
+ (i32.load
+ (i32.const 192)
+ )
)
(call $_abort)
(block
- (i32.store offset=16
- (local.get $8)
- (local.get $3)
+ (i32.store
+ (i32.add
+ (local.get $11)
+ (i32.const 20)
+ )
+ (local.get $0)
)
(i32.store offset=24
- (local.get $3)
- (local.get $8)
- )
- )
- )
- )
- (br_if $label$break$L331
- (i32.eqz
- (local.tee $0
- (i32.load offset=4
(local.get $0)
+ (local.get $11)
)
)
)
)
- (if
- (i32.lt_u
- (local.get $0)
- (i32.load
- (i32.const 192)
- )
- )
- (call $_abort)
- (block
- (i32.store offset=20
- (local.get $8)
- (local.get $0)
- )
- (i32.store offset=24
- (local.get $0)
- (local.get $8)
- )
- )
- )
)
)
- )
- (local.set $7
+ (local.set $7
+ (i32.add
+ (local.get $7)
+ (local.get $12)
+ )
+ )
(i32.add
- (local.get $7)
- (local.get $10)
+ (local.get $6)
+ (local.get $12)
)
)
- (i32.add
- (local.get $6)
- (local.get $10)
- )
+ (local.get $6)
)
- (local.get $6)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (i32.and
- (i32.load
- (local.get $0)
+ (i32.and
+ (i32.load
+ (local.get $0)
+ )
+ (i32.const -2)
)
- (i32.const -2)
- )
- )
- (i32.store offset=4
- (local.get $9)
- (i32.or
- (local.get $7)
- (i32.const 1)
)
- )
- (i32.store
- (i32.add
- (local.get $7)
- (local.get $9)
+ (i32.store offset=4
+ (local.get $8)
+ (i32.or
+ (local.get $7)
+ (i32.const 1)
+ )
)
- (local.get $7)
- )
- (local.set $0
- (i32.shr_u
+ (i32.store
+ (i32.add
+ (local.get $7)
+ (local.get $8)
+ )
(local.get $7)
- (i32.const 3)
)
- )
- (if
- (i32.lt_u
- (local.get $7)
- (i32.const 256)
+ (local.set $0
+ (i32.shr_u
+ (local.get $7)
+ (i32.const 3)
+ )
)
- (block
- (local.set $3
- (i32.add
- (i32.shl
- (local.get $0)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (if
+ (i32.lt_u
+ (local.get $7)
+ (i32.const 256)
)
- (if
- (i32.and
- (local.tee $1
- (i32.load
- (i32.const 176)
- )
- )
- (local.tee $0
+ (block
+ (local.set $2
+ (i32.add
(i32.shl
- (i32.const 1)
(local.get $0)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
- (block $do-once63
- (if
- (i32.ge_u
- (local.tee $0
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $3)
- (i32.const 8)
- )
- )
- )
- )
+ (if
+ (i32.and
+ (local.tee $1
(i32.load
- (i32.const 192)
+ (i32.const 176)
)
)
- (block
- (local.set $16
- (local.get $1)
- )
- (local.set $11
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
(local.get $0)
)
- (br $do-once63)
)
)
- (call $_abort)
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $0)
- (local.get $1)
+ (block $do-once63
+ (local.set $1
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
)
+ (if
+ (i32.ge_u
+ (local.tee $0
+ (i32.load offset=8
+ (local.get $2)
+ )
+ )
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (block
+ (local.set $16
+ (local.get $1)
+ )
+ (local.set $9
+ (local.get $0)
+ )
+ (br $do-once63)
+ )
+ )
+ (call $_abort)
)
- (local.set $16
- (i32.add
- (local.get $3)
- (i32.const 8)
+ (block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (local.set $16
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ )
+ (local.set $9
+ (local.get $2)
)
)
- (local.set $11
- (local.get $3)
+ )
+ (i32.store
+ (local.get $16)
+ (local.get $8)
+ )
+ (i32.store
+ (i32.add
+ (local.get $9)
+ (i32.const 12)
)
+ (local.get $8)
)
+ (i32.store offset=8
+ (local.get $8)
+ (local.get $9)
+ )
+ (i32.store offset=12
+ (local.get $8)
+ (local.get $2)
+ )
+ (br $do-once48)
)
- (i32.store
- (local.get $16)
- (local.get $9)
- )
- (i32.store offset=12
- (local.get $11)
- (local.get $9)
- )
- (i32.store offset=8
- (local.get $9)
- (local.get $11)
- )
- (i32.store offset=12
- (local.get $9)
- (local.get $3)
- )
- (br $do-once48)
)
- )
- (local.set $3
- (i32.add
- (i32.shl
- (local.tee $2
- (if (result i32)
- (local.tee $0
- (i32.shr_u
- (local.get $7)
- (i32.const 8)
- )
- )
+ (local.set $2
+ (i32.add
+ (i32.shl
+ (local.tee $3
(if (result i32)
- (i32.gt_u
- (local.get $7)
- (i32.const 16777215)
+ (local.tee $0
+ (i32.shr_u
+ (local.get $7)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $2
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.tee $1
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $0)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $7)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $3
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.tee $1
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $0)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (local.set $3
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $0
- (i32.shl
- (local.get $0)
- (local.get $2)
+ (local.set $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $0
+ (i32.shl
+ (local.get $0)
+ (local.get $3)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $7)
- (i32.add
- (local.tee $0
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $7)
+ (i32.add
+ (local.tee $0
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
- (local.get $1)
+ (i32.or
+ (local.get $1)
+ (local.get $3)
+ )
(local.get $2)
)
- (local.get $3)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $0)
- (local.get $3)
+ (i32.shr_u
+ (i32.shl
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $0)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $0)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
- )
- (i32.store offset=28
- (local.get $9)
- (local.get $2)
- )
- (i32.store offset=4
- (local.tee $0
+ (i32.store offset=28
+ (local.get $8)
+ (local.get $3)
+ )
+ (i32.store offset=4
(i32.add
- (local.get $9)
+ (local.get $8)
(i32.const 16)
)
+ (i32.const 0)
)
- (i32.const 0)
- )
- (i32.store
- (local.get $0)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $1
- (i32.load
- (i32.const 180)
+ (i32.store offset=16
+ (local.get $8)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $1
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (local.tee $0
- (i32.shl
- (i32.const 1)
- (local.get $2)
+ (local.tee $0
+ (i32.shl
+ (i32.const 1)
+ (local.get $3)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (local.get $0)
- (local.get $1)
- )
- )
- (i32.store
- (local.get $3)
- (local.get $9)
- )
- (i32.store offset=24
- (local.get $9)
- (local.get $3)
- )
- (i32.store offset=12
- (local.get $9)
- (local.get $9)
- )
- (i32.store offset=8
- (local.get $9)
- (local.get $9)
- )
- (br $do-once48)
- )
- )
- (local.set $2
- (i32.shl
- (local.get $7)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
- (local.get $2)
- (i32.const 1)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (local.get $0)
+ (local.get $1)
)
)
- (i32.eq
+ (i32.store
(local.get $2)
- (i32.const 31)
+ (local.get $8)
)
+ (i32.store offset=24
+ (local.get $8)
+ (local.get $2)
+ )
+ (i32.store offset=12
+ (local.get $8)
+ (local.get $8)
+ )
+ (i32.store offset=8
+ (local.get $8)
+ (local.get $8)
+ )
+ (br $do-once48)
)
)
- )
- (local.set $0
- (i32.load
- (local.get $3)
- )
- )
- (block $__rjto$7
- (block $__rjti$7
- (loop $while-in68
- (br_if $__rjti$7
- (i32.eq
- (i32.and
- (i32.load offset=4
- (local.get $0)
- )
- (i32.const -8)
+ (local.set $3
+ (i32.shl
+ (local.get $7)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $3)
+ (i32.const 1)
)
- (local.get $7)
)
- )
- (local.set $3
- (i32.shl
- (local.get $2)
- (i32.const 1)
+ (i32.eq
+ (local.get $3)
+ (i32.const 31)
)
)
- (if
- (local.tee $1
- (i32.load
- (local.tee $2
- (i32.add
+ )
+ )
+ (local.set $0
+ (i32.load
+ (local.get $2)
+ )
+ )
+ (block $__rjto$7
+ (block $__rjti$7
+ (loop $while-in68
+ (br_if $__rjti$7
+ (i32.eq
+ (i32.and
+ (i32.load
(i32.add
(local.get $0)
- (i32.const 16)
+ (i32.const 4)
)
- (i32.shl
- (i32.shr_u
- (local.get $2)
- (i32.const 31)
+ )
+ (i32.const -8)
+ )
+ (local.get $7)
+ )
+ )
+ (local.set $2
+ (i32.shl
+ (local.get $3)
+ (i32.const 1)
+ )
+ )
+ (if
+ (local.tee $1
+ (i32.load
+ (local.tee $3
+ (i32.add
+ (i32.add
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $3)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
)
+ (block
+ (local.set $3
+ (local.get $2)
+ )
+ (local.set $0
+ (local.get $1)
+ )
+ (br $while-in68)
+ )
)
+ )
+ (if
+ (i32.lt_u
+ (local.get $3)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
(block
- (local.set $2
+ (i32.store
(local.get $3)
+ (local.get $8)
)
- (local.set $0
- (local.get $1)
+ (i32.store offset=24
+ (local.get $8)
+ (local.get $0)
+ )
+ (i32.store offset=12
+ (local.get $8)
+ (local.get $8)
+ )
+ (i32.store offset=8
+ (local.get $8)
+ (local.get $8)
)
- (br $while-in68)
+ (br $do-once48)
)
)
+ (br $__rjto$7)
)
(if
- (i32.lt_u
- (local.get $2)
- (i32.load
- (i32.const 192)
+ (i32.and
+ (i32.ge_u
+ (local.tee $2
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (local.tee $1
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (i32.ge_u
+ (local.get $0)
+ (local.get $1)
)
)
- (call $_abort)
(block
- (i32.store
+ (i32.store offset=12
(local.get $2)
- (local.get $9)
+ (local.get $8)
)
- (i32.store offset=24
- (local.get $9)
+ (i32.store offset=8
(local.get $0)
- )
- (i32.store offset=12
- (local.get $9)
- (local.get $9)
+ (local.get $8)
)
(i32.store offset=8
- (local.get $9)
- (local.get $9)
+ (local.get $8)
+ (local.get $2)
)
- (br $do-once48)
- )
- )
- (br $__rjto$7)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $2
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
- )
+ (i32.store offset=12
+ (local.get $8)
+ (local.get $0)
)
- (local.tee $1
- (i32.load
- (i32.const 192)
- )
+ (i32.store offset=24
+ (local.get $8)
+ (i32.const 0)
)
)
- (i32.ge_u
- (local.get $0)
- (local.get $1)
- )
- )
- (block
- (i32.store offset=12
- (local.get $2)
- (local.get $9)
- )
- (i32.store
- (local.get $3)
- (local.get $9)
- )
- (i32.store offset=8
- (local.get $9)
- (local.get $2)
- )
- (i32.store offset=12
- (local.get $9)
- (local.get $0)
- )
- (i32.store offset=24
- (local.get $9)
- (i32.const 0)
- )
+ (call $_abort)
)
- (call $_abort)
)
)
)
- )
- (return
- (i32.add
- (local.get $12)
- (i32.const 8)
+ (return
+ (i32.add
+ (local.get $10)
+ (i32.const 8)
+ )
)
)
)
)
)
- )
- (loop $while-in70
- (block $while-out69
- (if
- (i32.le_u
- (local.tee $2
- (i32.load
- (local.get $4)
+ (loop $while-in70
+ (block $while-out69
+ (if
+ (i32.le_u
+ (local.tee $3
+ (i32.load
+ (local.get $4)
+ )
)
+ (local.get $5)
)
- (local.get $5)
- )
- (br_if $while-out69
- (i32.gt_u
- (local.tee $2
- (i32.add
- (local.get $2)
- (i32.load offset=4
- (local.get $4)
+ (br_if $while-out69
+ (i32.gt_u
+ (local.tee $3
+ (i32.add
+ (local.get $3)
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 4)
+ )
+ )
)
)
+ (local.get $5)
)
- (local.get $5)
)
)
- )
- (local.set $4
- (i32.load offset=8
- (local.get $4)
+ (local.set $4
+ (i32.load
+ (i32.add
+ (local.get $4)
+ (i32.const 8)
+ )
+ )
)
+ (br $while-in70)
)
- (br $while-in70)
)
- )
- (local.set $11
- (i32.add
- (local.tee $4
- (i32.add
- (local.get $2)
- (i32.const -47)
+ (local.set $9
+ (i32.add
+ (local.tee $4
+ (i32.add
+ (local.get $3)
+ (i32.const -47)
+ )
)
+ (i32.const 8)
)
- (i32.const 8)
)
- )
- (local.set $8
- (i32.add
- (local.tee $10
- (select
- (local.get $5)
- (local.tee $4
- (i32.add
- (local.get $4)
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.get $11)
+ (local.set $6
+ (i32.add
+ (local.tee $11
+ (select
+ (local.get $5)
+ (local.tee $4
+ (i32.add
+ (local.get $4)
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.get $9)
+ )
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $9)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $11)
- (i32.const 7)
)
)
)
- )
- (i32.lt_u
- (local.get $4)
- (local.tee $11
+ (i32.lt_u
+ (local.get $4)
(i32.add
(local.get $5)
(i32.const 16)
@@ -12014,791 +11970,790 @@
)
)
)
+ (i32.const 8)
)
- (i32.const 8)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $6
- (i32.add
- (local.tee $4
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $4
- (i32.add
- (local.get $1)
- (i32.const 8)
+ (i32.store
+ (i32.const 200)
+ (local.tee $9
+ (i32.add
+ (local.tee $4
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $4
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $4)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $4)
- (i32.const 7)
)
)
+ (local.get $1)
)
- (local.get $1)
)
)
- )
- (i32.store
- (i32.const 188)
- (local.tee $4
- (i32.sub
- (i32.add
- (local.get $3)
- (i32.const -40)
+ (i32.store
+ (i32.const 188)
+ (local.tee $4
+ (i32.sub
+ (i32.add
+ (local.get $2)
+ (i32.const -40)
+ )
+ (local.get $4)
)
+ )
+ )
+ (i32.store offset=4
+ (local.get $9)
+ (i32.or
(local.get $4)
+ (i32.const 1)
)
)
- )
- (i32.store offset=4
- (local.get $6)
- (i32.or
- (local.get $4)
- (i32.const 1)
+ (i32.store offset=4
+ (i32.add
+ (local.get $4)
+ (local.get $9)
+ )
+ (i32.const 40)
)
- )
- (i32.store offset=4
- (i32.add
- (local.get $4)
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
+ )
+ (i32.store offset=4
+ (local.get $11)
+ (i32.const 27)
+ )
+ (i32.store offset=8
+ (local.get $11)
+ (i32.load
+ (i32.const 624)
+ )
+ )
+ (i32.store offset=4
(local.get $6)
+ (i32.load
+ (i32.const 628)
+ )
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (i32.store offset=8
+ (local.get $6)
+ (i32.load
+ (i32.const 632)
+ )
)
- )
- (i32.store
- (local.tee $4
- (i32.add
- (local.get $10)
- (i32.const 4)
+ (i32.store offset=12
+ (local.get $6)
+ (i32.load
+ (i32.const 636)
)
)
- (i32.const 27)
- )
- (i32.store
- (local.get $8)
- (i32.load
+ (i32.store
(i32.const 624)
+ (local.get $1)
)
- )
- (i32.store offset=4
- (local.get $8)
- (i32.load
+ (i32.store
(i32.const 628)
+ (local.get $2)
)
- )
- (i32.store offset=8
- (local.get $8)
- (i32.load
- (i32.const 632)
- )
- )
- (i32.store offset=12
- (local.get $8)
- (i32.load
+ (i32.store
(i32.const 636)
+ (i32.const 0)
)
- )
- (i32.store
- (i32.const 624)
- (local.get $1)
- )
- (i32.store
- (i32.const 628)
- (local.get $3)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 632)
- (local.get $8)
- )
- (local.set $1
- (i32.add
- (local.get $10)
- (i32.const 24)
- )
- )
- (loop $while-in72
(i32.store
- (local.tee $1
- (i32.add
- (local.get $1)
- (i32.const 4)
- )
- )
- (i32.const 7)
+ (i32.const 632)
+ (local.get $6)
)
- (br_if $while-in72
- (i32.lt_u
- (i32.add
- (local.get $1)
- (i32.const 4)
- )
- (local.get $2)
+ (local.set $1
+ (i32.add
+ (local.get $11)
+ (i32.const 24)
)
)
- )
- (if
- (i32.ne
- (local.get $5)
- (local.get $10)
- )
- (block
+ (loop $while-in72
(i32.store
- (local.get $4)
- (i32.and
- (i32.load
- (local.get $4)
+ (local.tee $1
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const -2)
)
+ (i32.const 7)
)
- (i32.store offset=4
- (local.get $5)
- (i32.or
- (local.tee $6
- (i32.sub
- (local.get $10)
- (local.get $5)
- )
+ (br_if $while-in72
+ (i32.lt_u
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
)
- (i32.const 1)
+ (local.get $3)
)
)
- (i32.store
- (local.get $10)
- (local.get $6)
- )
- (local.set $1
- (i32.shr_u
- (local.get $6)
- (i32.const 3)
- )
+ )
+ (if
+ (i32.ne
+ (local.get $5)
+ (local.get $11)
)
- (if
- (i32.lt_u
- (local.get $6)
- (i32.const 256)
+ (block
+ (i32.store offset=4
+ (local.get $11)
+ (i32.and
+ (i32.load offset=4
+ (local.get $11)
+ )
+ (i32.const -2)
+ )
)
- (block
- (local.set $2
- (i32.add
- (i32.shl
- (local.get $1)
- (i32.const 3)
+ (i32.store offset=4
+ (local.get $5)
+ (i32.or
+ (local.tee $9
+ (i32.sub
+ (local.get $11)
+ (local.get $5)
)
- (i32.const 216)
)
+ (i32.const 1)
)
- (if
- (i32.and
- (local.tee $3
- (i32.load
- (i32.const 176)
- )
- )
- (local.tee $1
+ )
+ (i32.store
+ (local.get $11)
+ (local.get $9)
+ )
+ (local.set $1
+ (i32.shr_u
+ (local.get $9)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.get $9)
+ (i32.const 256)
+ )
+ (block
+ (local.set $3
+ (i32.add
(i32.shl
- (i32.const 1)
(local.get $1)
+ (i32.const 3)
)
+ (i32.const 216)
)
)
(if
- (i32.lt_u
- (local.tee $1
+ (i32.and
+ (local.tee $2
(i32.load
- (local.tee $3
- (i32.add
- (local.get $2)
- (i32.const 8)
+ (i32.const 176)
+ )
+ )
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $1)
+ )
+ )
+ )
+ (block
+ (local.set $2
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ )
+ (if
+ (i32.lt_u
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $3)
)
)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
+ (block
+ (local.set $17
+ (local.get $2)
+ )
+ (local.set $7
+ (local.get $1)
+ )
)
- )
- (i32.load
- (i32.const 192)
)
)
- (call $_abort)
(block
+ (i32.store
+ (i32.const 176)
+ (i32.or
+ (local.get $1)
+ (local.get $2)
+ )
+ )
(local.set $17
- (local.get $3)
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
)
(local.set $7
- (local.get $1)
- )
- )
- )
- (block
- (i32.store
- (i32.const 176)
- (i32.or
- (local.get $1)
(local.get $3)
)
)
- (local.set $17
- (i32.add
- (local.get $2)
- (i32.const 8)
- )
- )
- (local.set $7
- (local.get $2)
+ )
+ (i32.store
+ (local.get $17)
+ (local.get $5)
+ )
+ (i32.store
+ (i32.add
+ (local.get $7)
+ (i32.const 12)
)
+ (local.get $5)
)
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $7)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $3)
+ )
+ (br $do-once40)
)
- (i32.store
- (local.get $17)
- (local.get $5)
- )
- (i32.store offset=12
- (local.get $7)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $7)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $2)
- )
- (br $do-once40)
)
- )
- (local.set $2
- (i32.add
- (i32.shl
- (local.tee $4
- (if (result i32)
- (local.tee $1
- (i32.shr_u
- (local.get $6)
- (i32.const 8)
- )
- )
+ (local.set $3
+ (i32.add
+ (i32.shl
+ (local.tee $4
(if (result i32)
- (i32.gt_u
- (local.get $6)
- (i32.const 16777215)
+ (local.tee $1
+ (i32.shr_u
+ (local.get $9)
+ (i32.const 8)
+ )
)
- (i32.const 31)
- (block (result i32)
- (local.set $4
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $1
- (i32.shl
- (local.get $1)
- (local.tee $3
- (i32.and
- (i32.shr_u
- (i32.add
- (local.get $1)
- (i32.const 1048320)
+ (if (result i32)
+ (i32.gt_u
+ (local.get $9)
+ (i32.const 16777215)
+ )
+ (i32.const 31)
+ (block (result i32)
+ (local.set $4
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $1
+ (i32.shl
+ (local.get $1)
+ (local.tee $2
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.get $1)
+ (i32.const 1048320)
+ )
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 8)
)
- (i32.const 8)
)
)
)
+ (i32.const 520192)
)
- (i32.const 520192)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 4)
)
- (i32.const 4)
)
- )
- (local.set $2
- (i32.and
- (i32.shr_u
- (i32.add
- (local.tee $1
- (i32.shl
- (local.get $1)
- (local.get $4)
+ (local.set $3
+ (i32.and
+ (i32.shr_u
+ (i32.add
+ (local.tee $1
+ (i32.shl
+ (local.get $1)
+ (local.get $4)
+ )
)
+ (i32.const 245760)
)
- (i32.const 245760)
+ (i32.const 16)
)
- (i32.const 16)
+ (i32.const 2)
)
- (i32.const 2)
)
- )
- (i32.or
- (i32.and
- (i32.shr_u
- (local.get $6)
- (i32.add
- (local.tee $1
- (i32.add
- (i32.sub
- (i32.const 14)
- (i32.or
+ (i32.or
+ (i32.and
+ (i32.shr_u
+ (local.get $9)
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (i32.sub
+ (i32.const 14)
(i32.or
+ (i32.or
+ (local.get $2)
+ (local.get $4)
+ )
(local.get $3)
- (local.get $4)
)
- (local.get $2)
)
- )
- (i32.shr_u
- (i32.shl
- (local.get $1)
- (local.get $2)
+ (i32.shr_u
+ (i32.shl
+ (local.get $1)
+ (local.get $3)
+ )
+ (i32.const 15)
)
- (i32.const 15)
)
)
+ (i32.const 7)
)
- (i32.const 7)
)
+ (i32.const 1)
+ )
+ (i32.shl
+ (local.get $1)
+ (i32.const 1)
)
- (i32.const 1)
- )
- (i32.shl
- (local.get $1)
- (i32.const 1)
)
)
)
+ (i32.const 0)
)
- (i32.const 0)
)
+ (i32.const 2)
)
- (i32.const 2)
+ (i32.const 480)
)
- (i32.const 480)
)
- )
- (i32.store offset=28
- (local.get $5)
- (local.get $4)
- )
- (i32.store offset=20
- (local.get $5)
- (i32.const 0)
- )
- (i32.store
- (local.get $11)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (local.tee $3
- (i32.load
- (i32.const 180)
+ (i32.store offset=28
+ (local.get $5)
+ (local.get $4)
+ )
+ (i32.store offset=20
+ (local.get $5)
+ (i32.const 0)
+ )
+ (i32.store offset=16
+ (local.get $5)
+ (i32.const 0)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (local.tee $2
+ (i32.load
+ (i32.const 180)
+ )
)
- )
- (local.tee $1
- (i32.shl
- (i32.const 1)
- (local.get $4)
+ (local.tee $1
+ (i32.shl
+ (i32.const 1)
+ (local.get $4)
+ )
)
)
)
- )
- (block
- (i32.store
- (i32.const 180)
- (i32.or
- (local.get $1)
+ (block
+ (i32.store
+ (i32.const 180)
+ (i32.or
+ (local.get $1)
+ (local.get $2)
+ )
+ )
+ (i32.store
+ (local.get $3)
+ (local.get $5)
+ )
+ (i32.store offset=24
+ (local.get $5)
(local.get $3)
)
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
+ )
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
+ )
+ (br $do-once40)
)
- (i32.store
- (local.get $2)
- (local.get $5)
- )
- (i32.store offset=24
- (local.get $5)
- (local.get $2)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $5)
- )
- (br $do-once40)
)
- )
- (local.set $4
- (i32.shl
- (local.get $6)
- (select
- (i32.const 0)
- (i32.sub
- (i32.const 25)
- (i32.shr_u
+ (local.set $4
+ (i32.shl
+ (local.get $9)
+ (select
+ (i32.const 0)
+ (i32.sub
+ (i32.const 25)
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 1)
+ )
+ )
+ (i32.eq
(local.get $4)
- (i32.const 1)
+ (i32.const 31)
)
)
- (i32.eq
- (local.get $4)
- (i32.const 31)
- )
)
)
- )
- (local.set $1
- (i32.load
- (local.get $2)
+ (local.set $1
+ (i32.load
+ (local.get $3)
+ )
)
- )
- (block $__rjto$9
- (block $__rjti$9
- (loop $while-in74
- (br_if $__rjti$9
- (i32.eq
- (i32.and
- (i32.load offset=4
- (local.get $1)
+ (block $__rjto$9
+ (block $__rjti$9
+ (loop $while-in74
+ (br_if $__rjti$9
+ (i32.eq
+ (i32.and
+ (i32.load
+ (i32.add
+ (local.get $1)
+ (i32.const 4)
+ )
+ )
+ (i32.const -8)
)
- (i32.const -8)
+ (local.get $9)
)
- (local.get $6)
)
- )
- (local.set $2
- (i32.shl
- (local.get $4)
- (i32.const 1)
+ (local.set $3
+ (i32.shl
+ (local.get $4)
+ (i32.const 1)
+ )
)
- )
- (if
- (local.tee $3
- (i32.load
- (local.tee $4
- (i32.add
+ (if
+ (local.tee $2
+ (i32.load
+ (local.tee $4
(i32.add
- (local.get $1)
- (i32.const 16)
- )
- (i32.shl
- (i32.shr_u
- (local.get $4)
- (i32.const 31)
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
+ (i32.shl
+ (i32.shr_u
+ (local.get $4)
+ (i32.const 31)
+ )
+ (i32.const 2)
)
- (i32.const 2)
)
)
)
)
+ (block
+ (local.set $4
+ (local.get $3)
+ )
+ (local.set $1
+ (local.get $2)
+ )
+ (br $while-in74)
+ )
)
+ )
+ (if
+ (i32.lt_u
+ (local.get $4)
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ (call $_abort)
(block
- (local.set $4
- (local.get $2)
+ (i32.store
+ (local.get $4)
+ (local.get $5)
)
- (local.set $1
- (local.get $3)
+ (i32.store offset=24
+ (local.get $5)
+ (local.get $1)
+ )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $5)
)
- (br $while-in74)
+ (i32.store offset=8
+ (local.get $5)
+ (local.get $5)
+ )
+ (br $do-once40)
)
)
+ (br $__rjto$9)
)
(if
- (i32.lt_u
- (local.get $4)
- (i32.load
- (i32.const 192)
+ (i32.and
+ (i32.ge_u
+ (local.tee $3
+ (i32.load offset=8
+ (local.get $1)
+ )
+ )
+ (local.tee $2
+ (i32.load
+ (i32.const 192)
+ )
+ )
+ )
+ (i32.ge_u
+ (local.get $1)
+ (local.get $2)
)
)
- (call $_abort)
(block
- (i32.store
- (local.get $4)
+ (i32.store offset=12
+ (local.get $3)
(local.get $5)
)
- (i32.store offset=24
- (local.get $5)
+ (i32.store offset=8
(local.get $1)
- )
- (i32.store offset=12
- (local.get $5)
(local.get $5)
)
(i32.store offset=8
(local.get $5)
- (local.get $5)
+ (local.get $3)
)
- (br $do-once40)
- )
- )
- (br $__rjto$9)
- )
- (if
- (i32.and
- (i32.ge_u
- (local.tee $4
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $1)
- (i32.const 8)
- )
- )
- )
+ (i32.store offset=12
+ (local.get $5)
+ (local.get $1)
)
- (local.tee $3
- (i32.load
- (i32.const 192)
- )
+ (i32.store offset=24
+ (local.get $5)
+ (i32.const 0)
)
)
- (i32.ge_u
- (local.get $1)
- (local.get $3)
- )
- )
- (block
- (i32.store offset=12
- (local.get $4)
- (local.get $5)
- )
- (i32.store
- (local.get $2)
- (local.get $5)
- )
- (i32.store offset=8
- (local.get $5)
- (local.get $4)
- )
- (i32.store offset=12
- (local.get $5)
- (local.get $1)
- )
- (i32.store offset=24
- (local.get $5)
- (i32.const 0)
- )
+ (call $_abort)
)
- (call $_abort)
)
)
)
)
- )
- (block
- (if
- (i32.or
- (i32.eqz
- (local.tee $2
- (i32.load
- (i32.const 192)
+ (block
+ (if
+ (i32.or
+ (i32.eqz
+ (local.tee $3
+ (i32.load
+ (i32.const 192)
+ )
)
)
+ (i32.lt_u
+ (local.get $1)
+ (local.get $3)
+ )
)
- (i32.lt_u
+ (i32.store
+ (i32.const 192)
(local.get $1)
- (local.get $2)
)
)
(i32.store
- (i32.const 192)
+ (i32.const 624)
(local.get $1)
)
- )
- (i32.store
- (i32.const 624)
- (local.get $1)
- )
- (i32.store
- (i32.const 628)
- (local.get $3)
- )
- (i32.store
- (i32.const 636)
- (i32.const 0)
- )
- (i32.store
- (i32.const 212)
- (i32.load
- (i32.const 648)
+ (i32.store
+ (i32.const 628)
+ (local.get $2)
)
- )
- (i32.store
- (i32.const 208)
- (i32.const -1)
- )
- (local.set $2
- (i32.const 0)
- )
- (loop $while-in43
- (i32.store offset=12
- (local.tee $4
- (i32.add
- (i32.shl
- (local.get $2)
- (i32.const 3)
- )
- (i32.const 216)
- )
+ (i32.store
+ (i32.const 636)
+ (i32.const 0)
+ )
+ (i32.store
+ (i32.const 212)
+ (i32.load
+ (i32.const 648)
)
- (local.get $4)
)
- (i32.store offset=8
- (local.get $4)
- (local.get $4)
+ (i32.store
+ (i32.const 208)
+ (i32.const -1)
)
- (br_if $while-in43
- (i32.ne
- (local.tee $2
+ (local.set $3
+ (i32.const 0)
+ )
+ (loop $while-in43
+ (i32.store offset=12
+ (local.tee $4
(i32.add
- (local.get $2)
- (i32.const 1)
+ (i32.shl
+ (local.get $3)
+ (i32.const 3)
+ )
+ (i32.const 216)
)
)
- (i32.const 32)
+ (local.get $4)
+ )
+ (i32.store offset=8
+ (local.get $4)
+ (local.get $4)
+ )
+ (br_if $while-in43
+ (i32.ne
+ (local.tee $3
+ (i32.add
+ (local.get $3)
+ (i32.const 1)
+ )
+ )
+ (i32.const 32)
+ )
)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $4
- (i32.add
- (local.tee $2
- (select
- (i32.and
- (i32.sub
- (i32.const 0)
- (local.tee $2
- (i32.add
- (local.get $1)
- (i32.const 8)
+ (i32.store
+ (i32.const 200)
+ (local.tee $4
+ (i32.add
+ (local.tee $3
+ (select
+ (i32.and
+ (i32.sub
+ (i32.const 0)
+ (local.tee $3
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
+ )
)
)
+ (i32.const 7)
+ )
+ (i32.const 0)
+ (i32.and
+ (local.get $3)
+ (i32.const 7)
)
- (i32.const 7)
- )
- (i32.const 0)
- (i32.and
- (local.get $2)
- (i32.const 7)
)
)
+ (local.get $1)
)
- (local.get $1)
)
)
- )
- (i32.store
- (i32.const 188)
- (local.tee $1
- (i32.sub
- (i32.add
+ (i32.store
+ (i32.const 188)
+ (local.tee $1
+ (i32.sub
+ (i32.add
+ (local.get $2)
+ (i32.const -40)
+ )
(local.get $3)
- (i32.const -40)
)
- (local.get $2)
)
)
- )
- (i32.store offset=4
- (local.get $4)
- (i32.or
- (local.get $1)
- (i32.const 1)
- )
- )
- (i32.store offset=4
- (i32.add
- (local.get $1)
+ (i32.store offset=4
(local.get $4)
+ (i32.or
+ (local.get $1)
+ (i32.const 1)
+ )
)
- (i32.const 40)
- )
- (i32.store
- (i32.const 204)
- (i32.load
- (i32.const 664)
+ (i32.store offset=4
+ (i32.add
+ (local.get $1)
+ (local.get $4)
+ )
+ (i32.const 40)
+ )
+ (i32.store
+ (i32.const 204)
+ (i32.load
+ (i32.const 664)
+ )
)
)
)
- )
- (br_if $folding-inner0
- (i32.gt_u
- (local.tee $1
- (i32.load
- (i32.const 188)
+ (br_if $folding-inner0
+ (i32.gt_u
+ (local.tee $1
+ (i32.load
+ (i32.const 188)
+ )
)
+ (local.get $0)
)
- (local.get $0)
)
)
+ (i32.store
+ (call $___errno_location)
+ (i32.const 12)
+ )
+ (return
+ (i32.const 0)
+ )
)
(i32.store
- (call $___errno_location)
- (i32.const 12)
- )
- (return
- (i32.const 0)
- )
- )
- (i32.store
- (i32.const 188)
- (local.tee $3
- (i32.sub
- (local.get $1)
- (local.get $0)
+ (i32.const 188)
+ (local.tee $2
+ (i32.sub
+ (local.get $1)
+ (local.get $0)
+ )
)
)
- )
- (i32.store
- (i32.const 200)
- (local.tee $1
- (i32.add
- (local.tee $2
- (i32.load
- (i32.const 200)
+ (i32.store
+ (i32.const 200)
+ (local.tee $1
+ (i32.add
+ (local.tee $3
+ (i32.load
+ (i32.const 200)
+ )
)
+ (local.get $0)
)
- (local.get $0)
)
)
- )
- (i32.store offset=4
- (local.get $1)
- (i32.or
- (local.get $3)
- (i32.const 1)
+ (i32.store offset=4
+ (local.get $1)
+ (i32.or
+ (local.get $2)
+ (i32.const 1)
+ )
)
- )
- (i32.store offset=4
- (local.get $2)
- (i32.or
- (local.get $0)
- (i32.const 3)
+ (i32.store offset=4
+ (local.get $3)
+ (i32.or
+ (local.get $0)
+ (i32.const 3)
+ )
)
)
(i32.add
- (local.get $2)
+ (local.get $3)
(i32.const 8)
)
)
@@ -12842,7 +12797,7 @@
)
(if
(i32.eq
- (local.tee $5
+ (local.tee $4
(i32.and
(local.tee $8
(i32.load
@@ -12876,17 +12831,17 @@
(i32.const 1)
)
(block
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
)
(block $do-once
(if
(i32.eqz
- (local.get $5)
+ (local.get $4)
)
(return)
)
@@ -12923,14 +12878,9 @@
(if
(i32.ne
(i32.and
- (local.tee $3
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $7)
- (i32.const 4)
- )
- )
+ (local.tee $2
+ (i32.load offset=4
+ (local.get $7)
)
)
(i32.const 3)
@@ -12938,10 +12888,10 @@
(i32.const 3)
)
(block
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
(br $do-once)
@@ -12951,10 +12901,10 @@
(i32.const 184)
(local.get $0)
)
- (i32.store
- (local.get $2)
+ (i32.store offset=4
+ (local.get $7)
(i32.and
- (local.get $3)
+ (local.get $2)
(i32.const -2)
)
)
@@ -12975,7 +12925,7 @@
(return)
)
)
- (local.set $5
+ (local.set $4
(i32.shr_u
(local.get $8)
(i32.const 3)
@@ -12994,15 +12944,15 @@
)
(if
(i32.ne
- (local.tee $2
+ (local.tee $3
(i32.load offset=8
(local.get $1)
)
)
- (local.tee $3
+ (local.tee $2
(i32.add
(i32.shl
- (local.get $5)
+ (local.get $4)
(i32.const 3)
)
(i32.const 216)
@@ -13012,7 +12962,7 @@
(block
(if
(i32.lt_u
- (local.get $2)
+ (local.get $3)
(local.get $11)
)
(call $_abort)
@@ -13021,7 +12971,7 @@
(i32.ne
(local.get $1)
(i32.load offset=12
- (local.get $2)
+ (local.get $3)
)
)
(call $_abort)
@@ -13030,7 +12980,7 @@
)
(if
(i32.eq
- (local.get $2)
+ (local.get $3)
(local.get $6)
)
(block
@@ -13043,16 +12993,16 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $5)
+ (local.get $4)
)
(i32.const -1)
)
)
)
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
(br $do-once)
@@ -13060,10 +13010,10 @@
)
(if
(i32.eq
- (local.get $3)
+ (local.get $2)
(local.get $6)
)
- (local.set $4
+ (local.set $5
(i32.add
(local.get $6)
(i32.const 8)
@@ -13077,50 +13027,51 @@
)
(call $_abort)
)
+ (local.set $2
+ (i32.add
+ (local.get $6)
+ (i32.const 8)
+ )
+ )
(if
(i32.eq
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $6)
- (i32.const 8)
- )
- )
+ (i32.load offset=8
+ (local.get $6)
)
(local.get $1)
)
- (local.set $4
- (local.get $3)
+ (local.set $5
+ (local.get $2)
)
(call $_abort)
)
)
)
(i32.store offset=12
- (local.get $2)
+ (local.get $3)
(local.get $6)
)
(i32.store
- (local.get $4)
- (local.get $2)
+ (local.get $5)
+ (local.get $3)
)
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
(br $do-once)
)
)
- (local.set $12
+ (local.set $10
(i32.load offset=24
(local.get $1)
)
)
(if
(i32.eq
- (local.tee $4
+ (local.tee $5
(i32.load offset=12
(local.get $1)
)
@@ -13128,35 +13079,36 @@
(local.get $1)
)
(block $do-once0
+ (local.set $5
+ (i32.add
+ (local.tee $8
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
+ )
+ (i32.const 4)
+ )
+ )
(if
(i32.eqz
- (local.tee $5
- (i32.load
- (local.tee $4
- (i32.add
- (local.tee $8
- (i32.add
- (local.get $1)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
+ (local.tee $4
+ (i32.load offset=4
+ (local.get $8)
)
)
)
(block
(br_if $do-once0
(i32.eqz
- (local.tee $5
- (i32.load
- (local.get $8)
+ (local.tee $4
+ (i32.load offset=16
+ (local.get $1)
)
)
)
)
- (local.set $4
+ (local.set $5
(local.get $8)
)
)
@@ -13165,20 +13117,20 @@
(if
(local.tee $8
(i32.load
- (local.tee $10
+ (local.tee $12
(i32.add
- (local.get $5)
+ (local.get $4)
(i32.const 20)
)
)
)
)
(block
- (local.set $5
+ (local.set $4
(local.get $8)
)
- (local.set $4
- (local.get $10)
+ (local.set $5
+ (local.get $12)
)
(br $while-in)
)
@@ -13186,20 +13138,20 @@
(if
(local.tee $8
(i32.load
- (local.tee $10
+ (local.tee $12
(i32.add
- (local.get $5)
+ (local.get $4)
(i32.const 16)
)
)
)
)
(block
- (local.set $5
+ (local.set $4
(local.get $8)
)
- (local.set $4
- (local.get $10)
+ (local.set $5
+ (local.get $12)
)
(br $while-in)
)
@@ -13207,17 +13159,17 @@
)
(if
(i32.lt_u
- (local.get $4)
+ (local.get $5)
(local.get $11)
)
(call $_abort)
(block
(i32.store
- (local.get $4)
+ (local.get $5)
(i32.const 0)
)
(local.set $6
- (local.get $5)
+ (local.get $4)
)
)
)
@@ -13225,7 +13177,7 @@
(block
(if
(i32.lt_u
- (local.tee $10
+ (local.tee $4
(i32.load offset=8
(local.get $1)
)
@@ -13237,40 +13189,30 @@
(if
(i32.ne
(local.get $1)
- (i32.load
- (local.tee $8
- (i32.add
- (local.get $10)
- (i32.const 12)
- )
- )
+ (i32.load offset=12
+ (local.get $4)
)
)
(call $_abort)
)
(if
(i32.eq
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $4)
- (i32.const 8)
- )
- )
+ (i32.load offset=8
+ (local.get $5)
)
(local.get $1)
)
(block
- (i32.store
- (local.get $8)
+ (i32.store offset=12
(local.get $4)
+ (local.get $5)
)
- (i32.store
+ (i32.store offset=8
(local.get $5)
- (local.get $10)
+ (local.get $4)
)
(local.set $6
- (local.get $4)
+ (local.get $5)
)
)
(call $_abort)
@@ -13278,15 +13220,15 @@
)
)
(if
- (local.get $12)
+ (local.get $10)
(block
(if
(i32.eq
(i32.load
- (local.tee $4
+ (local.tee $5
(i32.add
(i32.shl
- (local.tee $5
+ (local.tee $4
(i32.load offset=28
(local.get $1)
)
@@ -13301,7 +13243,7 @@
)
(block
(i32.store
- (local.get $4)
+ (local.get $5)
(local.get $6)
)
(if
@@ -13318,16 +13260,16 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $5)
+ (local.get $4)
)
(i32.const -1)
)
)
)
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
(br $do-once)
@@ -13337,7 +13279,7 @@
(block
(if
(i32.lt_u
- (local.get $12)
+ (local.get $10)
(i32.load
(i32.const 192)
)
@@ -13346,22 +13288,17 @@
)
(if
(i32.eq
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $12)
- (i32.const 16)
- )
- )
+ (i32.load offset=16
+ (local.get $10)
)
(local.get $1)
)
- (i32.store
- (local.get $4)
+ (i32.store offset=16
+ (local.get $10)
(local.get $6)
)
(i32.store offset=20
- (local.get $12)
+ (local.get $10)
(local.get $6)
)
)
@@ -13370,10 +13307,10 @@
(local.get $6)
)
(block
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
(br $do-once)
@@ -13392,85 +13329,92 @@
)
(call $_abort)
)
- (i32.store offset=24
- (local.get $6)
- (local.get $12)
+ (i32.store
+ (i32.add
+ (local.get $6)
+ (i32.const 24)
+ )
+ (local.get $10)
)
(if
- (local.tee $8
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $1)
- (i32.const 16)
- )
- )
+ (local.tee $4
+ (i32.load offset=16
+ (local.get $1)
)
)
(if
(i32.lt_u
- (local.get $8)
+ (local.get $4)
(local.get $5)
)
(call $_abort)
(block
- (i32.store offset=16
- (local.get $6)
- (local.get $8)
+ (i32.store
+ (i32.add
+ (local.get $6)
+ (i32.const 16)
+ )
+ (local.get $4)
)
(i32.store offset=24
- (local.get $8)
+ (local.get $4)
(local.get $6)
)
)
)
)
(if
- (local.tee $4
+ (local.tee $5
(i32.load offset=4
- (local.get $4)
+ (i32.add
+ (local.get $1)
+ (i32.const 16)
+ )
)
)
(if
(i32.lt_u
- (local.get $4)
+ (local.get $5)
(i32.load
(i32.const 192)
)
)
(call $_abort)
(block
- (i32.store offset=20
- (local.get $6)
- (local.get $4)
+ (i32.store
+ (i32.add
+ (local.get $6)
+ (i32.const 20)
+ )
+ (local.get $5)
)
(i32.store offset=24
- (local.get $4)
+ (local.get $5)
(local.get $6)
)
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
)
)
(block
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
)
)
)
(block
- (local.set $2
+ (local.set $3
(local.get $1)
)
- (local.set $3
+ (local.set $2
(local.get $0)
)
)
@@ -13479,7 +13423,7 @@
)
(if
(i32.ge_u
- (local.get $2)
+ (local.get $3)
(local.get $7)
)
(call $_abort)
@@ -13487,14 +13431,9 @@
(if
(i32.eqz
(i32.and
- (local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $7)
- (i32.const 4)
- )
- )
+ (local.tee $0
+ (i32.load offset=4
+ (local.get $7)
)
)
(i32.const 1)
@@ -13504,21 +13443,24 @@
)
(if
(i32.and
- (local.get $1)
+ (local.get $0)
(i32.const 2)
)
(block
- (i32.store
- (local.get $0)
+ (i32.store offset=4
+ (local.get $7)
(i32.and
- (local.get $1)
+ (local.get $0)
(i32.const -2)
)
)
- (i32.store offset=4
- (local.get $2)
- (i32.or
+ (i32.store
+ (i32.add
(local.get $3)
+ (i32.const 4)
+ )
+ (i32.or
+ (local.get $2)
(i32.const 1)
)
)
@@ -13527,7 +13469,7 @@
(local.get $2)
(local.get $3)
)
- (local.get $3)
+ (local.get $2)
)
)
(block
@@ -13546,16 +13488,19 @@
(i32.load
(i32.const 188)
)
- (local.get $3)
+ (local.get $2)
)
)
)
(i32.store
(i32.const 200)
- (local.get $2)
+ (local.get $3)
)
- (i32.store offset=4
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
(i32.or
(local.get $0)
(i32.const 1)
@@ -13563,7 +13508,7 @@
)
(if
(i32.ne
- (local.get $2)
+ (local.get $3)
(i32.load
(i32.const 196)
)
@@ -13596,16 +13541,19 @@
(i32.load
(i32.const 184)
)
- (local.get $3)
+ (local.get $2)
)
)
)
(i32.store
(i32.const 196)
- (local.get $2)
+ (local.get $3)
)
- (i32.store offset=4
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
(i32.or
(local.get $0)
(i32.const 1)
@@ -13614,36 +13562,36 @@
(i32.store
(i32.add
(local.get $0)
- (local.get $2)
+ (local.get $3)
)
(local.get $0)
)
(return)
)
)
- (local.set $5
+ (local.set $4
(i32.add
(i32.and
- (local.get $1)
+ (local.get $0)
(i32.const -8)
)
- (local.get $3)
+ (local.get $2)
)
)
- (local.set $3
+ (local.set $2
(i32.shr_u
- (local.get $1)
+ (local.get $0)
(i32.const 3)
)
)
(block $do-once4
(if
(i32.lt_u
- (local.get $1)
+ (local.get $0)
(i32.const 256)
)
(block
- (local.set $4
+ (local.set $5
(i32.load offset=12
(local.get $7)
)
@@ -13658,7 +13606,7 @@
(local.tee $0
(i32.add
(i32.shl
- (local.get $3)
+ (local.get $2)
(i32.const 3)
)
(i32.const 216)
@@ -13689,7 +13637,7 @@
(if
(i32.eq
(local.get $1)
- (local.get $4)
+ (local.get $5)
)
(block
(i32.store
@@ -13701,7 +13649,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $3)
+ (local.get $2)
)
(i32.const -1)
)
@@ -13713,33 +13661,34 @@
(if
(i32.eq
(local.get $0)
- (local.get $4)
+ (local.get $5)
)
(local.set $14
(i32.add
- (local.get $4)
+ (local.get $5)
(i32.const 8)
)
)
(block
(if
(i32.lt_u
- (local.get $4)
+ (local.get $5)
(i32.load
(i32.const 192)
)
)
(call $_abort)
)
+ (local.set $0
+ (i32.add
+ (local.get $5)
+ (i32.const 8)
+ )
+ )
(if
(i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $4)
- (i32.const 8)
- )
- )
+ (i32.load offset=8
+ (local.get $5)
)
(local.get $7)
)
@@ -13752,7 +13701,7 @@
)
(i32.store offset=12
(local.get $1)
- (local.get $4)
+ (local.get $5)
)
(i32.store
(local.get $14)
@@ -13775,30 +13724,31 @@
(local.get $7)
)
(block $do-once6
+ (local.set $0
+ (i32.add
+ (local.tee $1
+ (i32.add
+ (local.get $7)
+ (i32.const 16)
+ )
+ )
+ (i32.const 4)
+ )
+ )
(if
(i32.eqz
- (local.tee $3
- (i32.load
- (local.tee $0
- (i32.add
- (local.tee $1
- (i32.add
- (local.get $7)
- (i32.const 16)
- )
- )
- (i32.const 4)
- )
- )
+ (local.tee $2
+ (i32.load offset=4
+ (local.get $1)
)
)
)
(block
(br_if $do-once6
(i32.eqz
- (local.tee $3
- (i32.load
- (local.get $1)
+ (local.tee $2
+ (i32.load offset=16
+ (local.get $7)
)
)
)
@@ -13812,20 +13762,20 @@
(if
(local.tee $1
(i32.load
- (local.tee $4
+ (local.tee $5
(i32.add
- (local.get $3)
+ (local.get $2)
(i32.const 20)
)
)
)
)
(block
- (local.set $3
+ (local.set $2
(local.get $1)
)
(local.set $0
- (local.get $4)
+ (local.get $5)
)
(br $while-in9)
)
@@ -13833,20 +13783,20 @@
(if
(local.tee $1
(i32.load
- (local.tee $4
+ (local.tee $5
(i32.add
- (local.get $3)
+ (local.get $2)
(i32.const 16)
)
)
)
)
(block
- (local.set $3
+ (local.set $2
(local.get $1)
)
(local.set $0
- (local.get $4)
+ (local.get $5)
)
(br $while-in9)
)
@@ -13866,7 +13816,7 @@
(i32.const 0)
)
(local.set $9
- (local.get $3)
+ (local.get $2)
)
)
)
@@ -13874,7 +13824,7 @@
(block
(if
(i32.lt_u
- (local.tee $4
+ (local.tee $2
(i32.load offset=8
(local.get $7)
)
@@ -13888,37 +13838,27 @@
(if
(i32.ne
(local.get $7)
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $4)
- (i32.const 12)
- )
- )
+ (i32.load offset=12
+ (local.get $2)
)
)
(call $_abort)
)
(if
(i32.eq
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
+ (i32.load offset=8
+ (local.get $0)
)
(local.get $7)
)
(block
- (i32.store
- (local.get $1)
+ (i32.store offset=12
+ (local.get $2)
(local.get $0)
)
- (i32.store
- (local.get $3)
- (local.get $4)
+ (i32.store offset=8
+ (local.get $0)
+ (local.get $2)
)
(local.set $9
(local.get $0)
@@ -13937,7 +13877,7 @@
(local.tee $0
(i32.add
(i32.shl
- (local.tee $3
+ (local.tee $2
(i32.load offset=28
(local.get $7)
)
@@ -13969,7 +13909,7 @@
(i32.xor
(i32.shl
(i32.const 1)
- (local.get $3)
+ (local.get $2)
)
(i32.const -1)
)
@@ -13991,18 +13931,13 @@
)
(if
(i32.eq
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $6)
- (i32.const 16)
- )
- )
+ (i32.load offset=16
+ (local.get $6)
)
(local.get $7)
)
- (i32.store
- (local.get $0)
+ (i32.store offset=16
+ (local.get $6)
(local.get $9)
)
(i32.store offset=20
@@ -14020,7 +13955,7 @@
(if
(i32.lt_u
(local.get $9)
- (local.tee $3
+ (local.tee $0
(i32.load
(i32.const 192)
)
@@ -14028,34 +13963,35 @@
)
(call $_abort)
)
- (i32.store offset=24
- (local.get $9)
+ (i32.store
+ (i32.add
+ (local.get $9)
+ (i32.const 24)
+ )
(local.get $6)
)
(if
- (local.tee $1
- (i32.load
- (local.tee $0
- (i32.add
- (local.get $7)
- (i32.const 16)
- )
- )
+ (local.tee $2
+ (i32.load offset=16
+ (local.get $7)
)
)
(if
(i32.lt_u
- (local.get $1)
- (local.get $3)
+ (local.get $2)
+ (local.get $0)
)
(call $_abort)
(block
- (i32.store offset=16
- (local.get $9)
- (local.get $1)
+ (i32.store
+ (i32.add
+ (local.get $9)
+ (i32.const 16)
+ )
+ (local.get $2)
)
(i32.store offset=24
- (local.get $1)
+ (local.get $2)
(local.get $9)
)
)
@@ -14064,7 +14000,10 @@
(if
(local.tee $0
(i32.load offset=4
- (local.get $0)
+ (i32.add
+ (local.get $7)
+ (i32.const 16)
+ )
)
)
(if
@@ -14076,8 +14015,11 @@
)
(call $_abort)
(block
- (i32.store offset=20
- (local.get $9)
+ (i32.store
+ (i32.add
+ (local.get $9)
+ (i32.const 20)
+ )
(local.get $0)
)
(i32.store offset=24
@@ -14092,49 +14034,52 @@
)
)
)
- (i32.store offset=4
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
(i32.or
- (local.get $5)
+ (local.get $4)
(i32.const 1)
)
)
(i32.store
(i32.add
- (local.get $2)
- (local.get $5)
+ (local.get $3)
+ (local.get $4)
)
- (local.get $5)
+ (local.get $4)
)
- (local.set $3
+ (local.set $2
(if (result i32)
(i32.eq
(i32.load
(i32.const 196)
)
- (local.get $2)
+ (local.get $3)
)
(block
(i32.store
(i32.const 184)
- (local.get $5)
+ (local.get $4)
)
(return)
)
- (local.get $5)
+ (local.get $4)
)
)
)
)
(local.set $0
(i32.shr_u
- (local.get $3)
+ (local.get $2)
(i32.const 3)
)
)
(if
(i32.lt_u
- (local.get $3)
+ (local.get $2)
(i32.const 256)
)
(block
@@ -14149,7 +14094,7 @@
)
(if
(i32.and
- (local.tee $3
+ (local.tee $2
(i32.load
(i32.const 176)
)
@@ -14161,29 +14106,32 @@
)
)
)
- (if
- (i32.lt_u
- (local.tee $0
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $1)
- (i32.const 8)
- )
- )
- )
- )
- (i32.load
- (i32.const 192)
+ (block
+ (local.set $2
+ (i32.add
+ (local.get $1)
+ (i32.const 8)
)
)
- (call $_abort)
- (block
- (local.set $15
- (local.get $3)
+ (if
+ (i32.lt_u
+ (local.tee $0
+ (i32.load offset=8
+ (local.get $1)
+ )
+ )
+ (i32.load
+ (i32.const 192)
+ )
)
- (local.set $13
- (local.get $0)
+ (call $_abort)
+ (block
+ (local.set $15
+ (local.get $2)
+ )
+ (local.set $13
+ (local.get $0)
+ )
)
)
)
@@ -14192,7 +14140,7 @@
(i32.const 176)
(i32.or
(local.get $0)
- (local.get $3)
+ (local.get $2)
)
)
(local.set $15
@@ -14208,42 +14156,51 @@
)
(i32.store
(local.get $15)
- (local.get $2)
+ (local.get $3)
)
- (i32.store offset=12
- (local.get $13)
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $13)
+ (i32.const 12)
+ )
+ (local.get $3)
)
- (i32.store offset=8
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
(local.get $13)
)
- (i32.store offset=12
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 12)
+ )
(local.get $1)
)
(return)
)
)
- (local.set $4
+ (local.set $5
(i32.add
(i32.shl
- (local.tee $5
+ (local.tee $4
(if (result i32)
(local.tee $0
(i32.shr_u
- (local.get $3)
+ (local.get $2)
(i32.const 8)
)
)
(if (result i32)
(i32.gt_u
- (local.get $3)
+ (local.get $2)
(i32.const 16777215)
)
(i32.const 31)
(block (result i32)
- (local.set $5
+ (local.set $4
(i32.and
(i32.shr_u
(i32.add
@@ -14271,14 +14228,14 @@
(i32.const 4)
)
)
- (local.set $4
+ (local.set $5
(i32.and
(i32.shr_u
(i32.add
(local.tee $0
(i32.shl
(local.get $0)
- (local.get $5)
+ (local.get $4)
)
)
(i32.const 245760)
@@ -14291,7 +14248,7 @@
(i32.or
(i32.and
(i32.shr_u
- (local.get $3)
+ (local.get $2)
(i32.add
(local.tee $0
(i32.add
@@ -14300,15 +14257,15 @@
(i32.or
(i32.or
(local.get $1)
- (local.get $5)
+ (local.get $4)
)
- (local.get $4)
+ (local.get $5)
)
)
(i32.shr_u
(i32.shl
(local.get $0)
- (local.get $4)
+ (local.get $5)
)
(i32.const 15)
)
@@ -14334,16 +14291,25 @@
(i32.const 480)
)
)
- (i32.store offset=28
- (local.get $2)
- (local.get $5)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 28)
+ )
+ (local.get $4)
)
- (i32.store offset=20
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 20)
+ )
(i32.const 0)
)
- (i32.store offset=16
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
(i32.const 0)
)
(if
@@ -14356,25 +14322,25 @@
(local.tee $0
(i32.shl
(i32.const 1)
- (local.get $5)
+ (local.get $4)
)
)
)
(block $do-once12
- (local.set $5
+ (local.set $4
(i32.shl
- (local.get $3)
+ (local.get $2)
(select
(i32.const 0)
(i32.sub
(i32.const 25)
(i32.shr_u
- (local.get $5)
+ (local.get $4)
(i32.const 1)
)
)
(i32.eq
- (local.get $5)
+ (local.get $4)
(i32.const 31)
)
)
@@ -14382,7 +14348,7 @@
)
(local.set $0
(i32.load
- (local.get $4)
+ (local.get $5)
)
)
(block $__rjto$1
@@ -14391,24 +14357,27 @@
(br_if $__rjti$1
(i32.eq
(i32.and
- (i32.load offset=4
- (local.get $0)
+ (i32.load
+ (i32.add
+ (local.get $0)
+ (i32.const 4)
+ )
)
(i32.const -8)
)
- (local.get $3)
+ (local.get $2)
)
)
- (local.set $4
+ (local.set $5
(i32.shl
- (local.get $5)
+ (local.get $4)
(i32.const 1)
)
)
(if
(local.tee $1
(i32.load
- (local.tee $5
+ (local.tee $4
(i32.add
(i32.add
(local.get $0)
@@ -14416,7 +14385,7 @@
)
(i32.shl
(i32.shr_u
- (local.get $5)
+ (local.get $4)
(i32.const 31)
)
(i32.const 2)
@@ -14426,8 +14395,8 @@
)
)
(block
- (local.set $5
- (local.get $4)
+ (local.set $4
+ (local.get $5)
)
(local.set $0
(local.get $1)
@@ -14438,7 +14407,7 @@
)
(if
(i32.lt_u
- (local.get $5)
+ (local.get $4)
(i32.load
(i32.const 192)
)
@@ -14446,20 +14415,29 @@
(call $_abort)
(block
(i32.store
- (local.get $5)
- (local.get $2)
+ (local.get $4)
+ (local.get $3)
)
- (i32.store offset=24
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 24)
+ )
(local.get $0)
)
- (i32.store offset=12
- (local.get $2)
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 12)
+ )
+ (local.get $3)
)
- (i32.store offset=8
- (local.get $2)
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (local.get $3)
)
(br $do-once12)
)
@@ -14469,17 +14447,12 @@
(if
(i32.and
(i32.ge_u
- (local.tee $4
- (i32.load
- (local.tee $1
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
+ (local.tee $1
+ (i32.load offset=8
+ (local.get $0)
)
)
- (local.tee $3
+ (local.tee $2
(i32.load
(i32.const 192)
)
@@ -14487,28 +14460,37 @@
)
(i32.ge_u
(local.get $0)
- (local.get $3)
+ (local.get $2)
)
)
(block
(i32.store offset=12
- (local.get $4)
- (local.get $2)
- )
- (i32.store
(local.get $1)
- (local.get $2)
+ (local.get $3)
)
(i32.store offset=8
- (local.get $2)
- (local.get $4)
+ (local.get $0)
+ (local.get $3)
)
- (i32.store offset=12
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (local.get $1)
+ )
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 12)
+ )
(local.get $0)
)
- (i32.store offset=24
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 24)
+ )
(i32.const 0)
)
)
@@ -14525,20 +14507,29 @@
)
)
(i32.store
- (local.get $4)
- (local.get $2)
+ (local.get $5)
+ (local.get $3)
)
- (i32.store offset=24
- (local.get $2)
- (local.get $4)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 24)
+ )
+ (local.get $5)
)
- (i32.store offset=12
- (local.get $2)
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 12)
+ )
+ (local.get $3)
)
- (i32.store offset=8
- (local.get $2)
- (local.get $2)
+ (i32.store
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (local.get $3)
)
)
)
@@ -14563,7 +14554,7 @@
(loop $while-in17
(local.set $0
(i32.add
- (local.tee $3
+ (local.tee $2
(i32.load
(local.get $0)
)
@@ -14572,7 +14563,7 @@
)
)
(br_if $while-in17
- (local.get $3)
+ (local.get $2)
)
)
(i32.store
diff --git a/test/memorygrowth.fromasm b/test/memorygrowth.fromasm
index 6a67b7fc0..cf59a4baf 100644
--- a/test/memorygrowth.fromasm
+++ b/test/memorygrowth.fromasm
@@ -7687,9 +7687,7 @@
(local $13 i32)
(local $14 i32)
(local $15 i32)
- (local $16 i32)
- (local $17 i32)
- (local.set $12
+ (local.set $7
(global.get $r)
)
(global.set $r
@@ -7698,29 +7696,25 @@
(i32.const 48)
)
)
- (local.set $9
+ (local.set $11
(i32.add
- (local.get $12)
+ (local.get $7)
(i32.const 16)
)
)
+ (local.set $9
+ (local.get $7)
+ )
(i32.store
(local.tee $3
(i32.add
- (local.tee $10
- (local.get $12)
- )
+ (local.get $7)
(i32.const 32)
)
)
- (local.tee $11
- (i32.load
- (local.tee $7
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (local.tee $10
+ (i32.load offset=28
+ (local.get $0)
)
)
)
@@ -7728,15 +7722,10 @@
(local.get $3)
(local.tee $8
(i32.sub
- (i32.load
- (local.tee $13
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
- (local.get $11)
+ (local.get $10)
)
)
)
@@ -7754,7 +7743,7 @@
(i32.const 60)
)
)
- (local.set $11
+ (local.set $10
(i32.add
(local.get $0)
(i32.const 44)
@@ -7788,24 +7777,24 @@
(local.get $0)
)
(i32.store
- (local.get $10)
+ (local.get $9)
(i32.load
(local.get $1)
)
)
(i32.store offset=4
- (local.get $10)
+ (local.get $9)
(local.get $5)
)
(i32.store offset=8
- (local.get $10)
+ (local.get $9)
(local.get $3)
)
(local.set $8
(call $Pa
(call $ya
(i32.const 146)
- (local.get $10)
+ (local.get $9)
)
)
)
@@ -7815,24 +7804,24 @@
(local.get $8)
)
(block (result i32)
- (i32.store
- (local.get $9)
+ (i32.store offset=16
+ (local.get $7)
(i32.load
(local.get $1)
)
)
(i32.store offset=4
- (local.get $9)
+ (local.get $11)
(local.get $5)
)
(i32.store offset=8
- (local.get $9)
+ (local.get $11)
(local.get $3)
)
(call $Pa
(call $ya
(i32.const 146)
- (local.get $9)
+ (local.get $11)
)
)
)
@@ -7852,10 +7841,10 @@
(i32.const 0)
)
(block
- (local.set $16
+ (local.set $14
(local.get $5)
)
- (local.set $17
+ (local.set $15
(local.get $3)
)
(local.set $1
@@ -7873,23 +7862,23 @@
(if
(i32.gt_u
(local.get $6)
- (local.tee $14
+ (local.tee $12
(i32.load offset=4
(local.get $5)
)
)
)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(local.tee $4
(i32.load
- (local.get $11)
+ (local.get $10)
)
)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(local.get $4)
)
(local.set $4
@@ -7900,7 +7889,7 @@
(local.set $6
(i32.sub
(local.get $6)
- (local.get $14)
+ (local.get $12)
)
)
(local.set $5
@@ -7923,12 +7912,12 @@
(i32.const 2)
)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(i32.add
(local.get $6)
- (i32.load
- (local.get $7)
+ (i32.load offset=28
+ (local.get $0)
)
)
)
@@ -7938,7 +7927,7 @@
)
)
(local.set $4
- (local.get $14)
+ (local.get $12)
)
)
)
@@ -7964,7 +7953,7 @@
(br $while-in)
)
)
- (local.set $15
+ (local.set $13
(if (result i32)
(i32.eq
(local.get $1)
@@ -7976,7 +7965,7 @@
(i32.add
(local.tee $4
(i32.load
- (local.get $11)
+ (local.get $10)
)
)
(i32.load offset=48
@@ -7984,12 +7973,12 @@
)
)
)
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(local.get $4)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(local.get $4)
)
(local.get $2)
@@ -8004,12 +7993,12 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
(i32.store
@@ -8023,26 +8012,26 @@
)
(if (result i32)
(i32.eq
- (local.get $17)
+ (local.get $15)
(i32.const 2)
)
(i32.const 0)
(i32.sub
(local.get $2)
(i32.load offset=4
- (local.get $16)
+ (local.get $14)
)
)
)
)
- (local.get $15)
+ (local.get $13)
)
)
)
(global.set $r
- (local.get $12)
+ (local.get $7)
)
- (local.get $15)
+ (local.get $13)
)
(func $Wa (; 16 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -8579,26 +8568,13 @@
(local $1 i32)
(local $2 i32)
(local $3 i32)
- (local $4 i32)
- (local $5 i32)
- (local $6 i32)
(if
(i32.gt_u
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (i32.load offset=28
+ (local.get $0)
)
)
(block
@@ -8619,8 +8595,8 @@
)
)
(if
- (i32.load
- (local.get $3)
+ (i32.load offset=20
+ (local.get $0)
)
(local.set $1
(i32.const 3)
@@ -8652,14 +8628,9 @@
)
)
)
- (local.tee $6
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
+ (local.tee $3
+ (i32.load offset=8
+ (local.get $0)
)
)
)
@@ -8668,7 +8639,7 @@
(local.get $0)
(i32.sub
(local.get $2)
- (local.get $6)
+ (local.get $3)
)
(i32.const 1)
(i32.add
@@ -8687,16 +8658,16 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $4)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $3)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $5)
+ (i32.store offset=8
+ (local.get $0)
(i32.const 0)
)
(i32.store
@@ -8999,7 +8970,6 @@
(func $db (; 24 ;) (; has Stack IR ;)
(local $0 i32)
(local $1 i32)
- (local $2 i32)
(drop
(i32.load offset=76
(local.tee $0
@@ -9033,13 +9003,8 @@
(if
(i32.lt_u
(local.tee $1
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
)
(i32.load offset=16
@@ -9047,8 +9012,8 @@
)
)
(block
- (i32.store
- (local.get $2)
+ (i32.store offset=20
+ (local.get $0)
(i32.add
(local.get $1)
(i32.const 1)
@@ -9182,8 +9147,7 @@
)
(func $Ua (; 27 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
- (local $4 i32)
- (local.set $4
+ (local.set $3
(global.get $r)
)
(global.set $r
@@ -9193,9 +9157,7 @@
)
)
(i32.store
- (local.tee $3
- (local.get $4)
- )
+ (local.get $3)
(i32.load offset=60
(local.get $0)
)
@@ -9210,11 +9172,9 @@
)
(i32.store offset=12
(local.get $3)
- (local.tee $0
- (i32.add
- (local.get $3)
- (i32.const 20)
- )
+ (i32.add
+ (local.get $3)
+ (i32.const 20)
)
)
(i32.store offset=16
@@ -9233,19 +9193,19 @@
(i32.const 0)
)
(block (result i32)
- (i32.store
- (local.get $0)
+ (i32.store offset=20
+ (local.get $3)
(i32.const -1)
)
(i32.const -1)
)
- (i32.load
- (local.get $0)
+ (i32.load offset=20
+ (local.get $3)
)
)
)
(global.set $r
- (local.get $4)
+ (local.get $3)
)
(local.get $0)
)
diff --git a/test/memorygrowth.fromasm.clamp b/test/memorygrowth.fromasm.clamp
index 6a67b7fc0..cf59a4baf 100644
--- a/test/memorygrowth.fromasm.clamp
+++ b/test/memorygrowth.fromasm.clamp
@@ -7687,9 +7687,7 @@
(local $13 i32)
(local $14 i32)
(local $15 i32)
- (local $16 i32)
- (local $17 i32)
- (local.set $12
+ (local.set $7
(global.get $r)
)
(global.set $r
@@ -7698,29 +7696,25 @@
(i32.const 48)
)
)
- (local.set $9
+ (local.set $11
(i32.add
- (local.get $12)
+ (local.get $7)
(i32.const 16)
)
)
+ (local.set $9
+ (local.get $7)
+ )
(i32.store
(local.tee $3
(i32.add
- (local.tee $10
- (local.get $12)
- )
+ (local.get $7)
(i32.const 32)
)
)
- (local.tee $11
- (i32.load
- (local.tee $7
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (local.tee $10
+ (i32.load offset=28
+ (local.get $0)
)
)
)
@@ -7728,15 +7722,10 @@
(local.get $3)
(local.tee $8
(i32.sub
- (i32.load
- (local.tee $13
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
- (local.get $11)
+ (local.get $10)
)
)
)
@@ -7754,7 +7743,7 @@
(i32.const 60)
)
)
- (local.set $11
+ (local.set $10
(i32.add
(local.get $0)
(i32.const 44)
@@ -7788,24 +7777,24 @@
(local.get $0)
)
(i32.store
- (local.get $10)
+ (local.get $9)
(i32.load
(local.get $1)
)
)
(i32.store offset=4
- (local.get $10)
+ (local.get $9)
(local.get $5)
)
(i32.store offset=8
- (local.get $10)
+ (local.get $9)
(local.get $3)
)
(local.set $8
(call $Pa
(call $ya
(i32.const 146)
- (local.get $10)
+ (local.get $9)
)
)
)
@@ -7815,24 +7804,24 @@
(local.get $8)
)
(block (result i32)
- (i32.store
- (local.get $9)
+ (i32.store offset=16
+ (local.get $7)
(i32.load
(local.get $1)
)
)
(i32.store offset=4
- (local.get $9)
+ (local.get $11)
(local.get $5)
)
(i32.store offset=8
- (local.get $9)
+ (local.get $11)
(local.get $3)
)
(call $Pa
(call $ya
(i32.const 146)
- (local.get $9)
+ (local.get $11)
)
)
)
@@ -7852,10 +7841,10 @@
(i32.const 0)
)
(block
- (local.set $16
+ (local.set $14
(local.get $5)
)
- (local.set $17
+ (local.set $15
(local.get $3)
)
(local.set $1
@@ -7873,23 +7862,23 @@
(if
(i32.gt_u
(local.get $6)
- (local.tee $14
+ (local.tee $12
(i32.load offset=4
(local.get $5)
)
)
)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(local.tee $4
(i32.load
- (local.get $11)
+ (local.get $10)
)
)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(local.get $4)
)
(local.set $4
@@ -7900,7 +7889,7 @@
(local.set $6
(i32.sub
(local.get $6)
- (local.get $14)
+ (local.get $12)
)
)
(local.set $5
@@ -7923,12 +7912,12 @@
(i32.const 2)
)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(i32.add
(local.get $6)
- (i32.load
- (local.get $7)
+ (i32.load offset=28
+ (local.get $0)
)
)
)
@@ -7938,7 +7927,7 @@
)
)
(local.set $4
- (local.get $14)
+ (local.get $12)
)
)
)
@@ -7964,7 +7953,7 @@
(br $while-in)
)
)
- (local.set $15
+ (local.set $13
(if (result i32)
(i32.eq
(local.get $1)
@@ -7976,7 +7965,7 @@
(i32.add
(local.tee $4
(i32.load
- (local.get $11)
+ (local.get $10)
)
)
(i32.load offset=48
@@ -7984,12 +7973,12 @@
)
)
)
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(local.get $4)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(local.get $4)
)
(local.get $2)
@@ -8004,12 +7993,12 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
(i32.store
@@ -8023,26 +8012,26 @@
)
(if (result i32)
(i32.eq
- (local.get $17)
+ (local.get $15)
(i32.const 2)
)
(i32.const 0)
(i32.sub
(local.get $2)
(i32.load offset=4
- (local.get $16)
+ (local.get $14)
)
)
)
)
- (local.get $15)
+ (local.get $13)
)
)
)
(global.set $r
- (local.get $12)
+ (local.get $7)
)
- (local.get $15)
+ (local.get $13)
)
(func $Wa (; 16 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -8579,26 +8568,13 @@
(local $1 i32)
(local $2 i32)
(local $3 i32)
- (local $4 i32)
- (local $5 i32)
- (local $6 i32)
(if
(i32.gt_u
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (i32.load offset=28
+ (local.get $0)
)
)
(block
@@ -8619,8 +8595,8 @@
)
)
(if
- (i32.load
- (local.get $3)
+ (i32.load offset=20
+ (local.get $0)
)
(local.set $1
(i32.const 3)
@@ -8652,14 +8628,9 @@
)
)
)
- (local.tee $6
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
+ (local.tee $3
+ (i32.load offset=8
+ (local.get $0)
)
)
)
@@ -8668,7 +8639,7 @@
(local.get $0)
(i32.sub
(local.get $2)
- (local.get $6)
+ (local.get $3)
)
(i32.const 1)
(i32.add
@@ -8687,16 +8658,16 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $4)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $3)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $5)
+ (i32.store offset=8
+ (local.get $0)
(i32.const 0)
)
(i32.store
@@ -8999,7 +8970,6 @@
(func $db (; 24 ;) (; has Stack IR ;)
(local $0 i32)
(local $1 i32)
- (local $2 i32)
(drop
(i32.load offset=76
(local.tee $0
@@ -9033,13 +9003,8 @@
(if
(i32.lt_u
(local.tee $1
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
)
(i32.load offset=16
@@ -9047,8 +9012,8 @@
)
)
(block
- (i32.store
- (local.get $2)
+ (i32.store offset=20
+ (local.get $0)
(i32.add
(local.get $1)
(i32.const 1)
@@ -9182,8 +9147,7 @@
)
(func $Ua (; 27 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
- (local $4 i32)
- (local.set $4
+ (local.set $3
(global.get $r)
)
(global.set $r
@@ -9193,9 +9157,7 @@
)
)
(i32.store
- (local.tee $3
- (local.get $4)
- )
+ (local.get $3)
(i32.load offset=60
(local.get $0)
)
@@ -9210,11 +9172,9 @@
)
(i32.store offset=12
(local.get $3)
- (local.tee $0
- (i32.add
- (local.get $3)
- (i32.const 20)
- )
+ (i32.add
+ (local.get $3)
+ (i32.const 20)
)
)
(i32.store offset=16
@@ -9233,19 +9193,19 @@
(i32.const 0)
)
(block (result i32)
- (i32.store
- (local.get $0)
+ (i32.store offset=20
+ (local.get $3)
(i32.const -1)
)
(i32.const -1)
)
- (i32.load
- (local.get $0)
+ (i32.load offset=20
+ (local.get $3)
)
)
)
(global.set $r
- (local.get $4)
+ (local.get $3)
)
(local.get $0)
)
diff --git a/test/memorygrowth.fromasm.imprecise b/test/memorygrowth.fromasm.imprecise
index 075614f71..2ffcd0c51 100644
--- a/test/memorygrowth.fromasm.imprecise
+++ b/test/memorygrowth.fromasm.imprecise
@@ -7685,9 +7685,7 @@
(local $13 i32)
(local $14 i32)
(local $15 i32)
- (local $16 i32)
- (local $17 i32)
- (local.set $12
+ (local.set $7
(global.get $r)
)
(global.set $r
@@ -7696,29 +7694,25 @@
(i32.const 48)
)
)
- (local.set $9
+ (local.set $11
(i32.add
- (local.get $12)
+ (local.get $7)
(i32.const 16)
)
)
+ (local.set $9
+ (local.get $7)
+ )
(i32.store
(local.tee $3
(i32.add
- (local.tee $10
- (local.get $12)
- )
+ (local.get $7)
(i32.const 32)
)
)
- (local.tee $11
- (i32.load
- (local.tee $7
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (local.tee $10
+ (i32.load offset=28
+ (local.get $0)
)
)
)
@@ -7726,15 +7720,10 @@
(local.get $3)
(local.tee $8
(i32.sub
- (i32.load
- (local.tee $13
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
- (local.get $11)
+ (local.get $10)
)
)
)
@@ -7752,7 +7741,7 @@
(i32.const 60)
)
)
- (local.set $11
+ (local.set $10
(i32.add
(local.get $0)
(i32.const 44)
@@ -7786,24 +7775,24 @@
(local.get $0)
)
(i32.store
- (local.get $10)
+ (local.get $9)
(i32.load
(local.get $1)
)
)
(i32.store offset=4
- (local.get $10)
+ (local.get $9)
(local.get $5)
)
(i32.store offset=8
- (local.get $10)
+ (local.get $9)
(local.get $3)
)
(local.set $8
(call $Pa
(call $ya
(i32.const 146)
- (local.get $10)
+ (local.get $9)
)
)
)
@@ -7813,24 +7802,24 @@
(local.get $8)
)
(block (result i32)
- (i32.store
- (local.get $9)
+ (i32.store offset=16
+ (local.get $7)
(i32.load
(local.get $1)
)
)
(i32.store offset=4
- (local.get $9)
+ (local.get $11)
(local.get $5)
)
(i32.store offset=8
- (local.get $9)
+ (local.get $11)
(local.get $3)
)
(call $Pa
(call $ya
(i32.const 146)
- (local.get $9)
+ (local.get $11)
)
)
)
@@ -7850,10 +7839,10 @@
(i32.const 0)
)
(block
- (local.set $15
+ (local.set $13
(local.get $5)
)
- (local.set $16
+ (local.set $14
(local.get $3)
)
(local.set $1
@@ -7871,23 +7860,23 @@
(if
(i32.gt_u
(local.get $6)
- (local.tee $14
+ (local.tee $12
(i32.load offset=4
(local.get $5)
)
)
)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(local.tee $4
(i32.load
- (local.get $11)
+ (local.get $10)
)
)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(local.get $4)
)
(local.set $4
@@ -7898,7 +7887,7 @@
(local.set $6
(i32.sub
(local.get $6)
- (local.get $14)
+ (local.get $12)
)
)
(local.set $5
@@ -7921,12 +7910,12 @@
(i32.const 2)
)
(block
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(i32.add
(local.get $6)
- (i32.load
- (local.get $7)
+ (i32.load offset=28
+ (local.get $0)
)
)
)
@@ -7936,7 +7925,7 @@
)
)
(local.set $4
- (local.get $14)
+ (local.get $12)
)
)
)
@@ -7963,7 +7952,7 @@
)
)
(global.set $r
- (local.get $12)
+ (local.get $7)
)
(if (result i32)
(i32.eq
@@ -7976,7 +7965,7 @@
(i32.add
(local.tee $4
(i32.load
- (local.get $11)
+ (local.get $10)
)
)
(i32.load offset=48
@@ -7984,12 +7973,12 @@
)
)
)
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(local.get $4)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(local.get $4)
)
(local.get $2)
@@ -8004,12 +7993,12 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $7)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $13)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
(i32.store
@@ -8026,16 +8015,16 @@
(i32.sub
(local.get $2)
(i32.load offset=4
- (local.get $15)
+ (local.get $13)
)
)
(i32.eq
- (local.get $16)
+ (local.get $14)
(i32.const 2)
)
)
)
- (local.get $17)
+ (local.get $15)
)
)
)
@@ -8569,26 +8558,13 @@
(local $1 i32)
(local $2 i32)
(local $3 i32)
- (local $4 i32)
- (local $5 i32)
- (local $6 i32)
(if
(i32.gt_u
- (i32.load
- (local.tee $3
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
- (i32.load
- (local.tee $4
- (i32.add
- (local.get $0)
- (i32.const 28)
- )
- )
+ (i32.load offset=28
+ (local.get $0)
)
)
(block
@@ -8609,8 +8585,8 @@
)
)
(if
- (i32.load
- (local.get $3)
+ (i32.load offset=20
+ (local.get $0)
)
(local.set $1
(i32.const 3)
@@ -8642,14 +8618,9 @@
)
)
)
- (local.tee $6
- (i32.load
- (local.tee $5
- (i32.add
- (local.get $0)
- (i32.const 8)
- )
- )
+ (local.tee $3
+ (i32.load offset=8
+ (local.get $0)
)
)
)
@@ -8658,7 +8629,7 @@
(local.get $0)
(i32.sub
(local.get $2)
- (local.get $6)
+ (local.get $3)
)
(i32.const 1)
(i32.add
@@ -8677,16 +8648,16 @@
(local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $4)
+ (i32.store offset=28
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $3)
+ (i32.store offset=20
+ (local.get $0)
(i32.const 0)
)
- (i32.store
- (local.get $5)
+ (i32.store offset=8
+ (local.get $0)
(i32.const 0)
)
(i32.store
@@ -9006,22 +8977,22 @@
(i32.add
(select
(i32.div_u
- (local.tee $2
+ (local.tee $1
(call $Wa
- (local.tee $1
- (local.tee $3
+ (local.tee $3
+ (local.tee $2
(call $Za)
)
)
(local.get $0)
)
)
- (local.get $3)
+ (local.get $2)
)
(i32.const 1)
(i32.ne
(local.get $1)
- (local.get $2)
+ (local.get $3)
)
)
(i32.const -1)
@@ -9040,13 +9011,8 @@
(if
(i32.lt_u
(local.tee $1
- (i32.load
- (local.tee $2
- (i32.add
- (local.get $0)
- (i32.const 20)
- )
- )
+ (i32.load offset=20
+ (local.get $0)
)
)
(i32.load offset=16
@@ -9054,8 +9020,8 @@
)
)
(block
- (i32.store
- (local.get $2)
+ (i32.store offset=20
+ (local.get $0)
(i32.add
(local.get $1)
(i32.const 1)
@@ -9156,8 +9122,7 @@
)
(func $Ua (; 26 ;) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
- (local $4 i32)
- (local.set $4
+ (local.set $3
(global.get $r)
)
(global.set $r
@@ -9167,9 +9132,7 @@
)
)
(i32.store
- (local.tee $3
- (local.get $4)
- )
+ (local.get $3)
(i32.load offset=60
(local.get $0)
)
@@ -9184,11 +9147,9 @@
)
(i32.store offset=12
(local.get $3)
- (local.tee $0
- (i32.add
- (local.get $3)
- (i32.const 20)
- )
+ (i32.add
+ (local.get $3)
+ (i32.const 20)
)
)
(i32.store offset=16
@@ -9207,19 +9168,19 @@
(i32.const 0)
)
(block (result i32)
- (i32.store
- (local.get $0)
+ (i32.store offset=20
+ (local.get $3)
(i32.const -1)
)
(i32.const -1)
)
- (i32.load
- (local.get $0)
+ (i32.load offset=20
+ (local.get $3)
)
)
)
(global.set $r
- (local.get $4)
+ (local.get $3)
)
(local.get $0)
)
diff --git a/test/passes/optimize-added-constants-propagate_low-memory-unused.txt b/test/passes/optimize-added-constants-propagate_low-memory-unused.txt
new file mode 100644
index 000000000..6d823ed2b
--- /dev/null
+++ b/test/passes/optimize-added-constants-propagate_low-memory-unused.txt
@@ -0,0 +1,410 @@
+(module
+ (type $0 (func))
+ (type $1 (func (param i32)))
+ (type $2 (func (param i32) (result i32)))
+ (func $consts (; 0 ;) (type $0)
+ (drop
+ (i32.load
+ (i32.const 0)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1023)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1024)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 0)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1023)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1024)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1023)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1024)
+ )
+ )
+ (i32.store
+ (i32.const 1)
+ (i32.const 1)
+ )
+ )
+ (func $offsets (; 1 ;) (type $1) (param $x i32)
+ (drop
+ (i32.load offset=1
+ (local.get $x)
+ )
+ )
+ (drop
+ (i32.load offset=8
+ (local.get $x)
+ )
+ )
+ (drop
+ (i32.load offset=1023
+ (local.get $x)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.add
+ (local.get $x)
+ (i32.const 1024)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (i32.add
+ (local.get $x)
+ (i32.const 2048)
+ )
+ )
+ )
+ (drop
+ (i32.load offset=4
+ (local.get $x)
+ )
+ )
+ )
+ (func $load-off-2 (; 2 ;) (type $2) (param $0 i32) (result i32)
+ (i32.store
+ (i32.const 6)
+ (local.get $0)
+ )
+ (i32.store
+ (i32.const 6)
+ (local.get $0)
+ )
+ (i32.store offset=7
+ (local.get $0)
+ (local.get $0)
+ )
+ (i32.store offset=9
+ (local.get $0)
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (i32.const -11)
+ (local.get $0)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (local.get $0)
+ (i32.const -13)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=19
+ (i32.const -15)
+ (local.get $0)
+ )
+ (i32.store offset=21
+ (i32.const -21)
+ (local.get $0)
+ )
+ (i32.store
+ (i32.const 25)
+ (local.get $0)
+ )
+ (i32.store
+ (i32.const -23)
+ (local.get $0)
+ )
+ (drop
+ (i32.load
+ (i32.const 8)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 8)
+ )
+ )
+ (drop
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 10)
+ )
+ )
+ (i32.load offset=12
+ (local.get $0)
+ )
+ )
+ (func $offset-constant (; 3 ;) (type $0)
+ (drop
+ (i32.load
+ (i32.const 10)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 10)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 20)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1024)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1023)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1023)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 100511)
+ )
+ )
+ )
+ (func $offset-propagate-param (; 4 ;) (type $1) (param $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32.load offset=1
+ (local.get $y)
+ )
+ )
+ )
+ (func $offset-propagate (; 5 ;) (type $0)
+ (local $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32.load offset=1
+ (local.get $y)
+ )
+ )
+ )
+ (func $offset-propagate2 (; 6 ;) (type $0)
+ (local $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (local.get $y)
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate3 (; 7 ;) (type $0)
+ (local $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (drop
+ (i32.load offset=1
+ (local.get $y)
+ )
+ )
+ )
+ (func $offset-propagate4 (; 8 ;) (type $0)
+ (local $x i32)
+ (local $y i32)
+ (local.set $y
+ (i32.const -1)
+ )
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (drop
+ (i32.load offset=1
+ (local.get $y)
+ )
+ )
+ )
+ (func $offset-propagate5 (; 9 ;) (type $1) (param $z i32)
+ (local $x i32)
+ (local $y i32)
+ (if
+ (local.get $z)
+ (local.set $y
+ (i32.const -1)
+ )
+ )
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate6 (; 10 ;) (type $1) (param $z i32)
+ (local $x i32)
+ (local $y i32)
+ (local.set $y
+ (local.get $z)
+ )
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (local.set $y
+ (i32.const -2)
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate7 (; 11 ;) (type $1) (param $z i32)
+ (local $x i32)
+ (local $y i32)
+ (local.set $y
+ (local.get $z)
+ )
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (if
+ (i32.const 1)
+ (local.set $x
+ (i32.add
+ (i32.const 2)
+ (local.get $y)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-realistic (; 12 ;) (type $1) (param $ptr i32)
+ (local $x i32)
+ (local $y i32)
+ (local $z i32)
+ (local.set $x
+ (i32.add
+ (local.get $ptr)
+ (i32.const 8)
+ )
+ )
+ (local.set $y
+ (i32.add
+ (local.get $ptr)
+ (i32.const 16)
+ )
+ )
+ (local.set $z
+ (i32.add
+ (local.get $ptr)
+ (i32.const 24)
+ )
+ )
+ (loop $l
+ (call $offset-realistic
+ (i32.load offset=8
+ (local.get $ptr)
+ )
+ )
+ (call $offset-realistic
+ (i32.load offset=16
+ (local.get $ptr)
+ )
+ )
+ (call $offset-realistic
+ (i32.load offset=16
+ (local.get $ptr)
+ )
+ )
+ (i32.store offset=24
+ (local.get $ptr)
+ (i32.add
+ (i32.load offset=24
+ (local.get $ptr)
+ )
+ (i32.const 1)
+ )
+ )
+ (br_if $l
+ (i32.load offset=24
+ (local.get $ptr)
+ )
+ )
+ )
+ )
+)
diff --git a/test/passes/optimize-added-constants-propagate_low-memory-unused.wast b/test/passes/optimize-added-constants-propagate_low-memory-unused.wast
new file mode 100644
index 000000000..4f549aa47
--- /dev/null
+++ b/test/passes/optimize-added-constants-propagate_low-memory-unused.wast
@@ -0,0 +1,415 @@
+(module
+ (func $consts
+ (drop
+ (i32.load (i32.const 0))
+ )
+ (drop
+ (i32.load (i32.const 1))
+ )
+ (drop
+ (i32.load (i32.const 1023))
+ )
+ (drop
+ (i32.load (i32.const 1024))
+ )
+ (drop
+ (i32.load offset=0 (i32.const 0))
+ )
+ (drop
+ (i32.load offset=1 (i32.const 0))
+ )
+ (drop
+ (i32.load offset=1023 (i32.const 0))
+ )
+ (drop
+ (i32.load offset=1024 (i32.const 0))
+ )
+ (drop
+ (i32.load offset=512 (i32.const 511))
+ )
+ (drop
+ (i32.load offset=512 (i32.const 512))
+ )
+ (i32.store (i32.const 1) (i32.const 1))
+ )
+ (func $offsets (param $x i32)
+ (drop
+ (i32.load
+ (i32.add
+ (local.get $x)
+ (i32.const 1)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (i32.add
+ (local.get $x)
+ (i32.const 8)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (i32.add
+ (local.get $x)
+ (i32.const 1023)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (i32.add
+ (local.get $x)
+ (i32.const 1024)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (i32.add
+ (local.get $x)
+ (i32.const 2048)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (i32.add
+ (i32.const 4)
+ (local.get $x)
+ )
+ )
+ )
+ )
+ (func $load-off-2 (param $0 i32) (result i32)
+ (i32.store offset=2
+ (i32.add
+ (i32.const 1)
+ (i32.const 3)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (i32.const 3)
+ (i32.const 1)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (local.get $0)
+ (i32.const 5)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (i32.const 7)
+ (local.get $0)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (i32.const -11) ;; do not fold this!
+ (local.get $0)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (local.get $0)
+ (i32.const -13) ;; do not fold this!
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (i32.const -15)
+ (i32.const 17)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (i32.const -21)
+ (i32.const 19)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.const 23)
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.const -25)
+ (local.get $0)
+ )
+ (drop
+ (i32.load offset=2
+ (i32.add
+ (i32.const 2)
+ (i32.const 4)
+ )
+ )
+ )
+ (drop
+ (i32.load offset=2
+ (i32.add
+ (i32.const 4)
+ (i32.const 2)
+ )
+ )
+ )
+ (drop
+ (i32.load offset=2
+ (i32.add
+ (local.get $0)
+ (i32.const 6)
+ )
+ )
+ )
+ (drop
+ (i32.load offset=2
+ (i32.const 8)
+ )
+ )
+ (i32.load offset=2
+ (i32.add
+ (i32.const 10)
+ (local.get $0)
+ )
+ )
+ )
+ (func $offset-constant
+ (drop
+ (i32.load offset=10
+ (i32.const 0)
+ )
+ )
+ (drop
+ (i32.load offset=0
+ (i32.const 10)
+ )
+ )
+ (drop
+ (i32.load offset=10
+ (i32.const 10)
+ )
+ )
+ (drop
+ (i32.load offset=512
+ (i32.const 512)
+ )
+ )
+ (drop
+ (i32.load offset=512
+ (i32.const 511)
+ )
+ )
+ (drop
+ (i32.load offset=511
+ (i32.const 512)
+ )
+ )
+ (drop
+ (i32.load offset=99999
+ (i32.const 512)
+ )
+ )
+ )
+ (func $offset-propagate-param (param $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate
+ (local $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate2
+ (local $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (local.get $y)
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate3
+ (local $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate4
+ (local $x i32)
+ (local $y i32)
+ (local.set $y (i32.const -1))
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate5 (param $z i32)
+ (local $x i32)
+ (local $y i32)
+ (if (local.get $z)
+ (local.set $y (i32.const -1)) ;; y is not ssa
+ )
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate6 (param $z i32)
+ (local $x i32)
+ (local $y i32)
+ (local.set $y (local.get $z))
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (local.set $y (i32.const -2)) ;; y has another set, so not ssa
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate7 (param $z i32)
+ (local $x i32)
+ (local $y i32)
+ (local.set $y (local.get $z))
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (if (i32.const 1)
+ (local.set $x ;; x is not ssa
+ (i32.add
+ (i32.const 2)
+ (local.get $y)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-realistic (param $ptr i32)
+ (local $x i32)
+ (local $y i32)
+ (local $z i32)
+ (local.set $x
+ (i32.add
+ (local.get $ptr)
+ (i32.const 8)
+ )
+ )
+ (local.set $y
+ (i32.add
+ (local.get $ptr)
+ (i32.const 16)
+ )
+ )
+ (local.set $z
+ (i32.add
+ (local.get $ptr)
+ (i32.const 24)
+ )
+ )
+ (loop $l
+ (call $offset-realistic
+ (i32.load
+ (local.get $x)
+ )
+ )
+ (call $offset-realistic
+ (i32.load
+ (local.get $y)
+ )
+ )
+ (call $offset-realistic
+ (i32.load
+ (local.get $y)
+ )
+ )
+ (i32.store
+ (local.get $z)
+ (i32.add
+ (i32.load
+ (local.get $z)
+ )
+ (i32.const 1)
+ )
+ )
+ (br_if $l
+ (i32.load
+ (local.get $z)
+ )
+ )
+ )
+ )
+)
+
diff --git a/test/passes/optimize-added-constants_low-memory-unused.txt b/test/passes/optimize-added-constants_low-memory-unused.txt
new file mode 100644
index 000000000..81f2ba216
--- /dev/null
+++ b/test/passes/optimize-added-constants_low-memory-unused.txt
@@ -0,0 +1,383 @@
+(module
+ (type $0 (func))
+ (type $1 (func (param i32)))
+ (type $2 (func (param i32) (result i32)))
+ (func $consts (; 0 ;) (type $0)
+ (drop
+ (i32.load
+ (i32.const 0)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1023)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1024)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 0)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1023)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1024)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1023)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1024)
+ )
+ )
+ (i32.store
+ (i32.const 1)
+ (i32.const 1)
+ )
+ )
+ (func $offsets (; 1 ;) (type $1) (param $x i32)
+ (drop
+ (i32.load offset=1
+ (local.get $x)
+ )
+ )
+ (drop
+ (i32.load offset=8
+ (local.get $x)
+ )
+ )
+ (drop
+ (i32.load offset=1023
+ (local.get $x)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.add
+ (local.get $x)
+ (i32.const 1024)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (i32.add
+ (local.get $x)
+ (i32.const 2048)
+ )
+ )
+ )
+ (drop
+ (i32.load offset=4
+ (local.get $x)
+ )
+ )
+ )
+ (func $load-off-2 (; 2 ;) (type $2) (param $0 i32) (result i32)
+ (i32.store
+ (i32.const 6)
+ (local.get $0)
+ )
+ (i32.store
+ (i32.const 6)
+ (local.get $0)
+ )
+ (i32.store offset=7
+ (local.get $0)
+ (local.get $0)
+ )
+ (i32.store offset=9
+ (local.get $0)
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (i32.const -11)
+ (local.get $0)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (local.get $0)
+ (i32.const -13)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=19
+ (i32.const -15)
+ (local.get $0)
+ )
+ (i32.store offset=21
+ (i32.const -21)
+ (local.get $0)
+ )
+ (i32.store
+ (i32.const 25)
+ (local.get $0)
+ )
+ (i32.store
+ (i32.const -23)
+ (local.get $0)
+ )
+ (drop
+ (i32.load
+ (i32.const 8)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 8)
+ )
+ )
+ (drop
+ (i32.load offset=8
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 10)
+ )
+ )
+ (i32.load offset=12
+ (local.get $0)
+ )
+ )
+ (func $offset-constant (; 3 ;) (type $0)
+ (drop
+ (i32.load
+ (i32.const 10)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 10)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 20)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1024)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1023)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1023)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 100511)
+ )
+ )
+ )
+ (func $offset-propagate-param (; 4 ;) (type $1) (param $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate (; 5 ;) (type $0)
+ (local $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate2 (; 6 ;) (type $0)
+ (local $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (local.get $y)
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate3 (; 7 ;) (type $0)
+ (local $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate4 (; 8 ;) (type $0)
+ (local $x i32)
+ (local $y i32)
+ (local.set $y
+ (i32.const -1)
+ )
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate5 (; 9 ;) (type $1) (param $z i32)
+ (local $x i32)
+ (local $y i32)
+ (if
+ (local.get $z)
+ (local.set $y
+ (i32.const -1)
+ )
+ )
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate6 (; 10 ;) (type $1) (param $z i32)
+ (local $x i32)
+ (local $y i32)
+ (local.set $y
+ (local.get $z)
+ )
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (local.set $y
+ (i32.const -2)
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-realistic (; 11 ;) (type $1) (param $ptr i32)
+ (local $x i32)
+ (local $y i32)
+ (local $z i32)
+ (local.set $x
+ (i32.add
+ (local.get $ptr)
+ (i32.const 8)
+ )
+ )
+ (local.set $y
+ (i32.add
+ (local.get $ptr)
+ (i32.const 16)
+ )
+ )
+ (local.set $z
+ (i32.add
+ (local.get $ptr)
+ (i32.const 24)
+ )
+ )
+ (loop $l
+ (call $offset-realistic
+ (i32.load
+ (local.get $x)
+ )
+ )
+ (call $offset-realistic
+ (i32.load
+ (local.get $y)
+ )
+ )
+ (call $offset-realistic
+ (i32.load
+ (local.get $y)
+ )
+ )
+ (i32.store
+ (local.get $z)
+ (i32.add
+ (i32.load
+ (local.get $z)
+ )
+ (i32.const 1)
+ )
+ )
+ (br_if $l
+ (i32.load
+ (local.get $z)
+ )
+ )
+ )
+ )
+)
diff --git a/test/passes/optimize-added-constants_low-memory-unused.wast b/test/passes/optimize-added-constants_low-memory-unused.wast
new file mode 100644
index 000000000..b31f80a25
--- /dev/null
+++ b/test/passes/optimize-added-constants_low-memory-unused.wast
@@ -0,0 +1,391 @@
+(module
+ (func $consts
+ (drop
+ (i32.load (i32.const 0))
+ )
+ (drop
+ (i32.load (i32.const 1))
+ )
+ (drop
+ (i32.load (i32.const 1023))
+ )
+ (drop
+ (i32.load (i32.const 1024))
+ )
+ (drop
+ (i32.load offset=0 (i32.const 0))
+ )
+ (drop
+ (i32.load offset=1 (i32.const 0))
+ )
+ (drop
+ (i32.load offset=1023 (i32.const 0))
+ )
+ (drop
+ (i32.load offset=1024 (i32.const 0))
+ )
+ (drop
+ (i32.load offset=512 (i32.const 511))
+ )
+ (drop
+ (i32.load offset=512 (i32.const 512))
+ )
+ (i32.store (i32.const 1) (i32.const 1))
+ )
+ (func $offsets (param $x i32)
+ (drop
+ (i32.load
+ (i32.add
+ (local.get $x)
+ (i32.const 1)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (i32.add
+ (local.get $x)
+ (i32.const 8)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (i32.add
+ (local.get $x)
+ (i32.const 1023)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (i32.add
+ (local.get $x)
+ (i32.const 1024)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (i32.add
+ (local.get $x)
+ (i32.const 2048)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (i32.add
+ (i32.const 4)
+ (local.get $x)
+ )
+ )
+ )
+ )
+ (func $load-off-2 (param $0 i32) (result i32)
+ (i32.store offset=2
+ (i32.add
+ (i32.const 1)
+ (i32.const 3)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (i32.const 3)
+ (i32.const 1)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (local.get $0)
+ (i32.const 5)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (i32.const 7)
+ (local.get $0)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (i32.const -11) ;; do not fold this!
+ (local.get $0)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (local.get $0)
+ (i32.const -13) ;; do not fold this!
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (i32.const -15)
+ (i32.const 17)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.add
+ (i32.const -21)
+ (i32.const 19)
+ )
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.const 23)
+ (local.get $0)
+ )
+ (i32.store offset=2
+ (i32.const -25)
+ (local.get $0)
+ )
+ (drop
+ (i32.load offset=2
+ (i32.add
+ (i32.const 2)
+ (i32.const 4)
+ )
+ )
+ )
+ (drop
+ (i32.load offset=2
+ (i32.add
+ (i32.const 4)
+ (i32.const 2)
+ )
+ )
+ )
+ (drop
+ (i32.load offset=2
+ (i32.add
+ (local.get $0)
+ (i32.const 6)
+ )
+ )
+ )
+ (drop
+ (i32.load offset=2
+ (i32.const 8)
+ )
+ )
+ (i32.load offset=2
+ (i32.add
+ (i32.const 10)
+ (local.get $0)
+ )
+ )
+ )
+ (func $offset-constant
+ (drop
+ (i32.load offset=10
+ (i32.const 0)
+ )
+ )
+ (drop
+ (i32.load offset=0
+ (i32.const 10)
+ )
+ )
+ (drop
+ (i32.load offset=10
+ (i32.const 10)
+ )
+ )
+ (drop
+ (i32.load offset=512
+ (i32.const 512)
+ )
+ )
+ (drop
+ (i32.load offset=512
+ (i32.const 511)
+ )
+ )
+ (drop
+ (i32.load offset=511
+ (i32.const 512)
+ )
+ )
+ (drop
+ (i32.load offset=99999
+ (i32.const 512)
+ )
+ )
+ )
+ (func $offset-propagate-param (param $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate
+ (local $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (local.get $y)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate2
+ (local $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (local.get $y)
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate3
+ (local $x i32)
+ (local $y i32)
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate4
+ (local $x i32)
+ (local $y i32)
+ (local.set $y (i32.const -1))
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate5 (param $z i32)
+ (local $x i32)
+ (local $y i32)
+ (if (local.get $z)
+ (local.set $y (i32.const -1))
+ )
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-propagate6 (param $z i32)
+ (local $x i32)
+ (local $y i32)
+ (local.set $y (local.get $z))
+ (local.set $x
+ (i32.add
+ (i32.const 1)
+ (local.get $y)
+ )
+ )
+ (local.set $y (i32.const -2))
+ (drop
+ (i32.load
+ (local.get $x)
+ )
+ )
+ )
+ (func $offset-realistic (param $ptr i32)
+ (local $x i32)
+ (local $y i32)
+ (local $z i32)
+ (local.set $x
+ (i32.add
+ (local.get $ptr)
+ (i32.const 8)
+ )
+ )
+ (local.set $y
+ (i32.add
+ (local.get $ptr)
+ (i32.const 16)
+ )
+ )
+ (local.set $z
+ (i32.add
+ (local.get $ptr)
+ (i32.const 24)
+ )
+ )
+ (loop $l
+ (call $offset-realistic
+ (i32.load
+ (local.get $x)
+ )
+ )
+ (call $offset-realistic
+ (i32.load
+ (local.get $y)
+ )
+ )
+ (call $offset-realistic
+ (i32.load
+ (local.get $y)
+ )
+ )
+ (i32.store
+ (local.get $z)
+ (i32.add
+ (i32.load
+ (local.get $z)
+ )
+ (i32.const 1)
+ )
+ )
+ (br_if $l
+ (i32.load
+ (local.get $z)
+ )
+ )
+ )
+ )
+)
+
diff --git a/test/passes/post-emscripten.txt b/test/passes/post-emscripten.txt
index f7b531296..089287fbf 100644
--- a/test/passes/post-emscripten.txt
+++ b/test/passes/post-emscripten.txt
@@ -1,121 +1,10 @@
(module
(type $0 (func (param i32)))
(type $FUNCSIG$ddd (func (param f64 f64) (result f64)))
- (type $2 (func (param i32) (result i32)))
- (type $3 (func))
+ (type $2 (func))
(import "global.Math" "pow" (func $Math_pow (param f64 f64) (result f64)))
(memory $0 256 256)
- (export "load-off-2" (func $load-off-2))
- (func $b0 (; 1 ;) (type $0) (param $x i32)
- (drop
- (i32.load offset=1
- (local.get $x)
- )
- )
- (drop
- (i32.load offset=8
- (local.get $x)
- )
- )
- (drop
- (i32.load offset=1023
- (local.get $x)
- )
- )
- (drop
- (i32.load
- (i32.add
- (local.get $x)
- (i32.const 1024)
- )
- )
- )
- (drop
- (i32.load
- (i32.add
- (local.get $x)
- (i32.const 2048)
- )
- )
- )
- (drop
- (i32.load offset=4
- (local.get $x)
- )
- )
- )
- (func $load-off-2 (; 2 ;) (type $2) (param $0 i32) (result i32)
- (i32.store
- (i32.const 6)
- (local.get $0)
- )
- (i32.store
- (i32.const 6)
- (local.get $0)
- )
- (i32.store offset=7
- (local.get $0)
- (local.get $0)
- )
- (i32.store offset=9
- (local.get $0)
- (local.get $0)
- )
- (i32.store offset=2
- (i32.add
- (i32.const -11)
- (local.get $0)
- )
- (local.get $0)
- )
- (i32.store offset=2
- (i32.add
- (local.get $0)
- (i32.const -13)
- )
- (local.get $0)
- )
- (i32.store
- (i32.const 4)
- (local.get $0)
- )
- (i32.store
- (i32.const 0)
- (local.get $0)
- )
- (i32.store
- (i32.const 25)
- (local.get $0)
- )
- (i32.store
- (i32.const -23)
- (local.get $0)
- )
- (drop
- (i32.load
- (i32.const 8)
- )
- )
- (drop
- (i32.load
- (i32.const 8)
- )
- )
- (drop
- (i32.load offset=8
- (local.get $0)
- )
- )
- (drop
- (i32.load
- (i32.const 10)
- )
- )
- (i32.load offset=12
- (local.get $0)
- )
- )
- (func $pow2 (; 3 ;) (type $3)
+ (func $pow2 (; 1 ;) (type $2)
(local $x f64)
(local $y f64)
(local $2 f64)
@@ -166,7 +55,7 @@
)
)
)
- (func $pow.2 (; 4 ;) (type $3)
+ (func $pow.2 (; 2 ;) (type $2)
(drop
(f64.sqrt
(f64.const 1)
diff --git a/test/passes/post-emscripten.wast b/test/passes/post-emscripten.wast
index b06d07e7a..f3656eebd 100644
--- a/test/passes/post-emscripten.wast
+++ b/test/passes/post-emscripten.wast
@@ -2,157 +2,6 @@
(memory 256 256)
(type $0 (func (param i32)))
(import "global.Math" "pow" (func $Math_pow (param f64 f64) (result f64)))
- (func $b0 (type $0) (param $x i32)
- (drop
- (i32.load
- (i32.add
- (local.get $x)
- (i32.const 1)
- )
- )
- )
- (drop
- (i32.load
- (i32.add
- (local.get $x)
- (i32.const 8)
- )
- )
- )
- (drop
- (i32.load
- (i32.add
- (local.get $x)
- (i32.const 1023)
- )
- )
- )
- (drop
- (i32.load
- (i32.add
- (local.get $x)
- (i32.const 1024)
- )
- )
- )
- (drop
- (i32.load
- (i32.add
- (local.get $x)
- (i32.const 2048)
- )
- )
- )
- (drop
- (i32.load
- (i32.add
- (i32.const 4)
- (local.get $x)
- )
- )
- )
- )
- (func $load-off-2 "load-off-2" (param $0 i32) (result i32)
- (i32.store offset=2
- (i32.add
- (i32.const 1)
- (i32.const 3)
- )
- (local.get $0)
- )
- (i32.store offset=2
- (i32.add
- (i32.const 3)
- (i32.const 1)
- )
- (local.get $0)
- )
- (i32.store offset=2
- (i32.add
- (local.get $0)
- (i32.const 5)
- )
- (local.get $0)
- )
- (i32.store offset=2
- (i32.add
- (i32.const 7)
- (local.get $0)
- )
- (local.get $0)
- )
- (i32.store offset=2
- (i32.add
- (i32.const -11) ;; do not fold this!
- (local.get $0)
- )
- (local.get $0)
- )
- (i32.store offset=2
- (i32.add
- (local.get $0)
- (i32.const -13) ;; do not fold this!
- )
- (local.get $0)
- )
- (i32.store offset=2
- (i32.add
- (i32.const -15)
- (i32.const 17)
- )
- (local.get $0)
- )
- (i32.store offset=2
- (i32.add
- (i32.const -21)
- (i32.const 19)
- )
- (local.get $0)
- )
- (i32.store offset=2
- (i32.const 23)
- (local.get $0)
- )
- (i32.store offset=2
- (i32.const -25)
- (local.get $0)
- )
- (drop
- (i32.load offset=2
- (i32.add
- (i32.const 2)
- (i32.const 4)
- )
- )
- )
- (drop
- (i32.load offset=2
- (i32.add
- (i32.const 4)
- (i32.const 2)
- )
- )
- )
- (drop
- (i32.load offset=2
- (i32.add
- (local.get $0)
- (i32.const 6)
- )
- )
- )
- (drop
- (i32.load offset=2
- (i32.const 8)
- )
- )
- (i32.load offset=2
- (i32.add
- (i32.const 10)
- (local.get $0)
- )
- )
- )
(func $pow2
(local $x f64)
(local $y f64)
diff --git a/test/passes/precompute-propagate.txt b/test/passes/precompute-propagate.txt
index 21b894355..6ebd7bd5b 100644
--- a/test/passes/precompute-propagate.txt
+++ b/test/passes/precompute-propagate.txt
@@ -3,6 +3,7 @@
(type $1 (func (param i32) (result i32)))
(type $2 (func (param i32 i32) (result i32)))
(type $3 (func (param i32 i32 i32) (result i32)))
+ (memory $0 10 10)
(func $basic (; 0 ;) (type $0) (param $p i32)
(local $x i32)
(local.set $x
diff --git a/test/passes/precompute-propagate.wast b/test/passes/precompute-propagate.wast
index 0d53088d3..4b7764b19 100644
--- a/test/passes/precompute-propagate.wast
+++ b/test/passes/precompute-propagate.wast
@@ -1,4 +1,5 @@
(module
+ (memory 10 10)
(func $basic (param $p i32)
(local $x i32)
(local.set $x (i32.const 10))
diff --git a/test/passes/safe-heap_low-memory-unused.txt b/test/passes/safe-heap_low-memory-unused.txt
new file mode 100644
index 000000000..26dcc10e3
--- /dev/null
+++ b/test/passes/safe-heap_low-memory-unused.txt
@@ -0,0 +1,9800 @@
+(module
+ (type $0 (func))
+ (type $FUNCSIG$v (func))
+ (import "env" "DYNAMICTOP_PTR" (global $DYNAMICTOP_PTR i32))
+ (import "env" "segfault" (func $segfault))
+ (import "env" "alignfault" (func $alignfault))
+ (memory $0 (shared 100 100))
+ (func $loads (; 2 ;) (type $0)
+ (drop
+ (call $SAFE_HEAP_LOAD_i32_4_U_4
+ (i32.const 1)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (call $SAFE_HEAP_LOAD_i32_4_U_A
+ (i32.const 1)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (call $SAFE_HEAP_LOAD_i32_4_U_4
+ (i32.const 2)
+ (i32.const 31)
+ )
+ )
+ (drop
+ (call $SAFE_HEAP_LOAD_i32_4_U_2
+ (i32.const 3)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (call $SAFE_HEAP_LOAD_i32_4_U_1
+ (i32.const 4)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (call $SAFE_HEAP_LOAD_i32_1_1
+ (i32.const 5)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (call $SAFE_HEAP_LOAD_i32_2_U_2
+ (i32.const 6)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (call $SAFE_HEAP_LOAD_i64_1_1
+ (i32.const 7)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (call $SAFE_HEAP_LOAD_i64_2_U_2
+ (i32.const 8)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (call $SAFE_HEAP_LOAD_i64_4_4
+ (i32.const 9)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (call $SAFE_HEAP_LOAD_i64_8_U_4
+ (i32.const 10)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (call $SAFE_HEAP_LOAD_i64_8_U_8
+ (i32.const 11)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (call $SAFE_HEAP_LOAD_f32_4_4
+ (i32.const 12)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (call $SAFE_HEAP_LOAD_f64_8_8
+ (i32.const 13)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (call $SAFE_HEAP_LOAD_v128_16_U_16
+ (i32.const 14)
+ (i32.const 0)
+ )
+ )
+ )
+ (func $stores (; 3 ;) (type $0)
+ (call $SAFE_HEAP_STORE_i32_4_4
+ (i32.const 1)
+ (i32.const 0)
+ (i32.const 100)
+ )
+ (call $SAFE_HEAP_STORE_i32_4_A
+ (i32.const 1)
+ (i32.const 0)
+ (i32.const 100)
+ )
+ (call $SAFE_HEAP_STORE_i32_4_4
+ (i32.const 2)
+ (i32.const 31)
+ (i32.const 200)
+ )
+ (call $SAFE_HEAP_STORE_i32_4_2
+ (i32.const 3)
+ (i32.const 0)
+ (i32.const 300)
+ )
+ (call $SAFE_HEAP_STORE_i32_4_1
+ (i32.const 4)
+ (i32.const 0)
+ (i32.const 400)
+ )
+ (call $SAFE_HEAP_STORE_i32_1_1
+ (i32.const 5)
+ (i32.const 0)
+ (i32.const 500)
+ )
+ (call $SAFE_HEAP_STORE_i32_2_2
+ (i32.const 6)
+ (i32.const 0)
+ (i32.const 600)
+ )
+ (call $SAFE_HEAP_STORE_i64_1_1
+ (i32.const 7)
+ (i32.const 0)
+ (i64.const 700)
+ )
+ (call $SAFE_HEAP_STORE_i64_2_2
+ (i32.const 8)
+ (i32.const 0)
+ (i64.const 800)
+ )
+ (call $SAFE_HEAP_STORE_i64_4_4
+ (i32.const 9)
+ (i32.const 0)
+ (i64.const 900)
+ )
+ (call $SAFE_HEAP_STORE_i64_8_4
+ (i32.const 10)
+ (i32.const 0)
+ (i64.const 1000)
+ )
+ (call $SAFE_HEAP_STORE_i64_8_8
+ (i32.const 11)
+ (i32.const 0)
+ (i64.const 1100)
+ )
+ (call $SAFE_HEAP_STORE_f32_4_4
+ (i32.const 12)
+ (i32.const 0)
+ (f32.const 1200)
+ )
+ (call $SAFE_HEAP_STORE_f64_8_8
+ (i32.const 13)
+ (i32.const 0)
+ (f64.const 1300)
+ )
+ (call $SAFE_HEAP_STORE_v128_16_16
+ (i32.const 14)
+ (i32.const 0)
+ (v128.const i32 0x1 0x0 0x0 0x0 0x2 0x0 0x0 0x0 0x3 0x0 0x0 0x0 0x4 0x0 0x0 0x0)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_1_A (; 4 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.shr_s
+ (i32.shl
+ (i32.atomic.load8_u
+ (local.get $2)
+ )
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_1_1 (; 5 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load8_s
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_1_U_A (; 6 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.atomic.load8_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_1_U_1 (; 7 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load8_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_1 (; 8 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load16_s align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_A (; 9 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.shr_s
+ (i32.shl
+ (i32.atomic.load16_u
+ (local.get $2)
+ )
+ (i32.const 16)
+ )
+ (i32.const 16)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_2 (; 10 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.load16_s
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_U_1 (; 11 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load16_u align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_U_A (; 12 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.atomic.load16_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_U_2 (; 13 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.load16_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_1 (; 14 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_2 (; 15 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_A (; 16 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i32.atomic.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_4 (; 17 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i32.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_U_1 (; 18 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_U_2 (; 19 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_U_A (; 20 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i32.atomic.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_U_4 (; 21 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i32.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_1_A (; 22 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.shr_s
+ (i64.shl
+ (i64.atomic.load8_u
+ (local.get $2)
+ )
+ (i64.const 56)
+ )
+ (i64.const 56)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_1_1 (; 23 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load8_s
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_1_U_A (; 24 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.atomic.load8_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_1_U_1 (; 25 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load8_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_1 (; 26 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load16_s align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_A (; 27 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.shr_s
+ (i64.shl
+ (i64.atomic.load16_u
+ (local.get $2)
+ )
+ (i64.const 48)
+ )
+ (i64.const 48)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_2 (; 28 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load16_s
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_U_1 (; 29 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load16_u align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_U_A (; 30 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.atomic.load16_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_U_2 (; 31 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load16_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_1 (; 32 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load32_s align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_2 (; 33 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load32_s align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_A (; 34 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.shr_s
+ (i64.shl
+ (i64.atomic.load32_u
+ (local.get $2)
+ )
+ (i64.const 32)
+ )
+ (i64.const 32)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_4 (; 35 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.load32_s
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_U_1 (; 36 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load32_u align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_U_2 (; 37 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load32_u align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_U_A (; 38 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.atomic.load32_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_U_4 (; 39 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.load32_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_1 (; 40 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_2 (; 41 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_4 (; 42 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.load align=4
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_A (; 43 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (i64.atomic.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_8 (; 44 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (i64.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_U_1 (; 45 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_U_2 (; 46 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_U_4 (; 47 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.load align=4
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_U_A (; 48 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (i64.atomic.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_U_8 (; 49 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (i64.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f32_4_1 (; 50 ;) (param $0 i32) (param $1 i32) (result f32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (f32.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f32_4_2 (; 51 ;) (param $0 i32) (param $1 i32) (result f32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (f32.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f32_4_4 (; 52 ;) (param $0 i32) (param $1 i32) (result f32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (f32.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f64_8_1 (; 53 ;) (param $0 i32) (param $1 i32) (result f64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (f64.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f64_8_2 (; 54 ;) (param $0 i32) (param $1 i32) (result f64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (f64.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f64_8_4 (; 55 ;) (param $0 i32) (param $1 i32) (result f64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (f64.load align=4
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f64_8_8 (; 56 ;) (param $0 i32) (param $1 i32) (result f64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (f64.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_1 (; 57 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (v128.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_2 (; 58 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_4 (; 59 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=4
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_8 (; 60 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=8
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_16 (; 61 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 15)
+ )
+ (call $alignfault)
+ )
+ (v128.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_U_1 (; 62 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (v128.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_U_2 (; 63 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_U_4 (; 64 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=4
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_U_8 (; 65 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=8
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_U_16 (; 66 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 15)
+ )
+ (call $alignfault)
+ )
+ (v128.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_1_A (; 67 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.atomic.store8
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_1_1 (; 68 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.store8
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_2_1 (; 69 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.store16 align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_2_A (; 70 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.atomic.store16
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_2_2 (; 71 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.store16
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_4_1 (; 72 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.store align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_4_2 (; 73 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.store align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_4_A (; 74 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i32.atomic.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_4_4 (; 75 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i32.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_1_A (; 76 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.atomic.store8
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_1_1 (; 77 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.store8
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_2_1 (; 78 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.store16 align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_2_A (; 79 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.atomic.store16
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_2_2 (; 80 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.store16
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_4_1 (; 81 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.store32 align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_4_2 (; 82 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.store32 align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_4_A (; 83 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.atomic.store32
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_4_4 (; 84 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.store32
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_8_1 (; 85 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.store align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_8_2 (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.store align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_8_4 (; 87 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.store align=4
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_8_A (; 88 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (i64.atomic.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_8_8 (; 89 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (i64.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f32_4_1 (; 90 ;) (param $0 i32) (param $1 i32) (param $2 f32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (f32.store align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f32_4_2 (; 91 ;) (param $0 i32) (param $1 i32) (param $2 f32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (f32.store align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f32_4_4 (; 92 ;) (param $0 i32) (param $1 i32) (param $2 f32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (f32.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f64_8_1 (; 93 ;) (param $0 i32) (param $1 i32) (param $2 f64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (f64.store align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f64_8_2 (; 94 ;) (param $0 i32) (param $1 i32) (param $2 f64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (f64.store align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f64_8_4 (; 95 ;) (param $0 i32) (param $1 i32) (param $2 f64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (f64.store align=4
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f64_8_8 (; 96 ;) (param $0 i32) (param $1 i32) (param $2 f64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (f64.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_v128_16_1 (; 97 ;) (param $0 i32) (param $1 i32) (param $2 v128)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (v128.store align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_v128_16_2 (; 98 ;) (param $0 i32) (param $1 i32) (param $2 v128)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (v128.store align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_v128_16_4 (; 99 ;) (param $0 i32) (param $1 i32) (param $2 v128)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (v128.store align=4
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_v128_16_8 (; 100 ;) (param $0 i32) (param $1 i32) (param $2 v128)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (v128.store align=8
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_v128_16_16 (; 101 ;) (param $0 i32) (param $1 i32) (param $2 v128)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 15)
+ )
+ (call $alignfault)
+ )
+ (v128.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+)
+(module
+ (type $0 (func))
+ (type $FUNCSIG$v (func))
+ (import "env" "DYNAMICTOP_PTR" (global $DYNAMICTOP_PTR i32))
+ (import "env" "segfault" (func $segfault))
+ (import "env" "alignfault" (func $alignfault))
+ (memory $0 100 100)
+ (func $loads (; 2 ;) (type $0)
+ (drop
+ (call $SAFE_HEAP_LOAD_i32_4_U_4
+ (i32.const 1)
+ (i32.const 0)
+ )
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_1_1 (; 3 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load8_s
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_1_U_1 (; 4 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load8_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_1 (; 5 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load16_s align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_2 (; 6 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.load16_s
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_U_1 (; 7 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load16_u align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_U_2 (; 8 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.load16_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_1 (; 9 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_2 (; 10 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_4 (; 11 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i32.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_U_1 (; 12 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_U_2 (; 13 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_U_4 (; 14 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i32.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_1_1 (; 15 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load8_s
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_1_U_1 (; 16 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load8_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_1 (; 17 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load16_s align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_2 (; 18 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load16_s
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_U_1 (; 19 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load16_u align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_U_2 (; 20 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load16_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_1 (; 21 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load32_s align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_2 (; 22 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load32_s align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_4 (; 23 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.load32_s
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_U_1 (; 24 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load32_u align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_U_2 (; 25 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load32_u align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_U_4 (; 26 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.load32_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_1 (; 27 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_2 (; 28 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_4 (; 29 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.load align=4
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_8 (; 30 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (i64.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_U_1 (; 31 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_U_2 (; 32 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_U_4 (; 33 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.load align=4
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_U_8 (; 34 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (i64.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f32_4_1 (; 35 ;) (param $0 i32) (param $1 i32) (result f32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (f32.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f32_4_2 (; 36 ;) (param $0 i32) (param $1 i32) (result f32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (f32.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f32_4_4 (; 37 ;) (param $0 i32) (param $1 i32) (result f32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (f32.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f64_8_1 (; 38 ;) (param $0 i32) (param $1 i32) (result f64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (f64.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f64_8_2 (; 39 ;) (param $0 i32) (param $1 i32) (result f64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (f64.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f64_8_4 (; 40 ;) (param $0 i32) (param $1 i32) (result f64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (f64.load align=4
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f64_8_8 (; 41 ;) (param $0 i32) (param $1 i32) (result f64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (f64.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_1 (; 42 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (v128.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_2 (; 43 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_4 (; 44 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=4
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_8 (; 45 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=8
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_16 (; 46 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 15)
+ )
+ (call $alignfault)
+ )
+ (v128.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_U_1 (; 47 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (v128.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_U_2 (; 48 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_U_4 (; 49 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=4
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_U_8 (; 50 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=8
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_U_16 (; 51 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 15)
+ )
+ (call $alignfault)
+ )
+ (v128.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_1_1 (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.store8
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_2_1 (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.store16 align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_2_2 (; 54 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.store16
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_4_1 (; 55 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.store align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_4_2 (; 56 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.store align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_4_4 (; 57 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i32.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_1_1 (; 58 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.store8
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_2_1 (; 59 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.store16 align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_2_2 (; 60 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.store16
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_4_1 (; 61 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.store32 align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_4_2 (; 62 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.store32 align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_4_4 (; 63 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.store32
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_8_1 (; 64 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.store align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_8_2 (; 65 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.store align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_8_4 (; 66 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.store align=4
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_8_8 (; 67 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (i64.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f32_4_1 (; 68 ;) (param $0 i32) (param $1 i32) (param $2 f32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (f32.store align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f32_4_2 (; 69 ;) (param $0 i32) (param $1 i32) (param $2 f32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (f32.store align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f32_4_4 (; 70 ;) (param $0 i32) (param $1 i32) (param $2 f32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (f32.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f64_8_1 (; 71 ;) (param $0 i32) (param $1 i32) (param $2 f64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (f64.store align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f64_8_2 (; 72 ;) (param $0 i32) (param $1 i32) (param $2 f64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (f64.store align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f64_8_4 (; 73 ;) (param $0 i32) (param $1 i32) (param $2 f64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (f64.store align=4
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f64_8_8 (; 74 ;) (param $0 i32) (param $1 i32) (param $2 f64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (f64.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_v128_16_1 (; 75 ;) (param $0 i32) (param $1 i32) (param $2 v128)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (v128.store align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_v128_16_2 (; 76 ;) (param $0 i32) (param $1 i32) (param $2 v128)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (v128.store align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_v128_16_4 (; 77 ;) (param $0 i32) (param $1 i32) (param $2 v128)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (v128.store align=4
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_v128_16_8 (; 78 ;) (param $0 i32) (param $1 i32) (param $2 v128)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (v128.store align=8
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_v128_16_16 (; 79 ;) (param $0 i32) (param $1 i32) (param $2 v128)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 15)
+ )
+ (call $alignfault)
+ )
+ (v128.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+)
+(module
+ (type $FUNCSIG$v (func))
+ (import "env" "DYNAMICTOP_PTR" (global $DYNAMICTOP_PTR i32))
+ (import "env" "segfault" (func $segfault))
+ (import "env" "alignfault" (func $alignfault))
+ (memory $0 (shared 100 100))
+ (func $actions (; 2 ;) (type $FUNCSIG$v)
+ (drop
+ (call $SAFE_HEAP_LOAD_i32_4_U_4
+ (i32.const 1)
+ (i32.const 0)
+ )
+ )
+ (call $SAFE_HEAP_STORE_i32_4_4
+ (i32.const 1)
+ (i32.const 0)
+ (i32.const 100)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_1_A (; 3 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.shr_s
+ (i32.shl
+ (i32.atomic.load8_u
+ (local.get $2)
+ )
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_1_1 (; 4 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load8_s
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_1_U_A (; 5 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.atomic.load8_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_1_U_1 (; 6 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load8_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_1 (; 7 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load16_s align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_A (; 8 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.shr_s
+ (i32.shl
+ (i32.atomic.load16_u
+ (local.get $2)
+ )
+ (i32.const 16)
+ )
+ (i32.const 16)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_2 (; 9 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.load16_s
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_U_1 (; 10 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load16_u align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_U_A (; 11 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.atomic.load16_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_2_U_2 (; 12 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.load16_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_1 (; 13 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_2 (; 14 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_A (; 15 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i32.atomic.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_4 (; 16 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i32.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_U_1 (; 17 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_U_2 (; 18 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_U_A (; 19 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i32.atomic.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i32_4_U_4 (; 20 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i32.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_1_A (; 21 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.shr_s
+ (i64.shl
+ (i64.atomic.load8_u
+ (local.get $2)
+ )
+ (i64.const 56)
+ )
+ (i64.const 56)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_1_1 (; 22 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load8_s
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_1_U_A (; 23 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.atomic.load8_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_1_U_1 (; 24 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load8_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_1 (; 25 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load16_s align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_A (; 26 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.shr_s
+ (i64.shl
+ (i64.atomic.load16_u
+ (local.get $2)
+ )
+ (i64.const 48)
+ )
+ (i64.const 48)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_2 (; 27 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load16_s
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_U_1 (; 28 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load16_u align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_U_A (; 29 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.atomic.load16_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_2_U_2 (; 30 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load16_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_1 (; 31 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load32_s align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_2 (; 32 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load32_s align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_A (; 33 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.shr_s
+ (i64.shl
+ (i64.atomic.load32_u
+ (local.get $2)
+ )
+ (i64.const 32)
+ )
+ (i64.const 32)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_4 (; 34 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.load32_s
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_U_1 (; 35 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load32_u align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_U_2 (; 36 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load32_u align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_U_A (; 37 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.atomic.load32_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_4_U_4 (; 38 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.load32_u
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_1 (; 39 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_2 (; 40 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_4 (; 41 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.load align=4
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_A (; 42 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (i64.atomic.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_8 (; 43 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (i64.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_U_1 (; 44 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_U_2 (; 45 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_U_4 (; 46 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.load align=4
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_U_A (; 47 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (i64.atomic.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_i64_8_U_8 (; 48 ;) (param $0 i32) (param $1 i32) (result i64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (i64.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f32_4_1 (; 49 ;) (param $0 i32) (param $1 i32) (result f32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (f32.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f32_4_2 (; 50 ;) (param $0 i32) (param $1 i32) (result f32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (f32.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f32_4_4 (; 51 ;) (param $0 i32) (param $1 i32) (result f32)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (f32.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f64_8_1 (; 52 ;) (param $0 i32) (param $1 i32) (result f64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (f64.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f64_8_2 (; 53 ;) (param $0 i32) (param $1 i32) (result f64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (f64.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f64_8_4 (; 54 ;) (param $0 i32) (param $1 i32) (result f64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (f64.load align=4
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_f64_8_8 (; 55 ;) (param $0 i32) (param $1 i32) (result f64)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (f64.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_1 (; 56 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (v128.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_2 (; 57 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_4 (; 58 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=4
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_8 (; 59 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=8
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_16 (; 60 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 15)
+ )
+ (call $alignfault)
+ )
+ (v128.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_U_1 (; 61 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (v128.load align=1
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_U_2 (; 62 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=2
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_U_4 (; 63 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=4
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_U_8 (; 64 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (v128.load align=8
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_LOAD_v128_16_U_16 (; 65 ;) (param $0 i32) (param $1 i32) (result v128)
+ (local $2 i32)
+ (local.set $2
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $2)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $2)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $2)
+ (i32.const 15)
+ )
+ (call $alignfault)
+ )
+ (v128.load
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_1_A (; 66 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.atomic.store8
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_1_1 (; 67 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.store8
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_2_1 (; 68 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.store16 align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_2_A (; 69 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.atomic.store16
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_2_2 (; 70 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.store16
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_4_1 (; 71 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i32.store align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_4_2 (; 72 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i32.store align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_4_A (; 73 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i32.atomic.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i32_4_4 (; 74 ;) (param $0 i32) (param $1 i32) (param $2 i32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i32.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_1_A (; 75 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.atomic.store8
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_1_1 (; 76 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 1)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.store8
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_2_1 (; 77 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.store16 align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_2_A (; 78 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.atomic.store16
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_2_2 (; 79 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 2)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.store16
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_4_1 (; 80 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.store32 align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_4_2 (; 81 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.store32 align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_4_A (; 82 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.atomic.store32
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_4_4 (; 83 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.store32
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_8_1 (; 84 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (i64.store align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_8_2 (; 85 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (i64.store align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_8_4 (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (i64.store align=4
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_8_A (; 87 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (i64.atomic.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_i64_8_8 (; 88 ;) (param $0 i32) (param $1 i32) (param $2 i64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (i64.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f32_4_1 (; 89 ;) (param $0 i32) (param $1 i32) (param $2 f32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (f32.store align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f32_4_2 (; 90 ;) (param $0 i32) (param $1 i32) (param $2 f32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (f32.store align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f32_4_4 (; 91 ;) (param $0 i32) (param $1 i32) (param $2 f32)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 4)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (f32.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f64_8_1 (; 92 ;) (param $0 i32) (param $1 i32) (param $2 f64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (f64.store align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f64_8_2 (; 93 ;) (param $0 i32) (param $1 i32) (param $2 f64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (f64.store align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f64_8_4 (; 94 ;) (param $0 i32) (param $1 i32) (param $2 f64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (f64.store align=4
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_f64_8_8 (; 95 ;) (param $0 i32) (param $1 i32) (param $2 f64)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 8)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (f64.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_v128_16_1 (; 96 ;) (param $0 i32) (param $1 i32) (param $2 v128)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (v128.store align=1
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_v128_16_2 (; 97 ;) (param $0 i32) (param $1 i32) (param $2 v128)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 1)
+ )
+ (call $alignfault)
+ )
+ (v128.store align=2
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_v128_16_4 (; 98 ;) (param $0 i32) (param $1 i32) (param $2 v128)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 3)
+ )
+ (call $alignfault)
+ )
+ (v128.store align=4
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_v128_16_8 (; 99 ;) (param $0 i32) (param $1 i32) (param $2 v128)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 7)
+ )
+ (call $alignfault)
+ )
+ (v128.store align=8
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+ (func $SAFE_HEAP_STORE_v128_16_16 (; 100 ;) (param $0 i32) (param $1 i32) (param $2 v128)
+ (local $3 i32)
+ (local.set $3
+ (i32.add
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (if
+ (i32.or
+ (i32.lt_u
+ (local.get $3)
+ (i32.const 1024)
+ )
+ (i32.gt_u
+ (i32.add
+ (local.get $3)
+ (i32.const 16)
+ )
+ (i32.load
+ (global.get $DYNAMICTOP_PTR)
+ )
+ )
+ )
+ (call $segfault)
+ )
+ (if
+ (i32.and
+ (local.get $3)
+ (i32.const 15)
+ )
+ (call $alignfault)
+ )
+ (v128.store
+ (local.get $3)
+ (local.get $2)
+ )
+ )
+)
diff --git a/test/passes/safe-heap_low-memory-unused.wast b/test/passes/safe-heap_low-memory-unused.wast
new file mode 100644
index 000000000..a2754b469
--- /dev/null
+++ b/test/passes/safe-heap_low-memory-unused.wast
@@ -0,0 +1,56 @@
+(module
+ (memory (shared 100 100))
+ (func $loads
+ (drop (i32.load (i32.const 1)))
+ (drop (i32.atomic.load (i32.const 1)))
+ (drop (i32.load offset=31 (i32.const 2)))
+ (drop (i32.load align=2 (i32.const 3)))
+ (drop (i32.load align=1 (i32.const 4)))
+ (drop (i32.load8_s (i32.const 5)))
+ (drop (i32.load16_u (i32.const 6)))
+ (drop (i64.load8_s (i32.const 7)))
+ (drop (i64.load16_u (i32.const 8)))
+ (drop (i64.load32_s (i32.const 9)))
+ (drop (i64.load align=4 (i32.const 10)))
+ (drop (i64.load (i32.const 11)))
+ (drop (f32.load (i32.const 12)))
+ (drop (f64.load (i32.const 13)))
+ (drop (v128.load (i32.const 14)))
+ )
+ (func $stores
+ (i32.store (i32.const 1) (i32.const 100))
+ (i32.atomic.store (i32.const 1) (i32.const 100))
+ (i32.store offset=31 (i32.const 2) (i32.const 200))
+ (i32.store align=2 (i32.const 3) (i32.const 300))
+ (i32.store align=1 (i32.const 4) (i32.const 400))
+ (i32.store8 (i32.const 5) (i32.const 500))
+ (i32.store16 (i32.const 6) (i32.const 600))
+ (i64.store8 (i32.const 7) (i64.const 700))
+ (i64.store16 (i32.const 8) (i64.const 800))
+ (i64.store32 (i32.const 9) (i64.const 900))
+ (i64.store align=4 (i32.const 10) (i64.const 1000))
+ (i64.store (i32.const 11) (i64.const 1100))
+ (f32.store (i32.const 12) (f32.const 1200))
+ (f64.store (i32.const 13) (f64.const 1300))
+ (v128.store (i32.const 14) (v128.const i32 1 2 3 4))
+ )
+)
+;; not shared
+(module
+ (memory 100 100)
+ (func $loads
+ (drop (i32.load (i32.const 1)))
+ )
+)
+;; pre-existing
+(module
+ (type $FUNCSIG$v (func))
+ (import "env" "DYNAMICTOP_PTR" (global $DYNAMICTOP_PTR i32))
+ (import "env" "segfault" (func $segfault))
+ (import "env" "alignfault" (func $alignfault))
+ (memory $0 (shared 100 100))
+ (func $actions
+ (drop (i32.load (i32.const 1)))
+ (i32.store (i32.const 1) (i32.const 100))
+ )
+)