mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-24 22:52:13 +00:00
Ensure Math.clz32/imul compatibility with JS (#474)
This commit is contained in:
parent
0041572052
commit
6b495f71d0
@ -349,9 +349,17 @@ export namespace NativeMath {
|
||||
return builtin_ceil<f64>(x);
|
||||
}
|
||||
|
||||
@inline
|
||||
export function clz32(x: f64): f64 {
|
||||
return <f64>builtin_clz<i32>(<i32>x);
|
||||
if (!isFinite(x)) return 32;
|
||||
/*
|
||||
* Wasm (MVP) and JS have different approaches for double->int conversions.
|
||||
*
|
||||
* For emulate JS conversion behavior and avoid trapping from wasm we should modulate by MAX_INT
|
||||
* our float-point arguments before actual convertion to integers.
|
||||
*/
|
||||
return builtin_clz(
|
||||
<i32><i64>(x - 4294967296 * builtin_floor(x * (1.0 / 4294967296)))
|
||||
);
|
||||
}
|
||||
|
||||
export function cos(x: f64): f64 { // TODO
|
||||
@ -543,7 +551,7 @@ export namespace NativeMath {
|
||||
|
||||
export function imul(x: f64, y: f64): f64 {
|
||||
/*
|
||||
* Wasm (MVP) and JS have different approachas for double->int conversions.
|
||||
* Wasm (MVP) and JS have different approaches for double->int conversions.
|
||||
*
|
||||
* For emulate JS conversion behavior and avoid trapping from wasm we should modulate by MAX_INT
|
||||
* our float-point arguments before actual convertion to integers.
|
||||
@ -1493,9 +1501,11 @@ export namespace NativeMathf {
|
||||
return builtin_ceil<f32>(x);
|
||||
}
|
||||
|
||||
@inline
|
||||
export function clz32(x: f32): f32 {
|
||||
return <f32>builtin_clz<i32>(<i32>x);
|
||||
if (!isFinite(x)) return 32;
|
||||
return builtin_clz(
|
||||
<i32><i64>(x - 4294967296 * builtin_floor(x * (1.0 / 4294967296)))
|
||||
);
|
||||
}
|
||||
|
||||
export function cos(x: f32): f32 { // TODO
|
||||
@ -1669,7 +1679,18 @@ export namespace NativeMathf {
|
||||
|
||||
@inline
|
||||
export function imul(x: f32, y: f32): f32 {
|
||||
return <f32>(<i32>x * <i32>y);
|
||||
/*
|
||||
* Wasm (MVP) and JS have different approaches for double->int conversions.
|
||||
*
|
||||
* For emulate JS conversion behavior and avoid trapping from wasm we should modulate by MAX_INT
|
||||
* our float-point arguments before actual convertion to integers.
|
||||
*/
|
||||
if (!isFinite(x + y)) return 0;
|
||||
const inv32 = 1.0 / 4294967296;
|
||||
return (
|
||||
<i32><i64>(x - 4294967296 * builtin_floor(x * inv32)) *
|
||||
<i32><i64>(y - 4294967296 * builtin_floor(y * inv32))
|
||||
);
|
||||
}
|
||||
|
||||
export function log(x: f32): f32 { // see: musl/src/math/logf.c and SUN COPYRIGHT NOTICE above
|
||||
|
@ -3876,7 +3876,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 2896
|
||||
i32.const 968
|
||||
i32.const 976
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -5552,7 +5552,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 2896
|
||||
i32.const 977
|
||||
i32.const 985
|
||||
i32.const 24
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
|
@ -5505,7 +5505,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 2896
|
||||
i32.const 968
|
||||
i32.const 976
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -9230,7 +9230,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 2896
|
||||
i32.const 977
|
||||
i32.const 985
|
||||
i32.const 24
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
|
@ -1563,16 +1563,37 @@
|
||||
local.get $0
|
||||
f64.ceil
|
||||
)
|
||||
(func $std/libm/clz32 (; 21 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.clz32 (; 21 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
i32.trunc_f64_s
|
||||
local.get $0
|
||||
f64.sub
|
||||
f64.const 0
|
||||
f64.ne
|
||||
if
|
||||
f64.const 32
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
f64.const 4294967296
|
||||
local.get $0
|
||||
f64.const 2.3283064365386963e-10
|
||||
f64.mul
|
||||
f64.floor
|
||||
f64.mul
|
||||
f64.sub
|
||||
i64.trunc_f64_s
|
||||
i32.wrap_i64
|
||||
i32.clz
|
||||
f64.convert_i32_s
|
||||
)
|
||||
(func $std/libm/cos (; 22 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/clz32 (; 22 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.clz32
|
||||
)
|
||||
(func $std/libm/cos (; 23 ;) (type $FF) (param $0 f64) (result f64)
|
||||
unreachable
|
||||
)
|
||||
(func $~lib/math/NativeMath.expm1 (; 23 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.expm1 (; 24 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 f64)
|
||||
(local $2 f64)
|
||||
(local $3 i32)
|
||||
@ -1851,7 +1872,7 @@
|
||||
local.get $5
|
||||
f64.mul
|
||||
)
|
||||
(func $~lib/math/NativeMath.scalbn (; 24 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64)
|
||||
(func $~lib/math/NativeMath.scalbn (; 25 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64)
|
||||
local.get $1
|
||||
i32.const 1023
|
||||
i32.gt_s
|
||||
@ -1928,7 +1949,7 @@
|
||||
f64.reinterpret_i64
|
||||
f64.mul
|
||||
)
|
||||
(func $~lib/math/NativeMath.exp (; 25 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.exp (; 26 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 i32)
|
||||
(local $2 f64)
|
||||
(local $3 i32)
|
||||
@ -2078,7 +2099,7 @@
|
||||
local.get $3
|
||||
call $~lib/math/NativeMath.scalbn
|
||||
)
|
||||
(func $~lib/math/NativeMath.cosh (; 26 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.cosh (; 27 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 i32)
|
||||
(local $2 i64)
|
||||
local.get $0
|
||||
@ -2142,27 +2163,27 @@
|
||||
f64.const 2247116418577894884661631e283
|
||||
f64.mul
|
||||
)
|
||||
(func $std/libm/cosh (; 27 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/cosh (; 28 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.cosh
|
||||
)
|
||||
(func $std/libm/exp (; 28 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/exp (; 29 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.exp
|
||||
)
|
||||
(func $std/libm/expm1 (; 29 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/expm1 (; 30 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.expm1
|
||||
)
|
||||
(func $std/libm/floor (; 30 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/floor (; 31 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
f64.floor
|
||||
)
|
||||
(func $std/libm/fround (; 31 ;) (type $Ff) (param $0 f64) (result f32)
|
||||
(func $std/libm/fround (; 32 ;) (type $Ff) (param $0 f64) (result f32)
|
||||
local.get $0
|
||||
f32.demote_f64
|
||||
)
|
||||
(func $~lib/math/NativeMath.hypot (; 32 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.hypot (; 33 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(local $2 f64)
|
||||
(local $3 i64)
|
||||
(local $4 f64)
|
||||
@ -2341,12 +2362,12 @@
|
||||
f64.sqrt
|
||||
f64.mul
|
||||
)
|
||||
(func $std/libm/hypot (; 33 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $std/libm/hypot (; 34 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/math/NativeMath.hypot
|
||||
)
|
||||
(func $~lib/math/NativeMath.imul (; 34 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.imul (; 35 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(local $2 f64)
|
||||
local.get $0
|
||||
local.get $1
|
||||
@ -2383,16 +2404,16 @@
|
||||
i32.mul
|
||||
f64.convert_i32_s
|
||||
)
|
||||
(func $std/libm/imul (; 35 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $std/libm/imul (; 36 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/math/NativeMath.imul
|
||||
)
|
||||
(func $std/libm/log (; 36 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/log (; 37 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.log
|
||||
)
|
||||
(func $~lib/math/NativeMath.log10 (; 37 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.log10 (; 38 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 f64)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -2604,15 +2625,15 @@
|
||||
local.get $0
|
||||
f64.add
|
||||
)
|
||||
(func $std/libm/log10 (; 38 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/log10 (; 39 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.log10
|
||||
)
|
||||
(func $std/libm/log1p (; 39 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/log1p (; 40 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.log1p
|
||||
)
|
||||
(func $~lib/math/NativeMath.log2 (; 40 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.log2 (; 41 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 f64)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -2818,21 +2839,21 @@
|
||||
local.get $0
|
||||
f64.add
|
||||
)
|
||||
(func $std/libm/log2 (; 41 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/log2 (; 42 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.log2
|
||||
)
|
||||
(func $std/libm/max (; 42 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $std/libm/max (; 43 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
local.get $0
|
||||
local.get $1
|
||||
f64.max
|
||||
)
|
||||
(func $std/libm/min (; 43 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $std/libm/min (; 44 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
local.get $0
|
||||
local.get $1
|
||||
f64.min
|
||||
)
|
||||
(func $~lib/math/NativeMath.pow (; 44 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.pow (; 45 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(local $2 f64)
|
||||
(local $3 f64)
|
||||
(local $4 i32)
|
||||
@ -3782,12 +3803,12 @@
|
||||
f64.const 1e-300
|
||||
f64.mul
|
||||
)
|
||||
(func $std/libm/pow (; 45 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $std/libm/pow (; 46 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/math/NativeMath.pow
|
||||
)
|
||||
(func $std/libm/round (; 46 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/round (; 47 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
f64.const 0.5
|
||||
f64.add
|
||||
@ -3795,7 +3816,7 @@
|
||||
local.get $0
|
||||
f64.copysign
|
||||
)
|
||||
(func $std/libm/sign (; 47 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/sign (; 48 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
f64.const 0
|
||||
f64.gt
|
||||
@ -3813,7 +3834,7 @@
|
||||
end
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/math/NativeMath.sinh (; 48 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.sinh (; 49 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 f64)
|
||||
(local $2 f64)
|
||||
(local $3 i32)
|
||||
@ -3890,15 +3911,15 @@
|
||||
f64.mul
|
||||
f64.mul
|
||||
)
|
||||
(func $std/libm/sinh (; 49 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/sinh (; 50 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.sinh
|
||||
)
|
||||
(func $std/libm/sqrt (; 50 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/sqrt (; 51 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
f64.sqrt
|
||||
)
|
||||
(func $~lib/math/NativeMath.tanh (; 51 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.tanh (; 52 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 f64)
|
||||
(local $2 i32)
|
||||
(local $3 i64)
|
||||
@ -3977,15 +3998,15 @@
|
||||
local.get $0
|
||||
f64.copysign
|
||||
)
|
||||
(func $std/libm/tanh (; 52 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/tanh (; 53 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.tanh
|
||||
)
|
||||
(func $std/libm/trunc (; 53 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/trunc (; 54 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
f64.trunc
|
||||
)
|
||||
(func $null (; 54 ;) (type $_)
|
||||
(func $null (; 55 ;) (type $_)
|
||||
nop
|
||||
)
|
||||
)
|
||||
|
@ -1923,24 +1923,49 @@
|
||||
local.get $1
|
||||
f64.ceil
|
||||
)
|
||||
(func $std/libm/clz32 (; 22 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 f64)
|
||||
(func $~lib/builtins/isFinite<f64> (; 22 ;) (type $Fi) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.set $1
|
||||
local.get $1
|
||||
i32.trunc_f64_s
|
||||
local.get $0
|
||||
f64.sub
|
||||
f64.const 0
|
||||
f64.eq
|
||||
)
|
||||
(func $~lib/math/NativeMath.clz32 (; 23 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
f64.const 32
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
f64.const 4294967296
|
||||
local.get $0
|
||||
f64.const 1
|
||||
f64.const 4294967296
|
||||
f64.div
|
||||
f64.mul
|
||||
f64.floor
|
||||
f64.mul
|
||||
f64.sub
|
||||
i64.trunc_f64_s
|
||||
i32.wrap_i64
|
||||
i32.clz
|
||||
f64.convert_i32_s
|
||||
)
|
||||
(func $~lib/math/NativeMath.cos (; 23 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/clz32 (; 24 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.clz32
|
||||
)
|
||||
(func $~lib/math/NativeMath.cos (; 25 ;) (type $FF) (param $0 f64) (result f64)
|
||||
unreachable
|
||||
f64.const 0
|
||||
)
|
||||
(func $std/libm/cos (; 24 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/cos (; 26 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.cos
|
||||
)
|
||||
(func $~lib/math/NativeMath.expm1 (; 25 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.expm1 (; 27 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 i64)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -2254,7 +2279,7 @@
|
||||
local.get $14
|
||||
f64.mul
|
||||
)
|
||||
(func $~lib/math/NativeMath.scalbn (; 26 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64)
|
||||
(func $~lib/math/NativeMath.scalbn (; 28 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64)
|
||||
(local $2 f64)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -2345,7 +2370,7 @@
|
||||
f64.reinterpret_i64
|
||||
f64.mul
|
||||
)
|
||||
(func $~lib/math/NativeMath.exp (; 27 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.exp (; 29 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 f64)
|
||||
@ -2510,7 +2535,7 @@
|
||||
local.get $5
|
||||
call $~lib/math/NativeMath.scalbn
|
||||
)
|
||||
(func $~lib/math/NativeMath.cosh (; 28 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.cosh (; 30 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 i64)
|
||||
(local $2 i32)
|
||||
(local $3 f64)
|
||||
@ -2605,33 +2630,33 @@
|
||||
local.set $3
|
||||
local.get $3
|
||||
)
|
||||
(func $std/libm/cosh (; 29 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/cosh (; 31 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.cosh
|
||||
)
|
||||
(func $std/libm/exp (; 30 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/exp (; 32 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.exp
|
||||
)
|
||||
(func $std/libm/expm1 (; 31 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/expm1 (; 33 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.expm1
|
||||
)
|
||||
(func $std/libm/floor (; 32 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/floor (; 34 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 f64)
|
||||
local.get $0
|
||||
local.set $1
|
||||
local.get $1
|
||||
f64.floor
|
||||
)
|
||||
(func $std/libm/fround (; 33 ;) (type $Ff) (param $0 f64) (result f32)
|
||||
(func $std/libm/fround (; 35 ;) (type $Ff) (param $0 f64) (result f32)
|
||||
(local $1 f64)
|
||||
local.get $0
|
||||
local.set $1
|
||||
local.get $1
|
||||
f32.demote_f64
|
||||
)
|
||||
(func $~lib/math/NativeMath.hypot (; 34 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.hypot (; 36 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(local $2 i64)
|
||||
(local $3 i64)
|
||||
(local $4 i64)
|
||||
@ -2832,19 +2857,12 @@
|
||||
f64.sqrt
|
||||
f64.mul
|
||||
)
|
||||
(func $std/libm/hypot (; 35 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $std/libm/hypot (; 37 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/math/NativeMath.hypot
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f64> (; 36 ;) (type $Fi) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.sub
|
||||
f64.const 0
|
||||
f64.eq
|
||||
)
|
||||
(func $~lib/math/NativeMath.imul (; 37 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.imul (; 38 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
local.get $0
|
||||
local.get $1
|
||||
f64.add
|
||||
@ -2877,16 +2895,16 @@
|
||||
i32.mul
|
||||
f64.convert_i32_s
|
||||
)
|
||||
(func $std/libm/imul (; 38 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $std/libm/imul (; 39 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/math/NativeMath.imul
|
||||
)
|
||||
(func $std/libm/log (; 39 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/log (; 40 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.log
|
||||
)
|
||||
(func $~lib/math/NativeMath.log10 (; 40 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.log10 (; 41 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 i64)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -3149,15 +3167,15 @@
|
||||
local.get $9
|
||||
f64.add
|
||||
)
|
||||
(func $std/libm/log10 (; 41 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/log10 (; 42 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.log10
|
||||
)
|
||||
(func $std/libm/log1p (; 42 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/log1p (; 43 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.log1p
|
||||
)
|
||||
(func $~lib/math/NativeMath.log2 (; 43 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.log2 (; 44 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 i64)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -3413,11 +3431,11 @@
|
||||
local.get $15
|
||||
f64.add
|
||||
)
|
||||
(func $std/libm/log2 (; 44 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/log2 (; 45 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.log2
|
||||
)
|
||||
(func $std/libm/max (; 45 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $std/libm/max (; 46 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(local $2 f64)
|
||||
(local $3 f64)
|
||||
local.get $0
|
||||
@ -3428,7 +3446,7 @@
|
||||
local.get $3
|
||||
f64.max
|
||||
)
|
||||
(func $std/libm/min (; 46 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $std/libm/min (; 47 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(local $2 f64)
|
||||
(local $3 f64)
|
||||
local.get $0
|
||||
@ -3439,7 +3457,7 @@
|
||||
local.get $3
|
||||
f64.min
|
||||
)
|
||||
(func $~lib/math/NativeMath.pow (; 47 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.pow (; 48 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(local $2 i64)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -4527,12 +4545,12 @@
|
||||
local.get $16
|
||||
f64.mul
|
||||
)
|
||||
(func $std/libm/pow (; 48 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
(func $std/libm/pow (; 49 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/math/NativeMath.pow
|
||||
)
|
||||
(func $std/libm/round (; 49 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/round (; 50 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 f64)
|
||||
local.get $0
|
||||
local.set $1
|
||||
@ -4543,7 +4561,7 @@
|
||||
local.get $1
|
||||
f64.copysign
|
||||
)
|
||||
(func $std/libm/sign (; 50 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/sign (; 51 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 f64)
|
||||
block $~lib/math/NativeMath.sign|inlined.0 (result f64)
|
||||
local.get $0
|
||||
@ -4566,15 +4584,15 @@
|
||||
br $~lib/math/NativeMath.sign|inlined.0
|
||||
end
|
||||
)
|
||||
(func $~lib/math/NativeMath.sin (; 51 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.sin (; 52 ;) (type $FF) (param $0 f64) (result f64)
|
||||
unreachable
|
||||
f64.const 0
|
||||
)
|
||||
(func $std/libm/sin (; 52 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/sin (; 53 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.sin
|
||||
)
|
||||
(func $~lib/math/NativeMath.sinh (; 53 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.sinh (; 54 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 i64)
|
||||
(local $2 f64)
|
||||
(local $3 i32)
|
||||
@ -4678,26 +4696,26 @@
|
||||
local.set $4
|
||||
local.get $4
|
||||
)
|
||||
(func $std/libm/sinh (; 54 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/sinh (; 55 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.sinh
|
||||
)
|
||||
(func $std/libm/sqrt (; 55 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/sqrt (; 56 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 f64)
|
||||
local.get $0
|
||||
local.set $1
|
||||
local.get $1
|
||||
f64.sqrt
|
||||
)
|
||||
(func $~lib/math/NativeMath.tan (; 56 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.tan (; 57 ;) (type $FF) (param $0 f64) (result f64)
|
||||
unreachable
|
||||
f64.const 0
|
||||
)
|
||||
(func $std/libm/tan (; 57 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/tan (; 58 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.tan
|
||||
)
|
||||
(func $~lib/math/NativeMath.tanh (; 58 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $~lib/math/NativeMath.tanh (; 59 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 i64)
|
||||
(local $2 f64)
|
||||
(local $3 i32)
|
||||
@ -4789,17 +4807,17 @@
|
||||
local.get $0
|
||||
f64.copysign
|
||||
)
|
||||
(func $std/libm/tanh (; 59 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/tanh (; 60 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.tanh
|
||||
)
|
||||
(func $std/libm/trunc (; 60 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(func $std/libm/trunc (; 61 ;) (type $FF) (param $0 f64) (result f64)
|
||||
(local $1 f64)
|
||||
local.get $0
|
||||
local.set $1
|
||||
local.get $1
|
||||
f64.trunc
|
||||
)
|
||||
(func $null (; 61 ;) (type $_)
|
||||
(func $null (; 62 ;) (type $_)
|
||||
)
|
||||
)
|
||||
|
@ -8001,7 +8001,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 40
|
||||
i32.const 968
|
||||
i32.const 976
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -8067,7 +8067,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 40
|
||||
i32.const 977
|
||||
i32.const 985
|
||||
i32.const 24
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -8114,7 +8114,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 40
|
||||
i32.const 2044
|
||||
i32.const 2065
|
||||
i32.const 24
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -9222,7 +9222,30 @@
|
||||
i32.mul
|
||||
f64.convert_i32_s
|
||||
)
|
||||
(func $~lib/math/ipow64 (; 146 ;) (type $IiI) (param $0 i64) (param $1 i32) (result i64)
|
||||
(func $~lib/math/NativeMath.clz32 (; 146 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.sub
|
||||
f64.const 0
|
||||
f64.ne
|
||||
if
|
||||
f64.const 32
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
f64.const 4294967296
|
||||
local.get $0
|
||||
f64.const 2.3283064365386963e-10
|
||||
f64.mul
|
||||
f64.floor
|
||||
f64.mul
|
||||
f64.sub
|
||||
i64.trunc_f64_s
|
||||
i32.wrap_i64
|
||||
i32.clz
|
||||
f64.convert_i32_s
|
||||
)
|
||||
(func $~lib/math/ipow64 (; 147 ;) (type $IiI) (param $0 i64) (param $1 i32) (result i64)
|
||||
(local $2 i64)
|
||||
(local $3 i32)
|
||||
i64.const 1
|
||||
@ -9418,7 +9441,7 @@
|
||||
end
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/math/ipow32f (; 147 ;) (type $fif) (param $0 f32) (param $1 i32) (result f32)
|
||||
(func $~lib/math/ipow32f (; 148 ;) (type $fif) (param $0 f32) (param $1 i32) (result f32)
|
||||
(local $2 f32)
|
||||
(local $3 i32)
|
||||
local.get $1
|
||||
@ -9464,7 +9487,7 @@
|
||||
end
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/math/ipow64f (; 148 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64)
|
||||
(func $~lib/math/ipow64f (; 149 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64)
|
||||
(local $2 f64)
|
||||
(local $3 i32)
|
||||
local.get $1
|
||||
@ -9510,7 +9533,7 @@
|
||||
end
|
||||
local.get $2
|
||||
)
|
||||
(func $start:std/math (; 149 ;) (type $_)
|
||||
(func $start:std/math (; 150 ;) (type $_)
|
||||
(local $0 f64)
|
||||
(local $1 f32)
|
||||
(local $2 i32)
|
||||
@ -37846,11 +37869,10 @@
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
i64.const 0
|
||||
i32.const 0
|
||||
call $~lib/math/ipow64
|
||||
i64.const 1
|
||||
i64.ne
|
||||
f64.const 0
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
@ -37859,11 +37881,10 @@
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
i64.const 0
|
||||
i32.const 1
|
||||
call $~lib/math/ipow64
|
||||
i64.const 0
|
||||
i64.ne
|
||||
f64.const 1
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 31
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
@ -37872,11 +37893,10 @@
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
i64.const 0
|
||||
i32.const 2
|
||||
call $~lib/math/ipow64
|
||||
i64.const 0
|
||||
i64.ne
|
||||
f64.const -1
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 0
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
@ -37885,6 +37905,201 @@
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const -128
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 0
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3292
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const 4294967295
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 0
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3293
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const 4294967295.5
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 0
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3294
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const 4294967296
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3295
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const 4294967297
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 31
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3296
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const nan:0x8000000000000
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3297
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const inf
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3298
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const 9007199254740991
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 0
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3299
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const -9007199254740991
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 31
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3300
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const 1797693134862315708145274e284
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3301
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const 5e-324
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3302
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const -1797693134862315708145274e284
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3303
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const 2.220446049250313e-16
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3304
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
i64.const 0
|
||||
i32.const 0
|
||||
call $~lib/math/ipow64
|
||||
i64.const 1
|
||||
i64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3308
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
i64.const 0
|
||||
i32.const 1
|
||||
call $~lib/math/ipow64
|
||||
i64.const 0
|
||||
i64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3309
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
i64.const 0
|
||||
i32.const 2
|
||||
call $~lib/math/ipow64
|
||||
i64.const 0
|
||||
i64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3310
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
i64.const 0
|
||||
i32.const 3
|
||||
call $~lib/math/ipow64
|
||||
@ -37893,7 +38108,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3292
|
||||
i32.const 3311
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -37906,7 +38121,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3294
|
||||
i32.const 3313
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -37919,7 +38134,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3295
|
||||
i32.const 3314
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -37932,7 +38147,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3296
|
||||
i32.const 3315
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -37945,7 +38160,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3297
|
||||
i32.const 3316
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -37958,7 +38173,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3299
|
||||
i32.const 3318
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -37971,7 +38186,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3300
|
||||
i32.const 3319
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -37984,7 +38199,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3301
|
||||
i32.const 3320
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -37997,7 +38212,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3302
|
||||
i32.const 3321
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38010,7 +38225,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3304
|
||||
i32.const 3323
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38023,7 +38238,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3305
|
||||
i32.const 3324
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38036,7 +38251,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3306
|
||||
i32.const 3325
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38049,7 +38264,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3307
|
||||
i32.const 3326
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38062,7 +38277,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3309
|
||||
i32.const 3328
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38075,7 +38290,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3310
|
||||
i32.const 3329
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38088,7 +38303,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3311
|
||||
i32.const 3330
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38101,7 +38316,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3312
|
||||
i32.const 3331
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38114,7 +38329,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3314
|
||||
i32.const 3333
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38127,7 +38342,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3315
|
||||
i32.const 3334
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38140,7 +38355,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3316
|
||||
i32.const 3335
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38153,7 +38368,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3317
|
||||
i32.const 3336
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38166,7 +38381,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3318
|
||||
i32.const 3337
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38179,7 +38394,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3319
|
||||
i32.const 3338
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38192,7 +38407,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3320
|
||||
i32.const 3339
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38209,7 +38424,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3322
|
||||
i32.const 3341
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38222,7 +38437,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3326
|
||||
i32.const 3345
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38235,7 +38450,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3327
|
||||
i32.const 3346
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38249,7 +38464,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3328
|
||||
i32.const 3347
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38263,7 +38478,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3329
|
||||
i32.const 3348
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38277,7 +38492,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3330
|
||||
i32.const 3349
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38290,7 +38505,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3331
|
||||
i32.const 3350
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38303,7 +38518,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3332
|
||||
i32.const 3351
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38316,7 +38531,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3333
|
||||
i32.const 3352
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38329,7 +38544,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3334
|
||||
i32.const 3353
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38342,7 +38557,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3335
|
||||
i32.const 3354
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38355,7 +38570,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3336
|
||||
i32.const 3355
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38368,7 +38583,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3337
|
||||
i32.const 3356
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38381,7 +38596,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3338
|
||||
i32.const 3357
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38394,7 +38609,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3339
|
||||
i32.const 3358
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38407,7 +38622,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3340
|
||||
i32.const 3359
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38420,7 +38635,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3341
|
||||
i32.const 3360
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38433,7 +38648,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3345
|
||||
i32.const 3364
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38446,7 +38661,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3346
|
||||
i32.const 3365
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38460,7 +38675,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3347
|
||||
i32.const 3366
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38474,7 +38689,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3348
|
||||
i32.const 3367
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38488,7 +38703,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3349
|
||||
i32.const 3368
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38501,7 +38716,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3350
|
||||
i32.const 3369
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38514,7 +38729,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3351
|
||||
i32.const 3370
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38527,7 +38742,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3352
|
||||
i32.const 3371
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38540,7 +38755,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3353
|
||||
i32.const 3372
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38553,7 +38768,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3354
|
||||
i32.const 3373
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38566,7 +38781,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3355
|
||||
i32.const 3374
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38579,7 +38794,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3356
|
||||
i32.const 3375
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38592,7 +38807,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3357
|
||||
i32.const 3376
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38605,7 +38820,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3358
|
||||
i32.const 3377
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38618,7 +38833,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3359
|
||||
i32.const 3378
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -38631,16 +38846,16 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3360
|
||||
i32.const 3379
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
)
|
||||
(func $start (; 150 ;) (type $_)
|
||||
(func $start (; 151 ;) (type $_)
|
||||
call $start:std/math
|
||||
)
|
||||
(func $null (; 151 ;) (type $_)
|
||||
(func $null (; 152 ;) (type $_)
|
||||
nop
|
||||
)
|
||||
)
|
||||
|
@ -3284,6 +3284,25 @@ assert(NativeMath.imul(NaN, 1) == 0);
|
||||
assert(NativeMath.imul(1, Infinity) == 0);
|
||||
assert(NativeMath.imul(f64.MAX_VALUE, f64.MAX_VALUE) == 0);
|
||||
|
||||
// Math.clz32 /////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
assert(NativeMath.clz32(0) == 32);
|
||||
assert(NativeMath.clz32(1) == 31);
|
||||
assert(NativeMath.clz32(-1) == 0);
|
||||
assert(NativeMath.clz32(-128) == 0);
|
||||
assert(NativeMath.clz32(4294967295.) == 0);
|
||||
assert(NativeMath.clz32(4294967295.5) == 0);
|
||||
assert(NativeMath.clz32(4294967296) == 32);
|
||||
assert(NativeMath.clz32(4294967297) == 31);
|
||||
assert(NativeMath.clz32(NaN) == 32);
|
||||
assert(NativeMath.clz32(Infinity) == 32);
|
||||
assert(NativeMath.clz32(f64.MAX_SAFE_INTEGER) == 0);
|
||||
assert(NativeMath.clz32(-f64.MAX_SAFE_INTEGER) == 31);
|
||||
assert(NativeMath.clz32(f64.MAX_VALUE) == 32);
|
||||
assert(NativeMath.clz32(f64.MIN_VALUE) == 32);
|
||||
assert(NativeMath.clz32(-f64.MAX_VALUE) == 32);
|
||||
assert(NativeMath.clz32(f64.EPSILON) == 32);
|
||||
|
||||
// ipow64 /////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
assert(ipow64(0, 0) == 1);
|
||||
|
@ -93,6 +93,8 @@
|
||||
(global $~lib/math/random_state1_32 (mut i32) (i32.const 0))
|
||||
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
|
||||
(global $~lib/builtins/f64.MAX_VALUE f64 (f64.const 1797693134862315708145274e284))
|
||||
(global $~lib/builtins/f64.MAX_SAFE_INTEGER f64 (f64.const 9007199254740991))
|
||||
(global $~lib/builtins/f64.EPSILON f64 (f64.const 2.220446049250313e-16))
|
||||
(global $~lib/builtins/f32.MAX_VALUE f32 (f32.const 3402823466385288598117041e14))
|
||||
(global $~lib/builtins/f32.MIN_VALUE f32 (f32.const 1.401298464324817e-45))
|
||||
(global $~lib/memory/HEAP_BASE i32 (i32.const 68))
|
||||
@ -9772,7 +9774,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 40
|
||||
i32.const 968
|
||||
i32.const 976
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -9804,7 +9806,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 40
|
||||
i32.const 977
|
||||
i32.const 985
|
||||
i32.const 24
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -9861,7 +9863,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 40
|
||||
i32.const 2044
|
||||
i32.const 2065
|
||||
i32.const 24
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -11245,7 +11247,30 @@
|
||||
i32.mul
|
||||
f64.convert_i32_s
|
||||
)
|
||||
(func $~lib/math/ipow64 (; 154 ;) (type $IiI) (param $0 i64) (param $1 i32) (result i64)
|
||||
(func $~lib/math/NativeMath.clz32 (; 154 ;) (type $FF) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
f64.const 32
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
f64.const 4294967296
|
||||
local.get $0
|
||||
f64.const 1
|
||||
f64.const 4294967296
|
||||
f64.div
|
||||
f64.mul
|
||||
f64.floor
|
||||
f64.mul
|
||||
f64.sub
|
||||
i64.trunc_f64_s
|
||||
i32.wrap_i64
|
||||
i32.clz
|
||||
f64.convert_i32_s
|
||||
)
|
||||
(func $~lib/math/ipow64 (; 155 ;) (type $IiI) (param $0 i64) (param $1 i32) (result i64)
|
||||
(local $2 i64)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -11477,7 +11502,7 @@
|
||||
end
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/math/ipow32f (; 155 ;) (type $fif) (param $0 f32) (param $1 i32) (result f32)
|
||||
(func $~lib/math/ipow32f (; 156 ;) (type $fif) (param $0 f32) (param $1 i32) (result f32)
|
||||
(local $2 i32)
|
||||
(local $3 f32)
|
||||
local.get $1
|
||||
@ -11528,7 +11553,7 @@
|
||||
local.get $3
|
||||
end
|
||||
)
|
||||
(func $~lib/math/ipow64f (; 156 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64)
|
||||
(func $~lib/math/ipow64f (; 157 ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64)
|
||||
(local $2 i32)
|
||||
(local $3 f64)
|
||||
local.get $1
|
||||
@ -11579,7 +11604,7 @@
|
||||
local.get $3
|
||||
end
|
||||
)
|
||||
(func $start:std/math (; 157 ;) (type $_)
|
||||
(func $start:std/math (; 158 ;) (type $_)
|
||||
(local $0 i32)
|
||||
(local $1 f64)
|
||||
(local $2 i32)
|
||||
@ -42118,11 +42143,10 @@
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
i64.const 0
|
||||
i32.const 0
|
||||
call $~lib/math/ipow64
|
||||
i64.const 1
|
||||
i64.eq
|
||||
f64.const 0
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -42132,11 +42156,10 @@
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
i64.const 0
|
||||
i32.const 1
|
||||
call $~lib/math/ipow64
|
||||
i64.const 0
|
||||
i64.eq
|
||||
f64.const 1
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 31
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -42146,11 +42169,10 @@
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
i64.const 0
|
||||
i32.const 2
|
||||
call $~lib/math/ipow64
|
||||
i64.const 0
|
||||
i64.eq
|
||||
f64.const -1
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 0
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -42160,6 +42182,219 @@
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const -128
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 0
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3292
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const 4294967295
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 0
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3293
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const 4294967295.5
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 0
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3294
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const 4294967296
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3295
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const 4294967297
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 31
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3296
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const nan:0x8000000000000
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3297
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
f64.const inf
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3298
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
global.get $~lib/builtins/f64.MAX_SAFE_INTEGER
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 0
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3299
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
global.get $~lib/builtins/f64.MAX_SAFE_INTEGER
|
||||
f64.neg
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 31
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3300
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
global.get $~lib/builtins/f64.MAX_VALUE
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3301
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
global.get $~lib/builtins/f64.MIN_VALUE
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3302
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
global.get $~lib/builtins/f64.MAX_VALUE
|
||||
f64.neg
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3303
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
global.get $~lib/builtins/f64.EPSILON
|
||||
call $~lib/math/NativeMath.clz32
|
||||
f64.const 32
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3304
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
i64.const 0
|
||||
i32.const 0
|
||||
call $~lib/math/ipow64
|
||||
i64.const 1
|
||||
i64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3308
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
i64.const 0
|
||||
i32.const 1
|
||||
call $~lib/math/ipow64
|
||||
i64.const 0
|
||||
i64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3309
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
i64.const 0
|
||||
i32.const 2
|
||||
call $~lib/math/ipow64
|
||||
i64.const 0
|
||||
i64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3310
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
i64.const 0
|
||||
i32.const 3
|
||||
call $~lib/math/ipow64
|
||||
@ -42169,7 +42404,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3292
|
||||
i32.const 3311
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42183,7 +42418,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3294
|
||||
i32.const 3313
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42197,7 +42432,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3295
|
||||
i32.const 3314
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42211,7 +42446,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3296
|
||||
i32.const 3315
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42225,7 +42460,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3297
|
||||
i32.const 3316
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42239,7 +42474,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3299
|
||||
i32.const 3318
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42253,7 +42488,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3300
|
||||
i32.const 3319
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42267,7 +42502,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3301
|
||||
i32.const 3320
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42281,7 +42516,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3302
|
||||
i32.const 3321
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42295,7 +42530,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3304
|
||||
i32.const 3323
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42309,7 +42544,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3305
|
||||
i32.const 3324
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42323,7 +42558,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3306
|
||||
i32.const 3325
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42337,7 +42572,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3307
|
||||
i32.const 3326
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42351,7 +42586,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3309
|
||||
i32.const 3328
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42365,7 +42600,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3310
|
||||
i32.const 3329
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42379,7 +42614,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3311
|
||||
i32.const 3330
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42393,7 +42628,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3312
|
||||
i32.const 3331
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42407,7 +42642,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3314
|
||||
i32.const 3333
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42421,7 +42656,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3315
|
||||
i32.const 3334
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42435,7 +42670,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3316
|
||||
i32.const 3335
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42449,7 +42684,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3317
|
||||
i32.const 3336
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42463,7 +42698,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3318
|
||||
i32.const 3337
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42477,7 +42712,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3319
|
||||
i32.const 3338
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42491,7 +42726,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3320
|
||||
i32.const 3339
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42509,7 +42744,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3322
|
||||
i32.const 3341
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42523,7 +42758,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3326
|
||||
i32.const 3345
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42537,7 +42772,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3327
|
||||
i32.const 3346
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42557,7 +42792,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3328
|
||||
i32.const 3347
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42577,7 +42812,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3329
|
||||
i32.const 3348
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42597,7 +42832,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3330
|
||||
i32.const 3349
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42611,7 +42846,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3331
|
||||
i32.const 3350
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42625,7 +42860,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3332
|
||||
i32.const 3351
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42640,7 +42875,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3333
|
||||
i32.const 3352
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42656,7 +42891,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3334
|
||||
i32.const 3353
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42671,7 +42906,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3335
|
||||
i32.const 3354
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42685,7 +42920,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3336
|
||||
i32.const 3355
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42699,7 +42934,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3337
|
||||
i32.const 3356
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42713,7 +42948,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3338
|
||||
i32.const 3357
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42727,7 +42962,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3339
|
||||
i32.const 3358
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42741,7 +42976,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3340
|
||||
i32.const 3359
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42755,7 +42990,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3341
|
||||
i32.const 3360
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42769,7 +43004,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3345
|
||||
i32.const 3364
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42783,7 +43018,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3346
|
||||
i32.const 3365
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42796,7 +43031,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3347
|
||||
i32.const 3366
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42809,7 +43044,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3348
|
||||
i32.const 3367
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42822,7 +43057,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3349
|
||||
i32.const 3368
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42836,7 +43071,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3350
|
||||
i32.const 3369
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42850,7 +43085,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3351
|
||||
i32.const 3370
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42865,7 +43100,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3352
|
||||
i32.const 3371
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42881,7 +43116,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3353
|
||||
i32.const 3372
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42896,7 +43131,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3354
|
||||
i32.const 3373
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42910,7 +43145,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3355
|
||||
i32.const 3374
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42924,7 +43159,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3356
|
||||
i32.const 3375
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42938,7 +43173,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3357
|
||||
i32.const 3376
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42952,7 +43187,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3358
|
||||
i32.const 3377
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42966,7 +43201,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3359
|
||||
i32.const 3378
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -42980,15 +43215,15 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 8
|
||||
i32.const 3360
|
||||
i32.const 3379
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
)
|
||||
(func $start (; 158 ;) (type $_)
|
||||
(func $start (; 159 ;) (type $_)
|
||||
call $start:std/math
|
||||
)
|
||||
(func $null (; 159 ;) (type $_)
|
||||
(func $null (; 160 ;) (type $_)
|
||||
)
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user