| import { setTempRet0 } from 'env'; |
| |
| function asmFunc(env) { |
| 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 abort = env.abort; |
| var nan = NaN; |
| var infinity = Infinity; |
| var setTempRet0 = env.setTempRet0; |
| var i64toi32_i32$HIGH_BITS = 0; |
| function legalstub$popcnt64($0, $1) { |
| $0 = __wasm_popcnt_i64($0, $1); |
| setTempRet0(i64toi32_i32$HIGH_BITS | 0); |
| return $0; |
| } |
| |
| function legalstub$ctz64($0, $1) { |
| $0 = __wasm_ctz_i64($0, $1); |
| setTempRet0(i64toi32_i32$HIGH_BITS | 0); |
| return $0; |
| } |
| |
| function __wasm_ctz_i64($0, $1) { |
| var $2 = 0, $3 = 0; |
| if ($0 | $1) { |
| $2 = $1 - 1 | 0; |
| $3 = $0 - 1 | 0; |
| $2 = ($3 | 0) != -1 ? $2 + 1 | 0 : $2; |
| $3 = Math_clz32($0 ^ $3) + 32 | 0; |
| $0 = Math_clz32($1 ^ $2); |
| $0 = ($0 | 0) == 32 ? $3 : $0; |
| $1 = 63 - $0 | 0; |
| i64toi32_i32$HIGH_BITS = 0 - ($0 >>> 0 > 63) | 0; |
| return $1; |
| } |
| i64toi32_i32$HIGH_BITS = 0; |
| return 64; |
| } |
| |
| function __wasm_popcnt_i64($0, $1) { |
| var $2 = 0, $3 = 0, $4 = 0, $5 = 0; |
| while (1) { |
| $5 = $4; |
| $2 = $3; |
| if ($0 | $1) { |
| $2 = $0; |
| $0 = $2 - 1 & $2; |
| $1 = $1 - ($2 >>> 0 < 1) & $1; |
| $2 = $4 + 1 | 0; |
| $3 = $2 >>> 0 < 1 ? $3 + 1 | 0 : $3; |
| $4 = $2; |
| continue; |
| } |
| break; |
| }; |
| i64toi32_i32$HIGH_BITS = $2; |
| return $5; |
| } |
| |
| return { |
| "a": legalstub$popcnt64, |
| "b": legalstub$ctz64 |
| }; |
| } |
| |
| var retasmFunc = asmFunc( { abort: function() { throw new Error('abort'); }, |
| setTempRet0 |
| }); |
| export var a = retasmFunc.a; |
| export var b = retasmFunc.b; |