summaryrefslogtreecommitdiff
path: root/test/wasm2js/stack-modified.2asm.js.opt
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2022-08-22 13:53:47 -0700
committerGitHub <noreply@github.com>2022-08-22 13:53:47 -0700
commit38c084ee386e257389d44c6200a403f74432e1af (patch)
tree8e41abd3ad903b9fcb426bf0c4be3dd66a092247 /test/wasm2js/stack-modified.2asm.js.opt
parentb24df4d0c4705027fdc6e261aa3f8e4f61dc5c0a (diff)
downloadbinaryen-38c084ee386e257389d44c6200a403f74432e1af.tar.gz
binaryen-38c084ee386e257389d44c6200a403f74432e1af.tar.bz2
binaryen-38c084ee386e257389d44c6200a403f74432e1af.zip
Avoid adding new unneeded names to blocks in text roundtripping (#4943)
Previously the wat parser would turn this input: (block (nop) ) into something like this: (block $block17 (nop) ) It just added a name all the time, in case the block is referred to by an index later even though it doesn't have a name. This PR makes us rountrip more precisely by not adding such names: if there was no name before, and there is no break by index, then do not add a name. In addition, this will be useful for non-nullable locals since whether a block has a name or not matters there. Like #4912, this makes us more regular in our usage of block names.
Diffstat (limited to 'test/wasm2js/stack-modified.2asm.js.opt')
-rw-r--r--test/wasm2js/stack-modified.2asm.js.opt43
1 files changed, 24 insertions, 19 deletions
diff --git a/test/wasm2js/stack-modified.2asm.js.opt b/test/wasm2js/stack-modified.2asm.js.opt
index 63d2e4829..4944c5046 100644
--- a/test/wasm2js/stack-modified.2asm.js.opt
+++ b/test/wasm2js/stack-modified.2asm.js.opt
@@ -17,35 +17,40 @@ function asmFunc(env) {
var setTempRet0 = env.setTempRet0;
var i64toi32_i32$HIGH_BITS = 0;
function legalstub$0($0, $1) {
- var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
- $4 = $1;
- $2 = 1;
+ var $2 = 0, $3 = 0, $4 = 0;
+ $2 = $1;
+ $3 = 1;
while (1) {
- if ($0 | $4) {
- $1 = $2 >>> 16 | 0;
- $3 = $0 >>> 16 | 0;
- $9 = Math_imul($1, $3);
- $5 = $2 & 65535;
- $6 = $0 & 65535;
- $7 = Math_imul($5, $6);
- $3 = ($7 >>> 16 | 0) + Math_imul($3, $5) | 0;
- $1 = ($3 & 65535) + Math_imul($1, $6) | 0;
- i64toi32_i32$HIGH_BITS = (Math_imul($2, $4) + $9 | 0) + Math_imul($0, $8) + ($3 >>> 16) + ($1 >>> 16) | 0;
- $2 = $7 & 65535 | $1 << 16;
- $8 = i64toi32_i32$HIGH_BITS;
+ if ($0 | $2) {
+ $3 = __wasm_i64_mul($0, $2, $3, $4);
+ $4 = i64toi32_i32$HIGH_BITS;
$1 = $0;
- $0 = $1 - 1 | 0;
- $4 = $4 - !$1 | 0;
+ $0 = $0 - 1 | 0;
+ $2 = $2 - !$1 | 0;
continue;
}
break;
};
- i64toi32_i32$HIGH_BITS = $8;
- $0 = $2;
+ i64toi32_i32$HIGH_BITS = $4;
+ $0 = $3;
setTempRet0(i64toi32_i32$HIGH_BITS | 0);
return $0;
}
+ function __wasm_i64_mul($0, $1, $2, $3) {
+ var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
+ $4 = $2 >>> 16 | 0;
+ $5 = $0 >>> 16 | 0;
+ $9 = Math_imul($4, $5);
+ $6 = $2 & 65535;
+ $7 = $0 & 65535;
+ $8 = Math_imul($6, $7);
+ $5 = ($8 >>> 16 | 0) + Math_imul($5, $6) | 0;
+ $4 = ($5 & 65535) + Math_imul($4, $7) | 0;
+ i64toi32_i32$HIGH_BITS = (Math_imul($1, $2) + $9 | 0) + Math_imul($0, $3) + ($5 >>> 16) + ($4 >>> 16) | 0;
+ return $8 & 65535 | $4 << 16;
+ }
+
return {
"fac_expr": legalstub$0,
"fac_stack": legalstub$0,