summaryrefslogtreecommitdiff
path: root/test/wasm2js/unaligned.2asm.js
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2019-04-24 15:27:05 -0700
committerGitHub <noreply@github.com>2019-04-24 15:27:05 -0700
commitc3ed0f176b36a502ef2e1fd915550a808b8d8f0b (patch)
tree6abff96331025a74e18cfa4f173a997d3c800559 /test/wasm2js/unaligned.2asm.js
parentbc0a605e8864324d40aafbd00e8de0e50240ce26 (diff)
downloadbinaryen-c3ed0f176b36a502ef2e1fd915550a808b8d8f0b.tar.gz
binaryen-c3ed0f176b36a502ef2e1fd915550a808b8d8f0b.tar.bz2
binaryen-c3ed0f176b36a502ef2e1fd915550a808b8d8f0b.zip
wasm2js: more js optimization (#2050)
* Emit ints as signed, so -1 isn't a big unsigned number. * x - -c (where c is a constant) is larger than x + c in js (but not wasm) * +(+x) => +x * Avoid unnecessary coercions on calls, return, load, etc. - we just need coercions when entering or exiting "wasm" (not internally), and on actual operations that need them.
Diffstat (limited to 'test/wasm2js/unaligned.2asm.js')
-rw-r--r--test/wasm2js/unaligned.2asm.js10
1 files changed, 5 insertions, 5 deletions
diff --git a/test/wasm2js/unaligned.2asm.js b/test/wasm2js/unaligned.2asm.js
index c4bc4544a..f15cb0601 100644
--- a/test/wasm2js/unaligned.2asm.js
+++ b/test/wasm2js/unaligned.2asm.js
@@ -79,7 +79,7 @@ function asmFunc(global, env, buffer) {
i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[wasm2js_i32$0 + 4 | 0] | HEAPU8[wasm2js_i32$0 + 5 | 0] << 8 | HEAPU8[wasm2js_i32$0 + 6 | 0] << 16 | HEAPU8[wasm2js_i32$0 + 7 | 0] << 24);
wasm2js_scratch_store_i32(0 | 0, (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[wasm2js_i32$0 | 0] | HEAPU8[wasm2js_i32$0 + 1 | 0] << 8 | HEAPU8[wasm2js_i32$0 + 2 | 0] << 16 | HEAPU8[wasm2js_i32$0 + 3 | 0] << 24) | 0);
wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$1 | 0);
- return +(+wasm2js_scratch_load_f64());
+ return +wasm2js_scratch_load_f64();
}
function $4() {
@@ -101,7 +101,7 @@ function asmFunc(global, env, buffer) {
function $7() {
var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0;
- wasm2js_scratch_store_f64(+(0.0));
+ wasm2js_scratch_store_f64(0.0);
i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0;
i64toi32_i32$1 = 0;
(wasm2js_i32$0 = i64toi32_i32$1, wasm2js_i32$1 = wasm2js_scratch_load_i32(0 | 0) | 0), ((HEAP8[wasm2js_i32$0 | 0] = wasm2js_i32$1 & 255, HEAP8[wasm2js_i32$0 + 1 | 0] = wasm2js_i32$1 >>> 8 & 255), HEAP8[wasm2js_i32$0 + 2 | 0] = wasm2js_i32$1 >>> 16 & 255), HEAP8[wasm2js_i32$0 + 3 | 0] = wasm2js_i32$1 >>> 24 & 255;
@@ -110,7 +110,7 @@ function asmFunc(global, env, buffer) {
function legalstub$1() {
var i64toi32_i32$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $7_1 = 0, $0_1 = 0, $0$hi = 0, i64toi32_i32$2 = 0;
- i64toi32_i32$0 = $1() | 0;
+ i64toi32_i32$0 = $1();
i64toi32_i32$1 = i64toi32_i32$HIGH_BITS;
$0_1 = i64toi32_i32$0;
$0$hi = i64toi32_i32$1;
@@ -131,11 +131,11 @@ function asmFunc(global, env, buffer) {
}
setTempRet0($7_1 | 0);
i64toi32_i32$0 = $0$hi;
- return $0_1 | 0;
+ return $0_1;
}
function legalstub$2() {
- return +(+Math_fround($2()));
+ return +$2();
}
var FUNCTION_TABLE = [];