diff options
author | Alon Zakai <azakai@google.com> | 2019-04-30 20:30:03 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-30 20:30:03 -0700 |
commit | 8d4bcd6e02bb0df3ac87e4850896ba733525b055 (patch) | |
tree | 1f98b878c22fd23c918992b53fd8e9f4f78d3788 /test/wasm2js/endianness.2asm.js | |
parent | fba743ca5bdfe4fb437a36503b8983c5f42e4575 (diff) | |
download | binaryen-8d4bcd6e02bb0df3ac87e4850896ba733525b055.tar.gz binaryen-8d4bcd6e02bb0df3ac87e4850896ba733525b055.tar.bz2 binaryen-8d4bcd6e02bb0df3ac87e4850896ba733525b055.zip |
wasm2js: run full optimizations during the pipeline (#2071)
We flatten for the i64 lowering etc. passes, and it is worth optimizing afterwards, to clean up stuff they created. That is run if the user ran wasm2js with an optimization level (like wasm2js -O3).
Split the test files to check both optimized and unoptimized code.
Diffstat (limited to 'test/wasm2js/endianness.2asm.js')
-rw-r--r-- | test/wasm2js/endianness.2asm.js | 344 |
1 files changed, 185 insertions, 159 deletions
diff --git a/test/wasm2js/endianness.2asm.js b/test/wasm2js/endianness.2asm.js index 2ce7c3f63..81cf13022 100644 --- a/test/wasm2js/endianness.2asm.js +++ b/test/wasm2js/endianness.2asm.js @@ -55,65 +55,75 @@ function asmFunc(global, env, buffer) { var setTempRet0 = env.setTempRet0; var i64toi32_i32$HIGH_BITS = 0; function i16_store_little(address, value) { - HEAP8[address | 0] = value; - HEAP8[address + 1 | 0] = value >>> 8; + address = address | 0; + value = value | 0; + HEAP8[address >> 0] = value; + HEAP8[(address + 1 | 0) >> 0] = value >>> 8 | 0; } function i32_store_little(address, value) { - i16_store_little(address, value); - i16_store_little(address + 2 | 0, value >>> 16); + address = address | 0; + value = value | 0; + i16_store_little(address | 0, value | 0); + i16_store_little(address + 2 | 0 | 0, value >>> 16 | 0 | 0); } function i64_store_little(address, value, value$hi) { + address = address | 0; + value = value | 0; + value$hi = value$hi | 0; var i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $9_1 = 0, $6_1 = 0, i64toi32_i32$2 = 0; i64toi32_i32$0 = value$hi; - i32_store_little(address, value); + i32_store_little(address | 0, value | 0); $6_1 = address + 4 | 0; i64toi32_i32$2 = value; i64toi32_i32$1 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$1 = 0; - $9_1 = i64toi32_i32$0 >>> i64toi32_i32$4; + $9_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { - i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4; - $9_1 = ((1 << i64toi32_i32$4) - 1 & i64toi32_i32$0) << 32 - i64toi32_i32$4 | i64toi32_i32$2 >>> i64toi32_i32$4; + i64toi32_i32$1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $9_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0; } } - i32_store_little($6_1, $9_1); + i32_store_little($6_1 | 0, $9_1 | 0); } function i16_load_little(address) { - return HEAPU8[address | 0] | HEAPU8[address + 1 | 0] << 8; + address = address | 0; + return HEAPU8[address >> 0] | 0 | ((HEAPU8[(address + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | 0; } function i32_load_little(address) { - return i16_load_little(address) | i16_load_little(address + 2 | 0) << 16; + address = address | 0; + return i16_load_little(address | 0) | 0 | ((i16_load_little(address + 2 | 0 | 0) | 0) << 16 | 0) | 0 | 0; } function i64_load_little(address) { + address = address | 0; var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $9_1 = 0, $3 = 0, $3$hi = 0, $8$hi = 0; i64toi32_i32$0 = 0; - $3 = i32_load_little(address); + $3 = i32_load_little(address | 0) | 0; $3$hi = i64toi32_i32$0; i64toi32_i32$0 = 0; - i64toi32_i32$2 = i32_load_little(address + 4 | 0); + i64toi32_i32$2 = i32_load_little(address + 4 | 0 | 0) | 0; i64toi32_i32$1 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { - i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; $9_1 = 0; } } else { { - i64toi32_i32$1 = (1 << i64toi32_i32$4) - 1 & i64toi32_i32$2 >>> 32 - i64toi32_i32$4 | i64toi32_i32$0 << i64toi32_i32$4; - $9_1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $9_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } $8$hi = i64toi32_i32$1; @@ -121,28 +131,28 @@ function asmFunc(global, env, buffer) { i64toi32_i32$0 = $3; i64toi32_i32$2 = $8$hi; i64toi32_i32$3 = $9_1; - i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2; - i64toi32_i32$0 = i64toi32_i32$0 | i64toi32_i32$3; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$0 = i64toi32_i32$0 | i64toi32_i32$3 | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$2; - return i64toi32_i32$0; + return i64toi32_i32$0 | 0; } function $6(value) { value = value | 0; - i16_store_little(0, value); - return HEAP16[0 >> 1] | 0; + i16_store_little(0 | 0, value | 0); + return HEAP16[0 >> 1] | 0 | 0; } function $7(value) { value = value | 0; - i16_store_little(0, value); - return HEAPU16[0 >> 1] | 0; + i16_store_little(0 | 0, value | 0); + return HEAPU16[0 >> 1] | 0 | 0; } function $8(value) { value = value | 0; - i32_store_little(0, value); - return HEAP32[0 >> 2] | 0; + i32_store_little(0 | 0, value | 0); + return HEAP32[0 >> 2] | 0 | 0; } function $9(value, value$hi) { @@ -150,9 +160,9 @@ function asmFunc(global, env, buffer) { value$hi = value$hi | 0; var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; i64toi32_i32$0 = value$hi; - i16_store_little(0, value); - i64toi32_i32$0 = HEAP16[0 >> 1]; - i64toi32_i32$1 = i64toi32_i32$0 >> 31; + i16_store_little(0 | 0, value | 0); + i64toi32_i32$0 = HEAP16[0 >> 1] | 0; + i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$0 | 0; } @@ -162,8 +172,8 @@ function asmFunc(global, env, buffer) { value$hi = value$hi | 0; var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; i64toi32_i32$0 = value$hi; - i16_store_little(0, value); - i64toi32_i32$0 = HEAPU16[0 >> 1]; + i16_store_little(0 | 0, value | 0); + i64toi32_i32$0 = HEAPU16[0 >> 1] | 0; i64toi32_i32$1 = 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$0 | 0; @@ -174,9 +184,9 @@ function asmFunc(global, env, buffer) { value$hi = value$hi | 0; var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; i64toi32_i32$0 = value$hi; - i32_store_little(0, value); - i64toi32_i32$0 = HEAP32[0 >> 2]; - i64toi32_i32$1 = i64toi32_i32$0 >> 31; + i32_store_little(0 | 0, value | 0); + i64toi32_i32$0 = HEAP32[0 >> 2] | 0; + i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$0 | 0; } @@ -186,8 +196,8 @@ function asmFunc(global, env, buffer) { value$hi = value$hi | 0; var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; i64toi32_i32$0 = value$hi; - i32_store_little(0, value); - i64toi32_i32$0 = HEAP32[0 >> 2]; + i32_store_little(0 | 0, value | 0); + i64toi32_i32$0 = HEAP32[0 >> 2] | 0; i64toi32_i32$1 = 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$0 | 0; @@ -198,18 +208,18 @@ function asmFunc(global, env, buffer) { value$hi = value$hi | 0; var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0; i64toi32_i32$0 = value$hi; - i64_store_little(0, value, i64toi32_i32$0); + i64_store_little(0 | 0, value | 0, i64toi32_i32$0 | 0); i64toi32_i32$2 = 0; - i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2]; - i64toi32_i32$1 = HEAP32[i64toi32_i32$2 + 4 >> 2]; + i64toi32_i32$0 = HEAP32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = HEAP32[(i64toi32_i32$2 + 4 | 0) >> 2] | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$0 | 0; } function $14(value) { value = Math_fround(value); - i32_store_little(0, (wasm2js_scratch_store_f32(value), wasm2js_scratch_load_i32(0))); - return Math_fround(HEAPF32[0 >> 2]); + i32_store_little(0 | 0, (wasm2js_scratch_store_f32(value), wasm2js_scratch_load_i32(0)) | 0); + return Math_fround(Math_fround(HEAPF32[0 >> 2])); } function $15(value) { @@ -217,20 +227,20 @@ function asmFunc(global, env, buffer) { var i64toi32_i32$0 = 0; wasm2js_scratch_store_f64(+value); i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0; - i64_store_little(0, wasm2js_scratch_load_i32(0 | 0) | 0, i64toi32_i32$0); - return +HEAPF64[0 >> 3]; + i64_store_little(0 | 0, wasm2js_scratch_load_i32(0 | 0) | 0 | 0, i64toi32_i32$0 | 0); + return +(+HEAPF64[0 >> 3]); } function $16(value) { value = value | 0; HEAP16[0 >> 1] = value; - return i16_load_little(0) | 0; + return i16_load_little(0 | 0) | 0 | 0; } function $17(value) { value = value | 0; HEAP32[0 >> 2] = value; - return i32_load_little(0) | 0; + return i32_load_little(0 | 0) | 0 | 0; } function $18(value, value$hi) { @@ -240,7 +250,7 @@ function asmFunc(global, env, buffer) { i64toi32_i32$0 = value$hi; HEAP16[0 >> 1] = value; i64toi32_i32$0 = 0; - i64toi32_i32$1 = i16_load_little(0); + i64toi32_i32$1 = i16_load_little(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } @@ -252,7 +262,7 @@ function asmFunc(global, env, buffer) { i64toi32_i32$0 = value$hi; HEAP32[0 >> 2] = value; i64toi32_i32$0 = 0; - i64toi32_i32$1 = i32_load_little(0); + i64toi32_i32$1 = i32_load_little(0 | 0) | 0; i64toi32_i32$HIGH_BITS = i64toi32_i32$0; return i64toi32_i32$1 | 0; } @@ -264,8 +274,8 @@ function asmFunc(global, env, buffer) { i64toi32_i32$0 = value$hi; i64toi32_i32$1 = 0; HEAP32[i64toi32_i32$1 >> 2] = value; - HEAP32[i64toi32_i32$1 + 4 >> 2] = i64toi32_i32$0; - i64toi32_i32$0 = i64_load_little(0); + HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; + i64toi32_i32$0 = i64_load_little(0 | 0) | 0; i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; i64toi32_i32$HIGH_BITS = i64toi32_i32$1; return i64toi32_i32$0 | 0; @@ -274,21 +284,23 @@ function asmFunc(global, env, buffer) { function $21(value) { value = Math_fround(value); HEAPF32[0 >> 2] = value; - return Math_fround((wasm2js_scratch_store_i32(0, i32_load_little(0)), wasm2js_scratch_load_f32())); + return Math_fround((wasm2js_scratch_store_i32(0, i32_load_little(0 | 0) | 0), wasm2js_scratch_load_f32())); } function $22(value) { value = +value; var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; HEAPF64[0 >> 3] = value; - i64toi32_i32$0 = i64_load_little(0); + i64toi32_i32$0 = i64_load_little(0 | 0) | 0; i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; wasm2js_scratch_store_i32(0 | 0, i64toi32_i32$0 | 0); wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$1 | 0); - return +wasm2js_scratch_load_f64(); + return +(+wasm2js_scratch_load_f64()); } function legalstub$9($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12_1 = 0, $13_1 = 0, $4 = 0, $4$hi = 0, $7$hi = 0, $2 = 0, $2$hi = 0; i64toi32_i32$0 = 0; $4 = $0; @@ -297,16 +309,16 @@ function asmFunc(global, env, buffer) { i64toi32_i32$2 = $1; i64toi32_i32$1 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { - i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; $12_1 = 0; } } else { { - i64toi32_i32$1 = (1 << i64toi32_i32$4) - 1 & i64toi32_i32$2 >>> 32 - i64toi32_i32$4 | i64toi32_i32$0 << i64toi32_i32$4; - $12_1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $12_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } $7$hi = i64toi32_i32$1; @@ -314,32 +326,34 @@ function asmFunc(global, env, buffer) { i64toi32_i32$0 = $4; i64toi32_i32$2 = $7$hi; i64toi32_i32$3 = $12_1; - i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2; - i64toi32_i32$2 = $9(i64toi32_i32$0 | i64toi32_i32$3, i64toi32_i32$2); + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$2 = $9(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0; i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; $2 = i64toi32_i32$2; $2$hi = i64toi32_i32$0; i64toi32_i32$1 = i64toi32_i32$2; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4; + $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { - i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4; - $13_1 = ((1 << i64toi32_i32$4) - 1 & i64toi32_i32$0) << 32 - i64toi32_i32$4 | i64toi32_i32$1 >>> i64toi32_i32$4; + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $13_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; } } setTempRet0($13_1 | 0); i64toi32_i32$2 = $2$hi; - return $2; + return $2 | 0; } function legalstub$10($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12_1 = 0, $13_1 = 0, $4 = 0, $4$hi = 0, $7$hi = 0, $2 = 0, $2$hi = 0; i64toi32_i32$0 = 0; $4 = $0; @@ -348,16 +362,16 @@ function asmFunc(global, env, buffer) { i64toi32_i32$2 = $1; i64toi32_i32$1 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { - i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; $12_1 = 0; } } else { { - i64toi32_i32$1 = (1 << i64toi32_i32$4) - 1 & i64toi32_i32$2 >>> 32 - i64toi32_i32$4 | i64toi32_i32$0 << i64toi32_i32$4; - $12_1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $12_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } $7$hi = i64toi32_i32$1; @@ -365,32 +379,34 @@ function asmFunc(global, env, buffer) { i64toi32_i32$0 = $4; i64toi32_i32$2 = $7$hi; i64toi32_i32$3 = $12_1; - i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2; - i64toi32_i32$2 = $10(i64toi32_i32$0 | i64toi32_i32$3, i64toi32_i32$2); + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$2 = $10(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0; i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; $2 = i64toi32_i32$2; $2$hi = i64toi32_i32$0; i64toi32_i32$1 = i64toi32_i32$2; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4; + $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { - i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4; - $13_1 = ((1 << i64toi32_i32$4) - 1 & i64toi32_i32$0) << 32 - i64toi32_i32$4 | i64toi32_i32$1 >>> i64toi32_i32$4; + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $13_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; } } setTempRet0($13_1 | 0); i64toi32_i32$2 = $2$hi; - return $2; + return $2 | 0; } function legalstub$11($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12_1 = 0, $13_1 = 0, $4 = 0, $4$hi = 0, $7$hi = 0, $2 = 0, $2$hi = 0; i64toi32_i32$0 = 0; $4 = $0; @@ -399,16 +415,16 @@ function asmFunc(global, env, buffer) { i64toi32_i32$2 = $1; i64toi32_i32$1 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { - i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; $12_1 = 0; } } else { { - i64toi32_i32$1 = (1 << i64toi32_i32$4) - 1 & i64toi32_i32$2 >>> 32 - i64toi32_i32$4 | i64toi32_i32$0 << i64toi32_i32$4; - $12_1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $12_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } $7$hi = i64toi32_i32$1; @@ -416,32 +432,34 @@ function asmFunc(global, env, buffer) { i64toi32_i32$0 = $4; i64toi32_i32$2 = $7$hi; i64toi32_i32$3 = $12_1; - i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2; - i64toi32_i32$2 = $11(i64toi32_i32$0 | i64toi32_i32$3, i64toi32_i32$2); + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$2 = $11(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0; i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; $2 = i64toi32_i32$2; $2$hi = i64toi32_i32$0; i64toi32_i32$1 = i64toi32_i32$2; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4; + $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { - i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4; - $13_1 = ((1 << i64toi32_i32$4) - 1 & i64toi32_i32$0) << 32 - i64toi32_i32$4 | i64toi32_i32$1 >>> i64toi32_i32$4; + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $13_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; } } setTempRet0($13_1 | 0); i64toi32_i32$2 = $2$hi; - return $2; + return $2 | 0; } function legalstub$12($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12_1 = 0, $13_1 = 0, $4 = 0, $4$hi = 0, $7$hi = 0, $2 = 0, $2$hi = 0; i64toi32_i32$0 = 0; $4 = $0; @@ -450,16 +468,16 @@ function asmFunc(global, env, buffer) { i64toi32_i32$2 = $1; i64toi32_i32$1 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { - i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; $12_1 = 0; } } else { { - i64toi32_i32$1 = (1 << i64toi32_i32$4) - 1 & i64toi32_i32$2 >>> 32 - i64toi32_i32$4 | i64toi32_i32$0 << i64toi32_i32$4; - $12_1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $12_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } $7$hi = i64toi32_i32$1; @@ -467,32 +485,34 @@ function asmFunc(global, env, buffer) { i64toi32_i32$0 = $4; i64toi32_i32$2 = $7$hi; i64toi32_i32$3 = $12_1; - i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2; - i64toi32_i32$2 = $12(i64toi32_i32$0 | i64toi32_i32$3, i64toi32_i32$2); + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$2 = $12(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0; i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; $2 = i64toi32_i32$2; $2$hi = i64toi32_i32$0; i64toi32_i32$1 = i64toi32_i32$2; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4; + $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { - i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4; - $13_1 = ((1 << i64toi32_i32$4) - 1 & i64toi32_i32$0) << 32 - i64toi32_i32$4 | i64toi32_i32$1 >>> i64toi32_i32$4; + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $13_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; } } setTempRet0($13_1 | 0); i64toi32_i32$2 = $2$hi; - return $2; + return $2 | 0; } function legalstub$13($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12_1 = 0, $13_1 = 0, $4 = 0, $4$hi = 0, $7$hi = 0, $2 = 0, $2$hi = 0; i64toi32_i32$0 = 0; $4 = $0; @@ -501,16 +521,16 @@ function asmFunc(global, env, buffer) { i64toi32_i32$2 = $1; i64toi32_i32$1 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { - i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; $12_1 = 0; } } else { { - i64toi32_i32$1 = (1 << i64toi32_i32$4) - 1 & i64toi32_i32$2 >>> 32 - i64toi32_i32$4 | i64toi32_i32$0 << i64toi32_i32$4; - $12_1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $12_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } $7$hi = i64toi32_i32$1; @@ -518,32 +538,34 @@ function asmFunc(global, env, buffer) { i64toi32_i32$0 = $4; i64toi32_i32$2 = $7$hi; i64toi32_i32$3 = $12_1; - i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2; - i64toi32_i32$2 = $13(i64toi32_i32$0 | i64toi32_i32$3, i64toi32_i32$2); + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$2 = $13(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0; i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; $2 = i64toi32_i32$2; $2$hi = i64toi32_i32$0; i64toi32_i32$1 = i64toi32_i32$2; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4; + $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { - i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4; - $13_1 = ((1 << i64toi32_i32$4) - 1 & i64toi32_i32$0) << 32 - i64toi32_i32$4 | i64toi32_i32$1 >>> i64toi32_i32$4; + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $13_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; } } setTempRet0($13_1 | 0); i64toi32_i32$2 = $2$hi; - return $2; + return $2 | 0; } function legalstub$18($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12_1 = 0, $13_1 = 0, $4 = 0, $4$hi = 0, $7$hi = 0, $2 = 0, $2$hi = 0; i64toi32_i32$0 = 0; $4 = $0; @@ -552,16 +574,16 @@ function asmFunc(global, env, buffer) { i64toi32_i32$2 = $1; i64toi32_i32$1 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { - i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; $12_1 = 0; } } else { { - i64toi32_i32$1 = (1 << i64toi32_i32$4) - 1 & i64toi32_i32$2 >>> 32 - i64toi32_i32$4 | i64toi32_i32$0 << i64toi32_i32$4; - $12_1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $12_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } $7$hi = i64toi32_i32$1; @@ -569,32 +591,34 @@ function asmFunc(global, env, buffer) { i64toi32_i32$0 = $4; i64toi32_i32$2 = $7$hi; i64toi32_i32$3 = $12_1; - i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2; - i64toi32_i32$2 = $18(i64toi32_i32$0 | i64toi32_i32$3, i64toi32_i32$2); + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$2 = $18(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0; i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; $2 = i64toi32_i32$2; $2$hi = i64toi32_i32$0; i64toi32_i32$1 = i64toi32_i32$2; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4; + $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { - i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4; - $13_1 = ((1 << i64toi32_i32$4) - 1 & i64toi32_i32$0) << 32 - i64toi32_i32$4 | i64toi32_i32$1 >>> i64toi32_i32$4; + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $13_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; } } setTempRet0($13_1 | 0); i64toi32_i32$2 = $2$hi; - return $2; + return $2 | 0; } function legalstub$19($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12_1 = 0, $13_1 = 0, $4 = 0, $4$hi = 0, $7$hi = 0, $2 = 0, $2$hi = 0; i64toi32_i32$0 = 0; $4 = $0; @@ -603,16 +627,16 @@ function asmFunc(global, env, buffer) { i64toi32_i32$2 = $1; i64toi32_i32$1 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { - i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; $12_1 = 0; } } else { { - i64toi32_i32$1 = (1 << i64toi32_i32$4) - 1 & i64toi32_i32$2 >>> 32 - i64toi32_i32$4 | i64toi32_i32$0 << i64toi32_i32$4; - $12_1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $12_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } $7$hi = i64toi32_i32$1; @@ -620,32 +644,34 @@ function asmFunc(global, env, buffer) { i64toi32_i32$0 = $4; i64toi32_i32$2 = $7$hi; i64toi32_i32$3 = $12_1; - i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2; - i64toi32_i32$2 = $19(i64toi32_i32$0 | i64toi32_i32$3, i64toi32_i32$2); + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$2 = $19(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0; i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; $2 = i64toi32_i32$2; $2$hi = i64toi32_i32$0; i64toi32_i32$1 = i64toi32_i32$2; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4; + $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { - i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4; - $13_1 = ((1 << i64toi32_i32$4) - 1 & i64toi32_i32$0) << 32 - i64toi32_i32$4 | i64toi32_i32$1 >>> i64toi32_i32$4; + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $13_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; } } setTempRet0($13_1 | 0); i64toi32_i32$2 = $2$hi; - return $2; + return $2 | 0; } function legalstub$20($0, $1) { + $0 = $0 | 0; + $1 = $1 | 0; var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $12_1 = 0, $13_1 = 0, $4 = 0, $4$hi = 0, $7$hi = 0, $2 = 0, $2$hi = 0; i64toi32_i32$0 = 0; $4 = $0; @@ -654,16 +680,16 @@ function asmFunc(global, env, buffer) { i64toi32_i32$2 = $1; i64toi32_i32$1 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { - i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; $12_1 = 0; } } else { { - i64toi32_i32$1 = (1 << i64toi32_i32$4) - 1 & i64toi32_i32$2 >>> 32 - i64toi32_i32$4 | i64toi32_i32$0 << i64toi32_i32$4; - $12_1 = i64toi32_i32$2 << i64toi32_i32$4; + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $12_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } $7$hi = i64toi32_i32$1; @@ -671,29 +697,29 @@ function asmFunc(global, env, buffer) { i64toi32_i32$0 = $4; i64toi32_i32$2 = $7$hi; i64toi32_i32$3 = $12_1; - i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2; - i64toi32_i32$2 = $20(i64toi32_i32$0 | i64toi32_i32$3, i64toi32_i32$2); + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$2 = $20(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0; i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; $2 = i64toi32_i32$2; $2$hi = i64toi32_i32$0; i64toi32_i32$1 = i64toi32_i32$2; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; - i64toi32_i32$4 = i64toi32_i32$3 & 31; - if (32 >>> 0 <= (i64toi32_i32$3 & 63) >>> 0) { + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { i64toi32_i32$2 = 0; - $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4; + $13_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; } } else { { - i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4; - $13_1 = ((1 << i64toi32_i32$4) - 1 & i64toi32_i32$0) << 32 - i64toi32_i32$4 | i64toi32_i32$1 >>> i64toi32_i32$4; + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $13_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; } } setTempRet0($13_1 | 0); i64toi32_i32$2 = $2$hi; - return $2; + return $2 | 0; } var FUNCTION_TABLE = []; |