diff options
Diffstat (limited to 'test/wasm2js/set_local.2asm.js')
-rw-r--r-- | test/wasm2js/set_local.2asm.js | 142 |
1 files changed, 137 insertions, 5 deletions
diff --git a/test/wasm2js/set_local.2asm.js b/test/wasm2js/set_local.2asm.js index bf3e08754..e277f5a07 100644 --- a/test/wasm2js/set_local.2asm.js +++ b/test/wasm2js/set_local.2asm.js @@ -1,3 +1,4 @@ +import { setTempRet0 } from 'env'; function asmFunc(global, env, buffer) { "almost asm"; @@ -21,6 +22,7 @@ function asmFunc(global, env, buffer) { var abort = env.abort; var nan = global.NaN; var infinity = global.Infinity; + var setTempRet0 = env.setTempRet0; var i64toi32_i32$HIGH_BITS = 0; function $0() { @@ -105,6 +107,136 @@ function asmFunc(global, env, buffer) { return i64toi32_i32$1 | 0; } + function legalstub$5($0_1, $1_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $10 = 0, $3_1 = 0, $3$hi = 0, $6$hi = 0; + i64toi32_i32$0 = 0; + $3_1 = $0_1; + $3$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; + $10 = 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; + $10 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + } + $6$hi = i64toi32_i32$1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$2 = $6$hi; + i64toi32_i32$3 = $10; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + $5(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0); + } + + function legalstub$6($0_1) { + $0_1 = +$0_1; + $6(Math_fround(Math_fround($0_1))); + } + + function legalstub$8($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = +$2_1; + $3_1 = +$3_1; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $14 = 0, $7_1 = 0, $7$hi = 0, $10$hi = 0; + i64toi32_i32$0 = 0; + $7_1 = $0_1; + $7$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; + $14 = 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; + $14 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + } + $10$hi = i64toi32_i32$1; + i64toi32_i32$1 = $7$hi; + i64toi32_i32$0 = $7_1; + i64toi32_i32$2 = $10$hi; + i64toi32_i32$3 = $14; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + $8(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0, Math_fround(Math_fround($2_1)), +$3_1, $4_1 | 0, $5_1 | 0); + } + + function legalstub$9($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + $0_1 = $0_1 | 0; + $1_1 = $1_1 | 0; + $2_1 = +$2_1; + $3_1 = +$3_1; + $4_1 = $4_1 | 0; + $5_1 = $5_1 | 0; + var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $16 = 0, $17 = 0, $8_1 = 0, $8$hi = 0, $11$hi = 0, $6_1 = 0, $6$hi = 0; + i64toi32_i32$0 = 0; + $8_1 = $0_1; + $8$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; + $16 = 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; + $16 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + } + } + $11$hi = i64toi32_i32$1; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$0 = $8_1; + i64toi32_i32$2 = $11$hi; + i64toi32_i32$3 = $16; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$2 = $9(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0, Math_fround(Math_fround($2_1)), +$3_1, $4_1 | 0, $5_1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $6_1 = i64toi32_i32$2; + $6$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; + $17 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } + } else { + { + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $17 = (((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($17 | 0); + i64toi32_i32$2 = $6$hi; + return $6_1 | 0; + } + var FUNCTION_TABLE = []; return { type_local_i32: $0, @@ -112,16 +244,16 @@ function asmFunc(global, env, buffer) { type_local_f32: $2, type_local_f64: $3, type_param_i32: $4, - type_param_i64: $5, - type_param_f32: $6, + type_param_i64: legalstub$5, + type_param_f32: legalstub$6, type_param_f64: $7, - type_mixed: $8, - write: $9 + type_mixed: legalstub$8, + write: legalstub$9 }; } 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); +const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); },setTempRet0},memasmFunc); export const type_local_i32 = retasmFunc.type_local_i32; export const type_local_i64 = retasmFunc.type_local_i64; export const type_local_f32 = retasmFunc.type_local_f32; |