forked from kozorizki/binaryen
The only internal use was in wasm2js, which doesn't need it. Fix API tests to explicitly drop expressions as necessary.
191 lines
4.2 KiB
JavaScript
191 lines
4.2 KiB
JavaScript
import * as env from 'env';
|
|
|
|
function asmFunc(imports) {
|
|
var Math_imul = Math.imul;
|
|
var Math_fround = Math.fround;
|
|
var Math_abs = Math.abs;
|
|
var Math_clz32 = Math.clz32;
|
|
var Math_min = Math.min;
|
|
var Math_max = Math.max;
|
|
var Math_floor = Math.floor;
|
|
var Math_ceil = Math.ceil;
|
|
var Math_trunc = Math.trunc;
|
|
var Math_sqrt = Math.sqrt;
|
|
var env = imports.env;
|
|
var setTempRet0 = env.setTempRet0;
|
|
var i64toi32_i32$HIGH_BITS = 0;
|
|
function $0(i) {
|
|
i = i | 0;
|
|
var j = 0, $7 = 0;
|
|
j = 100;
|
|
switch_ : {
|
|
$7 : {
|
|
switch (i | 0) {
|
|
case 0:
|
|
return i | 0;
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
j = 0 - i | 0;
|
|
break switch_;
|
|
case 4:
|
|
break switch_;
|
|
case 5:
|
|
j = 101;
|
|
break switch_;
|
|
case 6:
|
|
j = 101;
|
|
default:
|
|
j = 102;
|
|
break;
|
|
case 7:
|
|
break $7;
|
|
};
|
|
}
|
|
}
|
|
return j | 0;
|
|
}
|
|
|
|
function $1(i, i$hi) {
|
|
i = i | 0;
|
|
i$hi = i$hi | 0;
|
|
var i64toi32_i32$5 = 0, i64toi32_i32$2 = 0, $7 = 0, $7$hi = 0, j = 0, j$hi = 0, $10$hi = 0, $10 = 0;
|
|
j = 100;
|
|
j$hi = 0;
|
|
switch_ : {
|
|
$7 : {
|
|
switch (i | 0) {
|
|
case 0:
|
|
i64toi32_i32$HIGH_BITS = i$hi;
|
|
return i | 0;
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
i64toi32_i32$2 = 0;
|
|
i64toi32_i32$5 = (i64toi32_i32$2 >>> 0 < i >>> 0) + i$hi | 0;
|
|
i64toi32_i32$5 = 0 - i64toi32_i32$5 | 0;
|
|
$7 = i64toi32_i32$2 - i | 0;
|
|
$7$hi = i64toi32_i32$5;
|
|
break switch_;
|
|
case 6:
|
|
i64toi32_i32$5 = 0;
|
|
j = 101;
|
|
j$hi = i64toi32_i32$5;
|
|
case 5:
|
|
case 4:
|
|
default:
|
|
i64toi32_i32$5 = j$hi;
|
|
$7 = j;
|
|
$7$hi = i64toi32_i32$5;
|
|
break switch_;
|
|
case 7:
|
|
break $7;
|
|
};
|
|
}
|
|
i64toi32_i32$5 = -1;
|
|
$7 = -5;
|
|
$7$hi = i64toi32_i32$5;
|
|
}
|
|
i64toi32_i32$5 = $7$hi;
|
|
i64toi32_i32$2 = $7;
|
|
i64toi32_i32$HIGH_BITS = i64toi32_i32$5;
|
|
return i64toi32_i32$2 | 0;
|
|
}
|
|
|
|
function $2(i) {
|
|
i = i | 0;
|
|
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
|
|
$2 : {
|
|
$1 : {
|
|
$0 : {
|
|
default_ : {
|
|
$5 = Math_imul(2, i);
|
|
$6 = $5;
|
|
$7 = $5;
|
|
$8 = $5;
|
|
$9 = $5;
|
|
switch (3 & i | 0 | 0) {
|
|
case 0:
|
|
break $0;
|
|
case 1:
|
|
break $1;
|
|
case 2:
|
|
break $2;
|
|
default:
|
|
break default_;
|
|
};
|
|
}
|
|
$6 = 1e3 + $9 | 0;
|
|
}
|
|
$7 = 100 + $6 | 0;
|
|
}
|
|
$8 = 10 + $7 | 0;
|
|
}
|
|
return $8 | 0;
|
|
}
|
|
|
|
function $3() {
|
|
return 1 | 0;
|
|
}
|
|
|
|
function legalstub$1($0_1, $1_1) {
|
|
$0_1 = $0_1 | 0;
|
|
$1_1 = $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 = 0, $13 = 0, $4 = 0, $4$hi = 0, $7$hi = 0, $2_1 = 0, $2$hi = 0;
|
|
i64toi32_i32$0 = 0;
|
|
$4 = $0_1;
|
|
$4$hi = i64toi32_i32$0;
|
|
i64toi32_i32$0 = 0;
|
|
i64toi32_i32$2 = $1_1;
|
|
i64toi32_i32$1 = 0;
|
|
i64toi32_i32$3 = 32;
|
|
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 | 0;
|
|
$12 = 0;
|
|
} else {
|
|
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 = i64toi32_i32$2 << i64toi32_i32$4 | 0;
|
|
}
|
|
$7$hi = i64toi32_i32$1;
|
|
i64toi32_i32$1 = $4$hi;
|
|
i64toi32_i32$0 = $4;
|
|
i64toi32_i32$2 = $7$hi;
|
|
i64toi32_i32$3 = $12;
|
|
i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0;
|
|
i64toi32_i32$2 = $1(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0) | 0;
|
|
i64toi32_i32$0 = i64toi32_i32$HIGH_BITS;
|
|
$2_1 = 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 | 0;
|
|
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
|
|
i64toi32_i32$2 = 0;
|
|
$13 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
|
|
} else {
|
|
i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0;
|
|
$13 = (((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 | 0);
|
|
i64toi32_i32$2 = $2$hi;
|
|
return $2_1 | 0;
|
|
}
|
|
|
|
return {
|
|
"stmt": $0,
|
|
"expr": legalstub$1,
|
|
"arg": $2,
|
|
"corner": $3
|
|
};
|
|
}
|
|
|
|
var retasmFunc = asmFunc({
|
|
"env": env,
|
|
});
|
|
export var stmt = retasmFunc.stmt;
|
|
export var expr = retasmFunc.expr;
|
|
export var arg = retasmFunc.arg;
|
|
export var corner = retasmFunc.corner;
|