forked from kozorizki/binaryen
As noted in #4739, legacy language emitting nan and infinity exists, with the observation that it can be removed once asm.js is no longer used and global NaN is available. This commit removes that asm.js-specific code accordingly.
189 lines
6.2 KiB
JavaScript
189 lines
6.2 KiB
JavaScript
import * as env from 'env';
|
|
|
|
var bufferView;
|
|
|
|
var scratchBuffer = new ArrayBuffer(16);
|
|
var i32ScratchView = new Int32Array(scratchBuffer);
|
|
var f32ScratchView = new Float32Array(scratchBuffer);
|
|
var f64ScratchView = new Float64Array(scratchBuffer);
|
|
|
|
function wasm2js_scratch_load_i32(index) {
|
|
return i32ScratchView[index];
|
|
}
|
|
|
|
function wasm2js_scratch_store_i32(index, value) {
|
|
i32ScratchView[index] = value;
|
|
}
|
|
|
|
function wasm2js_scratch_load_f64() {
|
|
return f64ScratchView[0];
|
|
}
|
|
|
|
function wasm2js_scratch_store_f64(value) {
|
|
f64ScratchView[0] = value;
|
|
}
|
|
|
|
function wasm2js_scratch_load_f32() {
|
|
return f32ScratchView[2];
|
|
}
|
|
|
|
function wasm2js_scratch_store_f32(value) {
|
|
f32ScratchView[2] = value;
|
|
}
|
|
|
|
function asmFunc(imports) {
|
|
var buffer = new ArrayBuffer(65536);
|
|
var HEAP8 = new Int8Array(buffer);
|
|
var HEAP16 = new Int16Array(buffer);
|
|
var HEAP32 = new Int32Array(buffer);
|
|
var HEAPU8 = new Uint8Array(buffer);
|
|
var HEAPU16 = new Uint16Array(buffer);
|
|
var HEAPU32 = new Uint32Array(buffer);
|
|
var HEAPF32 = new Float32Array(buffer);
|
|
var HEAPF64 = new Float64Array(buffer);
|
|
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() {
|
|
var $0_1 = 0;
|
|
$0_1 = 0;
|
|
return HEAPU8[$0_1 >> 0] | 0 | ((HEAPU8[($0_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($0_1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($0_1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0 | 0;
|
|
}
|
|
|
|
function $1() {
|
|
var $2_1 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0;
|
|
$2_1 = 0;
|
|
i64toi32_i32$0 = HEAPU8[$2_1 >> 0] | 0 | ((HEAPU8[($2_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($2_1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($2_1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
|
|
i64toi32_i32$1 = HEAPU8[($2_1 + 4 | 0) >> 0] | 0 | ((HEAPU8[($2_1 + 5 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($2_1 + 6 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($2_1 + 7 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
|
|
i64toi32_i32$HIGH_BITS = i64toi32_i32$1;
|
|
return i64toi32_i32$0 | 0;
|
|
}
|
|
|
|
function $2() {
|
|
var $0_1 = 0;
|
|
$0_1 = 0;
|
|
return Math_fround((wasm2js_scratch_store_i32(2, HEAPU8[$0_1 >> 0] | 0 | ((HEAPU8[($0_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($0_1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($0_1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0), wasm2js_scratch_load_f32()));
|
|
}
|
|
|
|
function $3() {
|
|
var $1_1 = 0, i64toi32_i32$1 = 0;
|
|
$1_1 = 0;
|
|
i64toi32_i32$1 = HEAPU8[($1_1 + 4 | 0) >> 0] | 0 | ((HEAPU8[($1_1 + 5 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($1_1 + 6 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($1_1 + 7 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
|
|
wasm2js_scratch_store_i32(0 | 0, HEAPU8[$1_1 >> 0] | 0 | ((HEAPU8[($1_1 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($1_1 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($1_1 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0 | 0);
|
|
wasm2js_scratch_store_i32(1 | 0, i64toi32_i32$1 | 0);
|
|
return +(+wasm2js_scratch_load_f64());
|
|
}
|
|
|
|
function $4() {
|
|
var $0_1 = 0, $1_1 = 0;
|
|
$0_1 = 0;
|
|
$1_1 = 0;
|
|
HEAP8[$0_1 >> 0] = $1_1;
|
|
HEAP8[($0_1 + 1 | 0) >> 0] = $1_1 >>> 8 | 0;
|
|
HEAP8[($0_1 + 2 | 0) >> 0] = $1_1 >>> 16 | 0;
|
|
HEAP8[($0_1 + 3 | 0) >> 0] = $1_1 >>> 24 | 0;
|
|
}
|
|
|
|
function $5() {
|
|
var $0_1 = 0, $1_1 = 0, $2_1 = 0;
|
|
$0_1 = 0;
|
|
$1_1 = 0;
|
|
HEAP8[$0_1 >> 0] = $1_1;
|
|
HEAP8[($0_1 + 1 | 0) >> 0] = $1_1 >>> 8 | 0;
|
|
HEAP8[($0_1 + 2 | 0) >> 0] = $1_1 >>> 16 | 0;
|
|
HEAP8[($0_1 + 3 | 0) >> 0] = $1_1 >>> 24 | 0;
|
|
$2_1 = 0;
|
|
HEAP8[($0_1 + 4 | 0) >> 0] = $2_1;
|
|
HEAP8[($0_1 + 5 | 0) >> 0] = $2_1 >>> 8 | 0;
|
|
HEAP8[($0_1 + 6 | 0) >> 0] = $2_1 >>> 16 | 0;
|
|
HEAP8[($0_1 + 7 | 0) >> 0] = $2_1 >>> 24 | 0;
|
|
}
|
|
|
|
function $6() {
|
|
var $0_1 = 0, $1_1 = 0;
|
|
$0_1 = 0;
|
|
$1_1 = (wasm2js_scratch_store_f32(Math_fround(0.0)), wasm2js_scratch_load_i32(2));
|
|
HEAP8[$0_1 >> 0] = $1_1;
|
|
HEAP8[($0_1 + 1 | 0) >> 0] = $1_1 >>> 8 | 0;
|
|
HEAP8[($0_1 + 2 | 0) >> 0] = $1_1 >>> 16 | 0;
|
|
HEAP8[($0_1 + 3 | 0) >> 0] = $1_1 >>> 24 | 0;
|
|
}
|
|
|
|
function $7() {
|
|
var $1_1 = 0, $2_1 = 0, $3_1 = 0, i64toi32_i32$0 = 0;
|
|
wasm2js_scratch_store_f64(+(0.0));
|
|
i64toi32_i32$0 = wasm2js_scratch_load_i32(1 | 0) | 0;
|
|
$1_1 = 0;
|
|
$2_1 = wasm2js_scratch_load_i32(0 | 0) | 0;
|
|
HEAP8[$1_1 >> 0] = $2_1;
|
|
HEAP8[($1_1 + 1 | 0) >> 0] = $2_1 >>> 8 | 0;
|
|
HEAP8[($1_1 + 2 | 0) >> 0] = $2_1 >>> 16 | 0;
|
|
HEAP8[($1_1 + 3 | 0) >> 0] = $2_1 >>> 24 | 0;
|
|
$3_1 = i64toi32_i32$0;
|
|
HEAP8[($1_1 + 4 | 0) >> 0] = $3_1;
|
|
HEAP8[($1_1 + 5 | 0) >> 0] = $3_1 >>> 8 | 0;
|
|
HEAP8[($1_1 + 6 | 0) >> 0] = $3_1 >>> 16 | 0;
|
|
HEAP8[($1_1 + 7 | 0) >> 0] = $3_1 >>> 24 | 0;
|
|
}
|
|
|
|
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$1 = i64toi32_i32$HIGH_BITS;
|
|
$0_1 = i64toi32_i32$0;
|
|
$0$hi = i64toi32_i32$1;
|
|
i64toi32_i32$2 = i64toi32_i32$0;
|
|
i64toi32_i32$0 = 0;
|
|
i64toi32_i32$3 = 32;
|
|
i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0;
|
|
if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) {
|
|
i64toi32_i32$0 = 0;
|
|
$7_1 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
|
|
} else {
|
|
i64toi32_i32$0 = i64toi32_i32$1 >>> i64toi32_i32$4 | 0;
|
|
$7_1 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$1 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$2 >>> i64toi32_i32$4 | 0) | 0;
|
|
}
|
|
setTempRet0($7_1 | 0);
|
|
i64toi32_i32$0 = $0$hi;
|
|
return $0_1 | 0;
|
|
}
|
|
|
|
bufferView = HEAPU8;
|
|
function __wasm_memory_size() {
|
|
return buffer.byteLength / 65536 | 0;
|
|
}
|
|
|
|
return {
|
|
"i32_load": $0,
|
|
"i64_load": legalstub$1,
|
|
"f32_load": $2,
|
|
"f64_load": $3,
|
|
"i32_store": $4,
|
|
"i64_store": $5,
|
|
"f32_store": $6,
|
|
"f64_store": $7
|
|
};
|
|
}
|
|
|
|
var retasmFunc = asmFunc({
|
|
"env": env,
|
|
});
|
|
export var i32_load = retasmFunc.i32_load;
|
|
export var i64_load = retasmFunc.i64_load;
|
|
export var f32_load = retasmFunc.f32_load;
|
|
export var f64_load = retasmFunc.f64_load;
|
|
export var i32_store = retasmFunc.i32_store;
|
|
export var i64_store = retasmFunc.i64_store;
|
|
export var f32_store = retasmFunc.f32_store;
|
|
export var f64_store = retasmFunc.f64_store;
|