diff options
Diffstat (limited to 'test/wasm2js/endianness.2asm.js')
-rw-r--r-- | test/wasm2js/endianness.2asm.js | 375 |
1 files changed, 375 insertions, 0 deletions
diff --git a/test/wasm2js/endianness.2asm.js b/test/wasm2js/endianness.2asm.js new file mode 100644 index 000000000..c4b830a30 --- /dev/null +++ b/test/wasm2js/endianness.2asm.js @@ -0,0 +1,375 @@ +function asmFunc(global, env, buffer) { + "use asm"; + var HEAP8 = new global.Int8Array(buffer); + var HEAP16 = new global.Int16Array(buffer); + var HEAP32 = new global.Int32Array(buffer); + var HEAPU8 = new global.Uint8Array(buffer); + var HEAPU16 = new global.Uint16Array(buffer); + var HEAPU32 = new global.Uint32Array(buffer); + var HEAPF32 = new global.Float32Array(buffer); + var HEAPF64 = new global.Float64Array(buffer); + var Math_imul = global.Math.imul; + var Math_fround = global.Math.fround; + var Math_abs = global.Math.abs; + var Math_clz32 = global.Math.clz32; + var Math_min = global.Math.min; + var Math_max = global.Math.max; + var Math_floor = global.Math.floor; + var Math_ceil = global.Math.ceil; + var Math_sqrt = global.Math.sqrt; + var abort = env.abort; + var nan = global.NaN; + var infinity = global.Infinity; + var i64toi32_i32$HIGH_BITS = 0; + function i16_store_little(address, value) { + address = address | 0; + value = value | 0; + var wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + wasm2js_i32$0 = address; + wasm2js_i32$1 = value; + HEAP8[wasm2js_i32$0 >> 0] = wasm2js_i32$1; + wasm2js_i32$0 = address + 1 | 0; + wasm2js_i32$1 = value >>> 8 | 0; + HEAP8[wasm2js_i32$0 >> 0] = wasm2js_i32$1; + } + + function i32_store_little(address, value) { + 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$0 = 0, i64toi32_i32$4 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $9_1 = 0, $6_1 = 0, i64toi32_i32$2 = 0; + i64toi32_i32$0 = value$hi; + i64toi32_i32$0 = i64toi32_i32$0; + i32_store_little(address | 0, value | 0); + $6_1 = address + 4 | 0; + i64toi32_i32$0 = i64toi32_i32$0; + i64toi32_i32$0 = i64toi32_i32$0; + i64toi32_i32$2 = value; + 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 = 0; + $9_1 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } else { + 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; + } + i64toi32_i32$1 = i64toi32_i32$1; + i32_store_little($6_1 | 0, $9_1 | 0); + } + + function i16_load_little(address) { + address = address | 0; + return HEAPU8[address >> 0] | 0 | ((HEAPU8[(address + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | 0; + } + + function i32_load_little(address) { + 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 | 0) | 0; + $3$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$0 = i64toi32_i32$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 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $9_1 = 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; + $9_1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + $8$hi = i64toi32_i32$1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$0 = $3; + i64toi32_i32$2 = $8$hi; + i64toi32_i32$3 = $9_1; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$2 = i64toi32_i32$2; + i64toi32_i32$0 = i64toi32_i32$0 | i64toi32_i32$3 | 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$2; + return i64toi32_i32$0 | 0; + } + + function $6(value) { + value = value | 0; + i16_store_little(0 | 0, value | 0); + return HEAP16[0 >> 1] | 0 | 0; + } + + function $7(value) { + value = value | 0; + i16_store_little(0 | 0, value | 0); + return HEAPU16[0 >> 1] | 0 | 0; + } + + function $8(value) { + value = value | 0; + i32_store_little(0 | 0, value | 0); + return HEAPU32[0 >> 2] | 0 | 0; + } + + function $9(value, value$hi) { + value = value | 0; + value$hi = value$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + i64toi32_i32$0 = value$hi; + i64toi32_i32$0 = i64toi32_i32$0; + i16_store_little(0 | 0, value | 0); + i64toi32_i32$0 = HEAP16[0 >> 1] | 0; + i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$0 = i64toi32_i32$0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$0 | 0; + } + + function $10(value, value$hi) { + value = value | 0; + value$hi = value$hi | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0; + i64toi32_i32$0 = value$hi; + i64toi32_i32$0 = i64toi32_i32$0; + i16_store_little(0 | 0, value | 0); + i64toi32_i32$0 = HEAPU16[0 >> 1] | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$0 = i64toi32_i32$0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$0 | 0; + } + + function $11(value, value$hi) { + value = value | 0; + value$hi = value$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0; + i64toi32_i32$0 = value$hi; + i64toi32_i32$0 = i64toi32_i32$0; + i32_store_little(0 | 0, value | 0); + i64toi32_i32$0 = HEAP32[0 >> 2] | 0; + i64toi32_i32$1 = i64toi32_i32$0 >> 31 | 0; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$0 = i64toi32_i32$0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$0 | 0; + } + + function $12(value, value$hi) { + value = value | 0; + value$hi = value$hi | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0; + i64toi32_i32$0 = value$hi; + i64toi32_i32$0 = i64toi32_i32$0; + i32_store_little(0 | 0, value | 0); + i64toi32_i32$0 = HEAPU32[0 >> 2] | 0; + i64toi32_i32$1 = 0; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$0 = i64toi32_i32$0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$0 | 0; + } + + function $13(value, value$hi) { + value = value | 0; + value$hi = value$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$2 = 0, wasm2js_i32$0 = 0; + i64toi32_i32$0 = value$hi; + i64toi32_i32$0 = i64toi32_i32$0; + i64_store_little(0 | 0, value | 0, i64toi32_i32$0 | 0); + i64toi32_i32$2 = 0; + i64toi32_i32$0 = HEAPU32[i64toi32_i32$2 >> 2] | 0; + i64toi32_i32$1 = (wasm2js_i32$0 = i64toi32_i32$2, HEAPU8[(wasm2js_i32$0 + 4 | 0) >> 0] | 0 | 0 | (HEAPU8[(wasm2js_i32$0 + 5 | 0) >> 0] | 0 | 0) << 8 | (HEAPU8[(wasm2js_i32$0 + 6 | 0) >> 0] | 0 | 0) << 16 | (HEAPU8[(wasm2js_i32$0 + 7 | 0) >> 0] | 0 | 0) << 24); + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$0 = i64toi32_i32$0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$0 | 0; + } + + function $14(value) { + value = Math_fround(value); + i32_store_little(0 | 0, (HEAPF32[0] = value, HEAP32[0] | 0) | 0); + return Math_fround(Math_fround(HEAPF32[0 >> 2])); + } + + function $15(value) { + value = +value; + var i64toi32_i32$0 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0; + wasm2js_i32$0 = 0; + wasm2js_f64$0 = value; + HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; + i64toi32_i32$0 = HEAP32[(0 + 4 | 0) >> 2] | 0; + i64toi32_i32$0 = i64toi32_i32$0; + i64_store_little(0 | 0, HEAP32[0 >> 2] | 0 | 0, i64toi32_i32$0 | 0); + return +(+HEAPF64[0 >> 3]); + } + + function $16(value) { + value = value | 0; + var wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + wasm2js_i32$0 = 0; + wasm2js_i32$1 = value; + HEAP16[wasm2js_i32$0 >> 1] = wasm2js_i32$1; + return i16_load_little(0 | 0) | 0 | 0; + } + + function $17(value) { + value = value | 0; + var wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + wasm2js_i32$0 = 0; + wasm2js_i32$1 = value; + HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + return i32_load_little(0 | 0) | 0 | 0; + } + + function $18(value, value$hi) { + value = value | 0; + value$hi = value$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + i64toi32_i32$0 = value$hi; + i64toi32_i32$0 = i64toi32_i32$0; + wasm2js_i32$0 = 0; + wasm2js_i32$1 = value; + HEAP16[wasm2js_i32$0 >> 1] = wasm2js_i32$1; + i64toi32_i32$0 = 0; + i64toi32_i32$0 = i64toi32_i32$0; + i64toi32_i32$0 = i64toi32_i32$0; + i64toi32_i32$0 = i64toi32_i32$0; + i64toi32_i32$1 = i16_load_little(0 | 0) | 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$0; + return i64toi32_i32$1 | 0; + } + + function $19(value, value$hi) { + value = value | 0; + value$hi = value$hi | 0; + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0; + i64toi32_i32$0 = value$hi; + i64toi32_i32$0 = i64toi32_i32$0; + wasm2js_i32$0 = 0; + wasm2js_i32$1 = value; + HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + i64toi32_i32$0 = 0; + i64toi32_i32$0 = i64toi32_i32$0; + i64toi32_i32$0 = i64toi32_i32$0; + i64toi32_i32$0 = i64toi32_i32$0; + i64toi32_i32$1 = i32_load_little(0 | 0) | 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$0; + return i64toi32_i32$1 | 0; + } + + function $20(value, value$hi) { + value = value | 0; + value$hi = value$hi | 0; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0, wasm2js_i32$3 = 0; + i64toi32_i32$0 = value$hi; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = i64toi32_i32$0; + wasm2js_i32$0 = i64toi32_i32$1; + wasm2js_i32$1 = value; + HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + wasm2js_i32$0 = i64toi32_i32$1; + wasm2js_i32$1 = i64toi32_i32$0; + (wasm2js_i32$2 = wasm2js_i32$0, wasm2js_i32$3 = wasm2js_i32$1), ((HEAP8[(wasm2js_i32$2 + 4 | 0) >> 0] = wasm2js_i32$3 & 255 | 0, HEAP8[(wasm2js_i32$2 + 5 | 0) >> 0] = (wasm2js_i32$3 >>> 8 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 6 | 0) >> 0] = (wasm2js_i32$3 >>> 16 | 0) & 255 | 0), HEAP8[(wasm2js_i32$2 + 7 | 0) >> 0] = (wasm2js_i32$3 >>> 24 | 0) & 255 | 0; + i64toi32_i32$0 = i64_load_little(0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$1 = i64toi32_i32$1; + i64toi32_i32$0 = i64toi32_i32$0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$1; + return i64toi32_i32$0 | 0; + } + + function $21(value) { + value = Math_fround(value); + var wasm2js_i32$0 = 0, wasm2js_f32$0 = Math_fround(0); + wasm2js_i32$0 = 0; + wasm2js_f32$0 = value; + HEAPF32[wasm2js_i32$0 >> 2] = wasm2js_f32$0; + return Math_fround((HEAP32[0] = i32_load_little(0 | 0) | 0, HEAPF32[0])); + } + + function $22(value) { + value = +value; + var i64toi32_i32$1 = 0, i64toi32_i32$0 = 0, wasm2js_i32$0 = 0, wasm2js_f64$0 = 0.0, wasm2js_i32$1 = 0; + wasm2js_i32$0 = 0; + wasm2js_f64$0 = value; + HEAPF64[wasm2js_i32$0 >> 3] = wasm2js_f64$0; + i64toi32_i32$0 = i64_load_little(0 | 0) | 0; + i64toi32_i32$1 = i64toi32_i32$HIGH_BITS; + i64toi32_i32$1 = i64toi32_i32$1; + wasm2js_i32$0 = 0; + wasm2js_i32$1 = i64toi32_i32$0; + HEAP32[wasm2js_i32$0 >> 2] = wasm2js_i32$1; + wasm2js_i32$0 = 0; + wasm2js_i32$1 = i64toi32_i32$1; + HEAP32[(wasm2js_i32$0 + 4 | 0) >> 2] = wasm2js_i32$1; + return +(+HEAPF64[0 >> 3]); + } + + return { + i32_load16_s: $6, + i32_load16_u: $7, + i32_load: $8, + i64_load16_s: $9, + i64_load16_u: $10, + i64_load32_s: $11, + i64_load32_u: $12, + i64_load: $13, + f32_load: $14, + f64_load: $15, + i32_store16: $16, + i32_store: $17, + i64_store16: $18, + i64_store32: $19, + i64_store: $20, + f32_store: $21, + f64_store: $22 + }; +} + +const memasmFunc = new ArrayBuffer(65536); +const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc); +export const i32_load16_s = retasmFunc.i32_load16_s; +export const i32_load16_u = retasmFunc.i32_load16_u; +export const i32_load = retasmFunc.i32_load; +export const i64_load16_s = retasmFunc.i64_load16_s; +export const i64_load16_u = retasmFunc.i64_load16_u; +export const i64_load32_s = retasmFunc.i64_load32_s; +export const i64_load32_u = retasmFunc.i64_load32_u; +export const i64_load = retasmFunc.i64_load; +export const f32_load = retasmFunc.f32_load; +export const f64_load = retasmFunc.f64_load; +export const i32_store16 = retasmFunc.i32_store16; +export const i32_store = retasmFunc.i32_store; +export const i64_store16 = retasmFunc.i64_store16; +export const i64_store32 = retasmFunc.i64_store32; +export const i64_store = retasmFunc.i64_store; +export const f32_store = retasmFunc.f32_store; +export const f64_store = retasmFunc.f64_store; |