Inline small stdlib functions (#71)

This commit is contained in:
Max Graey 2018-04-12 15:17:30 +03:00 committed by Daniel Wirtz
parent 5b97427bfa
commit 2002e32c9c
8 changed files with 841 additions and 910 deletions

View File

@ -8,6 +8,7 @@ import {
} from "../array";
/** Obtains the default comparator for the specified type. */
@inline
export function defaultComparator<T>(): (a: T, b: T) => i32 {
return (a: T, b: T): i32 => (<i32>(a > b) - <i32>(a < b)); // compiles to a constant table index
}

View File

@ -118,6 +118,7 @@ export namespace NativeMath {
export const SQRT1_2 = reinterpret<f64>(0x3FE6A09E667F3BCD); // 0.70710678118654752440
export const SQRT2 = reinterpret<f64>(0x3FF6A09E667F3BCD); // 1.41421356237309504880
@inline
export function abs(x: f64): f64 {
return builtin_abs<f64>(x);
}
@ -380,10 +381,12 @@ export namespace NativeMath {
return t;
}
@inline
export function ceil(x: f64): f64 {
return builtin_ceil<f64>(x);
}
@inline
export function clz32(x: f64): f64 {
return <f64>builtin_clz<i32>(<i32>x);
}
@ -530,10 +533,12 @@ export namespace NativeMath {
return y;
}
@inline
export function floor(x: f64): f64 {
return builtin_floor<f64>(x);
}
@inline
export function fround(x: f64): f32 {
return <f32>x;
}
@ -784,10 +789,12 @@ export namespace NativeMath {
return val_lo + val_hi;
}
@inline
export function max(value1: f64, value2: f64): f64 {
return builtin_max<f64>(value1, value2);
}
@inline
export function min(value1: f64, value2: f64): f64 {
return builtin_min<f64>(value1, value2);
}
@ -1033,6 +1040,7 @@ export namespace NativeMath {
return y;
}
@inline
export function sign(x: f64): f64 {
return x > 0 ? 1 : x < 0 ? -1 : x;
}
@ -1062,6 +1070,7 @@ export namespace NativeMath {
return t;
}
@inline
export function sqrt(x: f64): f64 {
return builtin_sqrt<f64>(x);
}
@ -1095,6 +1104,7 @@ export namespace NativeMath {
return sign_ ? -t : t;
}
@inline
export function trunc(x: f64): f64 {
return builtin_trunc<f64>(x);
}
@ -1271,6 +1281,7 @@ export namespace NativeMathf {
export const SQRT1_2 = <f32>NativeMath.SQRT1_2;
export const SQRT2 = <f32>NativeMath.SQRT2;
@inline
export function abs(x: f32): f32 {
return builtin_abs<f32>(x);
}
@ -1504,10 +1515,12 @@ export namespace NativeMathf {
return <f32>T;
}
@inline
export function ceil(x: f32): f32 {
return builtin_ceil<f32>(x);
}
@inline
export function clz32(x: f32): f32 {
return <f32>builtin_clz<i32>(<i32>x);
}
@ -1533,6 +1546,7 @@ export namespace NativeMathf {
return expo2f(x);
}
@inline
export function floor(x: f32): f32 {
return builtin_floor<f32>(x);
}
@ -1652,6 +1666,7 @@ export namespace NativeMathf {
return y;
}
@inline
export function fround(x: f32): f32 {
return x;
}
@ -1686,6 +1701,7 @@ export namespace NativeMathf {
return z * builtin_sqrt<f32>(<f32>(<f64>x * x + <f64>y * y));
}
@inline
export function imul(x: f32, y: f32): f32 {
return <f32>(<i32>x * <i32>y);
}
@ -1853,10 +1869,12 @@ export namespace NativeMathf {
return (lo + hi) * ivln2lo + lo * ivln2hi + hi * ivln2hi + dk;
}
@inline
export function max(value1: f32, value2: f32): f32 {
return builtin_max<f32>(value1, value2);
}
@inline
export function min(value1: f32, value2: f32): f32 {
return builtin_min<f32>(value1, value2);
}
@ -2042,6 +2060,7 @@ export namespace NativeMathf {
return sn * z;
}
@inline
export function seedRandom(value: i64): void {
NativeMath.seedRandom(value);
}
@ -2075,6 +2094,7 @@ export namespace NativeMathf {
return y;
}
@inline
export function sign(x: f32): f32 {
return x > 0 ? 1 : x < 0 ? -1 : x;
}
@ -2103,6 +2123,7 @@ export namespace NativeMathf {
return t;
}
@inline
export function sqrt(x: f32): f32 {
return builtin_sqrt<f32>(x);
}
@ -2134,6 +2155,7 @@ export namespace NativeMathf {
return sig ? -t : t;
}
@inline
export function trunc(x: f32): f32 {
return builtin_trunc<f32>(x);
}

View File

@ -1,5 +1,4 @@
(module
(type $i (func (result i32)))
(type $iii (func (param i32 i32) (result i32)))
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $ii (func (param i32) (result i32)))
@ -40,7 +39,7 @@
(global $std/array/randomized257 (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 344))
(table 28 28 anyfunc)
(elem (i32.const 0) $start~anonymous|0 $start~anonymous|1 $start~anonymous|2 $start~anonymous|3 $start~anonymous|2 $start~anonymous|5 $start~anonymous|6 $start~anonymous|7 $start~anonymous|8 $start~anonymous|9 $start~anonymous|10 $start~anonymous|11 $start~anonymous|12 $start~anonymous|13 $start~anonymous|14 $start~anonymous|15 $start~anonymous|16 $start~anonymous|16 $start~anonymous|18 $start~anonymous|19 $start~anonymous|20 $start~anonymous|16 $start~anonymous|22 $~lib/internal/array/defaultComparator<i32>~anonymous|23 $start~anonymous|24 $start~anonymous|25 $start~anonymous|24 $start~anonymous|25)
(elem (i32.const 0) $start~anonymous|0 $start~anonymous|1 $start~anonymous|2 $start~anonymous|3 $start~anonymous|2 $start~anonymous|5 $start~anonymous|6 $start~anonymous|7 $start~anonymous|8 $start~anonymous|9 $start~anonymous|10 $start~anonymous|11 $start~anonymous|12 $start~anonymous|13 $start~anonymous|14 $start~anonymous|15 $start~anonymous|16 $start~anonymous|16 $start~anonymous|18 $start~anonymous|19 $start~anonymous|20 $start~anonymous|16 $start~anonymous|22 $std/array/assertSortedDefault<i32>~anonymous|23 $start~anonymous|24 $start~anonymous|25 $start~anonymous|24 $start~anonymous|25)
(memory $0 1)
(data (i32.const 4) "\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s")
(data (i32.const 36) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s")
@ -3908,7 +3907,7 @@
(call $abort
(i32.const 0)
(i32.const 124)
(i32.const 993)
(i32.const 1000)
(i32.const 4)
)
(unreachable)
@ -3984,7 +3983,7 @@
(call $abort
(i32.const 0)
(i32.const 124)
(i32.const 1000)
(i32.const 1007)
(i32.const 24)
)
(unreachable)
@ -4085,7 +4084,7 @@
)
(get_local $0)
)
(func $~lib/internal/array/defaultComparator<i32>~anonymous|23 (; 54 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/array/assertSortedDefault<i32>~anonymous|23 (; 54 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(i32.gt_s
(get_local $0)
@ -4097,10 +4096,7 @@
)
)
)
(func $~lib/internal/array/defaultComparator<i32> (; 55 ;) (type $i) (result i32)
(i32.const 23)
)
(func $~lib/internal/array/insertionSort<i32> (; 56 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/internal/array/insertionSort<i32> (; 55 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -4225,10 +4221,10 @@
)
(get_local $0)
)
(func $~lib/allocator/arena/free_memory (; 57 ;) (type $iv) (param $0 i32)
(func $~lib/allocator/arena/free_memory (; 56 ;) (type $iv) (param $0 i32)
(nop)
)
(func $~lib/internal/array/weakHeapSort<i32> (; 58 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/internal/array/weakHeapSort<i32> (; 57 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -4667,7 +4663,7 @@
)
(get_local $0)
)
(func $~lib/array/Array<i32>#sort (; 59 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#sort (; 58 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -4762,7 +4758,7 @@
)
)
)
(func $std/array/isSorted<i32> (; 60 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/array/isSorted<i32> (; 59 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(set_local $2
@ -4819,7 +4815,7 @@
)
(i32.const 1)
)
(func $std/array/assertSorted<i32> (; 61 ;) (type $iiv) (param $0 i32) (param $1 i32)
(func $std/array/assertSorted<i32> (; 60 ;) (type $iiv) (param $0 i32) (param $1 i32)
(if
(i32.eqz
(call $std/array/isSorted<i32>
@ -4841,13 +4837,13 @@
)
)
)
(func $std/array/assertSortedDefault<i32> (; 62 ;) (type $iv) (param $0 i32)
(func $std/array/assertSortedDefault<i32> (; 61 ;) (type $iv) (param $0 i32)
(call $std/array/assertSorted<i32>
(get_local $0)
(call $~lib/internal/array/defaultComparator<i32>)
(i32.const 23)
)
)
(func $std/array/isArraysEqual<i32> (; 63 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $std/array/isArraysEqual<i32> (; 62 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(if
(i32.eqz
@ -4908,7 +4904,7 @@
)
(i32.const 1)
)
(func $std/array/isArraysEqual<i32>|trampoline (; 64 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $std/array/isArraysEqual<i32>|trampoline (; 63 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(block $1of1
(block $0of1
(block $oob
@ -4931,19 +4927,19 @@
(get_local $2)
)
)
(func $start~anonymous|24 (; 65 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start~anonymous|24 (; 64 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(get_local $0)
(get_local $1)
)
)
(func $start~anonymous|25 (; 66 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start~anonymous|25 (; 65 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(get_local $1)
(get_local $0)
)
)
(func $start (; 67 ;) (type $v)
(func $start (; 66 ;) (type $v)
(set_global $~lib/allocator/arena/startOffset
(i32.and
(i32.add

View File

@ -46,7 +46,7 @@
(global $std/array/randomized257 (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 344))
(table 28 28 anyfunc)
(elem (i32.const 0) $start~anonymous|0 $start~anonymous|1 $start~anonymous|2 $start~anonymous|3 $start~anonymous|4 $start~anonymous|5 $start~anonymous|6 $start~anonymous|7 $start~anonymous|8 $start~anonymous|9 $start~anonymous|10 $start~anonymous|11 $start~anonymous|12 $start~anonymous|13 $start~anonymous|14 $start~anonymous|15 $start~anonymous|16 $start~anonymous|17 $start~anonymous|18 $start~anonymous|19 $start~anonymous|20 $start~anonymous|21 $start~anonymous|22 $~lib/internal/array/defaultComparator<i32>~anonymous|23 $start~anonymous|24 $start~anonymous|25 $start~anonymous|26 $start~anonymous|27)
(elem (i32.const 0) $start~anonymous|0 $start~anonymous|1 $start~anonymous|2 $start~anonymous|3 $start~anonymous|4 $start~anonymous|5 $start~anonymous|6 $start~anonymous|7 $start~anonymous|8 $start~anonymous|9 $start~anonymous|10 $start~anonymous|11 $start~anonymous|12 $start~anonymous|13 $start~anonymous|14 $start~anonymous|15 $start~anonymous|16 $start~anonymous|17 $start~anonymous|18 $start~anonymous|19 $start~anonymous|20 $start~anonymous|21 $start~anonymous|22 $std/array/assertSortedDefault<i32>~anonymous|23 $start~anonymous|24 $start~anonymous|25 $start~anonymous|26 $start~anonymous|27)
(memory $0 1)
(data (i32.const 4) "\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00")
(data (i32.const 36) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00")
@ -4723,7 +4723,7 @@
(call $abort
(i32.const 0)
(i32.const 124)
(i32.const 993)
(i32.const 1000)
(i32.const 4)
)
(unreachable)
@ -4807,7 +4807,7 @@
(call $abort
(i32.const 0)
(i32.const 124)
(i32.const 1000)
(i32.const 1007)
(i32.const 24)
)
(unreachable)
@ -4932,7 +4932,7 @@
(get_local $1)
)
)
(func $~lib/internal/array/defaultComparator<i32>~anonymous|23 (; 58 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/array/assertSortedDefault<i32>~anonymous|23 (; 58 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(i32.gt_s
(get_local $0)
@ -4944,12 +4944,7 @@
)
)
)
(func $~lib/internal/array/defaultComparator<i32> (; 59 ;) (type $i) (result i32)
(return
(i32.const 23)
)
)
(func $~lib/internal/array/insertionSort<i32> (; 60 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/internal/array/insertionSort<i32> (; 59 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -5137,9 +5132,9 @@
(get_local $0)
)
)
(func $~lib/allocator/arena/free_memory (; 61 ;) (type $iv) (param $0 i32)
(func $~lib/allocator/arena/free_memory (; 60 ;) (type $iv) (param $0 i32)
)
(func $~lib/internal/array/weakHeapSort<i32> (; 62 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/internal/array/weakHeapSort<i32> (; 61 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -5799,7 +5794,7 @@
(get_local $0)
)
)
(func $~lib/array/Array<i32>#sort (; 63 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#sort (; 62 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -5955,7 +5950,7 @@
)
)
)
(func $std/array/isSorted<i32> (; 64 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/array/isSorted<i32> (; 63 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(block $break|0
@ -6020,7 +6015,7 @@
(i32.const 1)
)
)
(func $std/array/assertSorted<i32> (; 65 ;) (type $iiv) (param $0 i32) (param $1 i32)
(func $std/array/assertSorted<i32> (; 64 ;) (type $iiv) (param $0 i32) (param $1 i32)
(if
(i32.eqz
(call $std/array/isSorted<i32>
@ -6042,13 +6037,17 @@
)
)
)
(func $std/array/assertSortedDefault<i32> (; 66 ;) (type $iv) (param $0 i32)
(func $std/array/assertSortedDefault<i32> (; 65 ;) (type $iv) (param $0 i32)
(call $std/array/assertSorted<i32>
(get_local $0)
(call $~lib/internal/array/defaultComparator<i32>)
(block $~lib/internal/array/defaultComparator<i32>|inlined.0 (result i32)
(br $~lib/internal/array/defaultComparator<i32>|inlined.0
(i32.const 23)
)
)
)
)
(func $std/array/isArraysEqual<i32> (; 67 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $std/array/isArraysEqual<i32> (; 66 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(if
(i32.eqz
@ -6118,7 +6117,7 @@
(i32.const 1)
)
)
(func $std/array/isArraysEqual<i32>|trampoline (; 68 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $std/array/isArraysEqual<i32>|trampoline (; 67 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(block $1of1
(block $0of1
(block $oob
@ -6141,31 +6140,31 @@
(get_local $2)
)
)
(func $start~anonymous|24 (; 69 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start~anonymous|24 (; 68 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(get_local $0)
(get_local $1)
)
)
(func $start~anonymous|25 (; 70 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start~anonymous|25 (; 69 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(get_local $1)
(get_local $0)
)
)
(func $start~anonymous|26 (; 71 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start~anonymous|26 (; 70 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(get_local $0)
(get_local $1)
)
)
(func $start~anonymous|27 (; 72 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start~anonymous|27 (; 71 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(get_local $1)
(get_local $0)
)
)
(func $start (; 73 ;) (type $v)
(func $start (; 72 ;) (type $v)
(set_global $~lib/allocator/arena/startOffset
(i32.and
(i32.add

View File

@ -55,17 +55,12 @@
(export "tanh" (func $std/libm/tanh))
(export "trunc" (func $std/libm/trunc))
(export "memory" (memory $0))
(func $~lib/math/NativeMath.abs (; 0 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/abs (; 0 ;) (type $FF) (param $0 f64) (result f64)
(f64.abs
(get_local $0)
)
)
(func $std/libm/abs (; 1 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.abs
(get_local $0)
)
)
(func $~lib/math/R (; 2 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/R (; 1 ;) (type $FF) (param $0 f64) (result f64)
(f64.div
(f64.mul
(get_local $0)
@ -128,7 +123,7 @@
)
)
)
(func $~lib/math/NativeMath.acos (; 3 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.acos (; 2 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i32)
(local $3 f64)
@ -317,12 +312,12 @@
)
)
)
(func $std/libm/acos (; 4 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/acos (; 3 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.acos
(get_local $0)
)
)
(func $~lib/math/NativeMath.log1p (; 5 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.log1p (; 4 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i32)
(local $3 i32)
@ -617,7 +612,7 @@
)
)
)
(func $~lib/math/NativeMath.log (; 6 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.log (; 5 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i32)
(local $2 i32)
(local $3 i64)
@ -882,7 +877,7 @@
)
)
)
(func $~lib/math/NativeMath.acosh (; 7 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.acosh (; 6 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(if
(i64.lt_u
@ -969,12 +964,12 @@
(f64.const 0.6931471805599453)
)
)
(func $std/libm/acosh (; 8 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/acosh (; 7 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.acosh
(get_local $0)
)
)
(func $~lib/math/NativeMath.asin (; 9 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.asin (; 8 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i32)
(local $3 i32)
@ -1183,12 +1178,12 @@
)
(get_local $0)
)
(func $std/libm/asin (; 10 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/asin (; 9 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.asin
(get_local $0)
)
)
(func $~lib/math/NativeMath.asinh (; 11 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.asinh (; 10 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(local $2 i64)
(local $3 i64)
@ -1306,12 +1301,12 @@
)
)
)
(func $std/libm/asinh (; 12 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/asinh (; 11 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.asinh
(get_local $0)
)
)
(func $~lib/math/NativeMath.atan (; 13 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.atan (; 12 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(local $2 f64)
(local $3 i32)
@ -1671,12 +1666,12 @@
(get_local $4)
)
)
(func $std/libm/atan (; 14 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/atan (; 13 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.atan
(get_local $0)
)
)
(func $~lib/math/NativeMath.atanh (; 15 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.atanh (; 14 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(local $2 i64)
(local $3 i64)
@ -1773,12 +1768,12 @@
)
)
)
(func $std/libm/atanh (; 16 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/atanh (; 15 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.atanh
(get_local $0)
)
)
(func $~lib/math/NativeMath.atan2 (; 17 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $~lib/math/NativeMath.atan2 (; 16 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -2120,13 +2115,13 @@
)
)
)
(func $std/libm/atan2 (; 18 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $std/libm/atan2 (; 17 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(call $~lib/math/NativeMath.atan2
(get_local $0)
(get_local $1)
)
)
(func $~lib/math/NativeMath.cbrt (; 19 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.cbrt (; 18 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(local $2 f64)
(local $3 i32)
@ -2309,22 +2304,17 @@
)
)
)
(func $std/libm/cbrt (; 20 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/cbrt (; 19 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.cbrt
(get_local $0)
)
)
(func $~lib/math/NativeMath.ceil (; 21 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/ceil (; 20 ;) (type $FF) (param $0 f64) (result f64)
(f64.ceil
(get_local $0)
)
)
(func $std/libm/ceil (; 22 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.ceil
(get_local $0)
)
)
(func $~lib/math/NativeMath.clz32 (; 23 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/clz32 (; 21 ;) (type $FF) (param $0 f64) (result f64)
(f64.convert_s/i32
(i32.clz
(i32.trunc_s/f64
@ -2333,20 +2323,15 @@
)
)
)
(func $std/libm/clz32 (; 24 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.clz32
(get_local $0)
)
)
(func $~lib/math/NativeMath.cos (; 25 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.cos (; 22 ;) (type $FF) (param $0 f64) (result f64)
(unreachable)
)
(func $std/libm/cos (; 26 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/cos (; 23 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.cos
(get_local $0)
)
)
(func $~lib/math/NativeMath.expm1 (; 27 ;) (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 i32)
(local $3 f64)
@ -2789,7 +2774,7 @@
)
)
)
(func $~lib/math/NativeMath.scalbn (; 28 ;) (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 $2 f64)
(set_local $2
(get_local $0)
@ -2903,7 +2888,7 @@
)
)
)
(func $~lib/math/NativeMath.exp (; 29 ;) (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)
@ -3110,7 +3095,7 @@
(get_local $3)
)
)
(func $~lib/math/expo2 (; 30 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/expo2 (; 27 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(f64.mul
(f64.mul
@ -3127,7 +3112,7 @@
(get_local $1)
)
)
(func $~lib/math/NativeMath.cosh (; 31 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.cosh (; 28 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i32)
(local $2 i64)
(set_local $0
@ -3214,42 +3199,32 @@
(get_local $0)
)
)
(func $std/libm/cosh (; 32 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/cosh (; 29 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.cosh
(get_local $0)
)
)
(func $std/libm/exp (; 33 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/exp (; 30 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.exp
(get_local $0)
)
)
(func $std/libm/expm1 (; 34 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/expm1 (; 31 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.expm1
(get_local $0)
)
)
(func $~lib/math/NativeMath.floor (; 35 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/floor (; 32 ;) (type $FF) (param $0 f64) (result f64)
(f64.floor
(get_local $0)
)
)
(func $std/libm/floor (; 36 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.floor
(get_local $0)
)
)
(func $~lib/math/NativeMath.fround (; 37 ;) (type $Ff) (param $0 f64) (result f32)
(func $std/libm/fround (; 33 ;) (type $Ff) (param $0 f64) (result f32)
(f32.demote/f64
(get_local $0)
)
)
(func $std/libm/fround (; 38 ;) (type $Ff) (param $0 f64) (result f32)
(call $~lib/math/NativeMath.fround
(get_local $0)
)
)
(func $~lib/math/NativeMath.hypot (; 39 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $~lib/math/NativeMath.hypot (; 34 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(local $2 f64)
(local $3 f64)
(local $4 i64)
@ -3518,13 +3493,13 @@
)
)
)
(func $std/libm/hypot (; 40 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $std/libm/hypot (; 35 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(call $~lib/math/NativeMath.hypot
(get_local $0)
(get_local $1)
)
)
(func $~lib/math/NativeMath.imul (; 41 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $~lib/math/NativeMath.imul (; 36 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(f64.convert_s/i32
(i32.mul
(i32.trunc_s/f64
@ -3536,18 +3511,18 @@
)
)
)
(func $std/libm/imul (; 42 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $std/libm/imul (; 37 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(call $~lib/math/NativeMath.imul
(get_local $0)
(get_local $1)
)
)
(func $std/libm/log (; 43 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/log (; 38 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.log
(get_local $0)
)
)
(func $~lib/math/NativeMath.log10 (; 44 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.log10 (; 39 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i32)
(local $3 i32)
@ -3865,17 +3840,17 @@
(get_local $0)
)
)
(func $std/libm/log10 (; 45 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/log10 (; 40 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.log10
(get_local $0)
)
)
(func $std/libm/log1p (; 46 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/log1p (; 41 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.log1p
(get_local $0)
)
)
(func $~lib/math/NativeMath.log2 (; 47 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.log2 (; 42 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i32)
(local $3 f64)
@ -4181,36 +4156,24 @@
(get_local $1)
)
)
(func $std/libm/log2 (; 48 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/log2 (; 43 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.log2
(get_local $0)
)
)
(func $~lib/math/NativeMath.max (; 49 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $std/libm/max (; 44 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(f64.max
(get_local $0)
(get_local $1)
)
)
(func $std/libm/max (; 50 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(call $~lib/math/NativeMath.max
(get_local $0)
(get_local $1)
)
)
(func $~lib/math/NativeMath.min (; 51 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $std/libm/min (; 45 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(f64.min
(get_local $0)
(get_local $1)
)
)
(func $std/libm/min (; 52 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(call $~lib/math/NativeMath.min
(get_local $0)
(get_local $1)
)
)
(func $~lib/math/NativeMath.pow (; 53 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $~lib/math/NativeMath.pow (; 46 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(local $2 f64)
(local $3 f64)
(local $4 i32)
@ -5609,13 +5572,13 @@
(f64.const 1.e+300)
)
)
(func $std/libm/pow (; 54 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $std/libm/pow (; 47 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(call $~lib/math/NativeMath.pow
(get_local $0)
(get_local $1)
)
)
(func $~lib/math/NativeMath.round (; 55 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.round (; 48 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i64)
(local $3 i32)
@ -5748,34 +5711,32 @@
)
)
)
(func $std/libm/round (; 56 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/round (; 49 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.round
(get_local $0)
)
)
(func $~lib/math/NativeMath.sign (; 57 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/sign (; 50 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(select
(f64.const 1)
(select
(f64.const -1)
(get_local $0)
(f64.lt
(tee_local $1
(get_local $0)
)
(f64.lt
(get_local $1)
(f64.const 0)
)
)
(f64.gt
(get_local $0)
(get_local $1)
(f64.const 0)
)
)
)
(func $std/libm/sign (; 58 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.sign
(get_local $0)
)
)
(func $~lib/math/NativeMath.sinh (; 59 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.sinh (; 51 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(local $2 f64)
(local $3 i64)
@ -5894,22 +5855,17 @@
)
)
)
(func $std/libm/sinh (; 60 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/sinh (; 52 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.sinh
(get_local $0)
)
)
(func $~lib/math/NativeMath.sqrt (; 61 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/sqrt (; 53 ;) (type $FF) (param $0 f64) (result f64)
(f64.sqrt
(get_local $0)
)
)
(func $std/libm/sqrt (; 62 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.sqrt
(get_local $0)
)
)
(func $~lib/math/NativeMath.tanh (; 63 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.tanh (; 54 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(local $2 i32)
(local $3 i32)
@ -6032,19 +5988,14 @@
(get_local $3)
)
)
(func $std/libm/tanh (; 64 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/tanh (; 55 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.tanh
(get_local $0)
)
)
(func $~lib/math/NativeMath.trunc (; 65 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/trunc (; 56 ;) (type $FF) (param $0 f64) (result f64)
(f64.trunc
(get_local $0)
)
)
(func $std/libm/trunc (; 66 ;) (type $FF) (param $0 f64) (result f64)
(call $~lib/math/NativeMath.trunc
(get_local $0)
)
)
)

View File

@ -59,21 +59,22 @@
(export "tanh" (func $std/libm/tanh))
(export "trunc" (func $std/libm/trunc))
(export "memory" (memory $0))
(func $~lib/math/NativeMath.abs (; 0 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/abs (; 0 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(return
(f64.abs
(get_local $0)
(block $~lib/math/NativeMath.abs|inlined.0 (result f64)
(set_local $1
(get_local $0)
)
(br $~lib/math/NativeMath.abs|inlined.0
(f64.abs
(get_local $1)
)
)
)
)
)
(func $std/libm/abs (; 1 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.abs
(get_local $0)
)
)
)
(func $~lib/math/R (; 2 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/R (; 1 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(local $2 f64)
(nop)
@ -147,7 +148,7 @@
)
)
)
(func $~lib/math/NativeMath.acos (; 3 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.acos (; 2 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -379,14 +380,14 @@
)
)
)
(func $std/libm/acos (; 4 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/acos (; 3 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.acos
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.log1p (; 5 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.log1p (; 4 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(local $2 i32)
(local $3 i32)
@ -748,7 +749,7 @@
)
)
)
(func $~lib/math/NativeMath.log (; 6 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.log (; 5 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(local $2 i32)
(local $3 i32)
@ -1061,7 +1062,7 @@
)
)
)
(func $~lib/math/NativeMath.acosh (; 7 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.acosh (; 6 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(nop)
(set_local $1
@ -1158,14 +1159,14 @@
)
)
)
(func $std/libm/acosh (; 8 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/acosh (; 7 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.acosh
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.asin (; 9 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.asin (; 8 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -1404,14 +1405,14 @@
(get_local $0)
)
)
(func $std/libm/asin (; 10 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/asin (; 9 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.asin
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.asinh (; 11 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.asinh (; 10 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(local $2 i64)
(local $3 i64)
@ -1545,14 +1546,14 @@
)
)
)
(func $std/libm/asinh (; 12 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/asinh (; 11 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.asinh
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.atan (; 13 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.atan (; 12 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i32)
(local $2 i32)
(local $3 f64)
@ -1967,14 +1968,14 @@
)
)
)
(func $std/libm/atan (; 14 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/atan (; 13 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.atan
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.atanh (; 15 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.atanh (; 14 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(local $2 i64)
(local $3 i64)
@ -2084,14 +2085,14 @@
)
)
)
(func $std/libm/atanh (; 16 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/atanh (; 15 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.atanh
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.atan2 (; 17 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $~lib/math/NativeMath.atan2 (; 16 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(local $2 f64)
(local $3 i32)
(local $4 i64)
@ -2578,7 +2579,7 @@
(f64.const 0)
)
)
(func $std/libm/atan2 (; 18 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $std/libm/atan2 (; 17 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(return
(call $~lib/math/NativeMath.atan2
(get_local $0)
@ -2586,7 +2587,7 @@
)
)
)
(func $~lib/math/NativeMath.cbrt (; 19 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.cbrt (; 18 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(local $2 i32)
(local $3 f64)
@ -2805,59 +2806,61 @@
(get_local $3)
)
)
(func $std/libm/cbrt (; 20 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/cbrt (; 19 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.cbrt
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.ceil (; 21 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/ceil (; 20 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(return
(f64.ceil
(get_local $0)
)
)
)
(func $std/libm/ceil (; 22 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.ceil
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.clz32 (; 23 ;) (type $FF) (param $0 f64) (result f64)
(return
(f64.convert_s/i32
(i32.clz
(i32.trunc_s/f64
(get_local $0)
(block $~lib/math/NativeMath.ceil|inlined.0 (result f64)
(set_local $1
(get_local $0)
)
(br $~lib/math/NativeMath.ceil|inlined.0
(f64.ceil
(get_local $1)
)
)
)
)
)
(func $std/libm/clz32 (; 24 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/clz32 (; 21 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(return
(call $~lib/math/NativeMath.clz32
(get_local $0)
(block $~lib/math/NativeMath.clz32|inlined.0 (result f64)
(set_local $1
(get_local $0)
)
(br $~lib/math/NativeMath.clz32|inlined.0
(f64.convert_s/i32
(i32.clz
(i32.trunc_s/f64
(get_local $1)
)
)
)
)
)
)
)
(func $~lib/math/NativeMath.cos (; 25 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.cos (; 22 ;) (type $FF) (param $0 f64) (result f64)
(unreachable)
(return
(f64.const 0)
)
)
(func $std/libm/cos (; 26 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/cos (; 23 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.cos
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.expm1 (; 27 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.expm1 (; 24 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(local $2 i32)
(local $3 i32)
@ -3351,7 +3354,7 @@
(get_local $14)
)
)
(func $~lib/math/NativeMath.scalbn (; 28 ;) (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 $2 f64)
(nop)
(set_local $2
@ -3472,7 +3475,7 @@
)
)
)
(func $~lib/math/NativeMath.exp (; 29 ;) (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 i32)
(local $3 f64)
@ -3709,7 +3712,7 @@
)
)
)
(func $~lib/math/expo2 (; 30 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/expo2 (; 27 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(nop)
(set_local $1
@ -3746,7 +3749,7 @@
)
)
)
(func $~lib/math/NativeMath.cosh (; 31 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.cosh (; 28 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(local $2 i32)
(local $3 f64)
@ -3855,56 +3858,58 @@
(get_local $3)
)
)
(func $std/libm/cosh (; 32 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/cosh (; 29 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.cosh
(get_local $0)
)
)
)
(func $std/libm/exp (; 33 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/exp (; 30 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.exp
(get_local $0)
)
)
)
(func $std/libm/expm1 (; 34 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/expm1 (; 31 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.expm1
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.floor (; 35 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/floor (; 32 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(return
(f64.floor
(get_local $0)
(block $~lib/math/NativeMath.floor|inlined.0 (result f64)
(set_local $1
(get_local $0)
)
(br $~lib/math/NativeMath.floor|inlined.0
(f64.floor
(get_local $1)
)
)
)
)
)
(func $std/libm/floor (; 36 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/fround (; 33 ;) (type $Ff) (param $0 f64) (result f32)
(local $1 f64)
(return
(call $~lib/math/NativeMath.floor
(get_local $0)
(block $~lib/math/NativeMath.fround|inlined.0 (result f32)
(set_local $1
(get_local $0)
)
(br $~lib/math/NativeMath.fround|inlined.0
(f32.demote/f64
(get_local $1)
)
)
)
)
)
(func $~lib/math/NativeMath.fround (; 37 ;) (type $Ff) (param $0 f64) (result f32)
(return
(f32.demote/f64
(get_local $0)
)
)
)
(func $std/libm/fround (; 38 ;) (type $Ff) (param $0 f64) (result f32)
(return
(call $~lib/math/NativeMath.fround
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.hypot (; 39 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $~lib/math/NativeMath.hypot (; 34 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(local $2 i64)
(local $3 i64)
(local $4 i64)
@ -4205,7 +4210,7 @@
)
)
)
(func $std/libm/hypot (; 40 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $std/libm/hypot (; 35 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(return
(call $~lib/math/NativeMath.hypot
(get_local $0)
@ -4213,7 +4218,7 @@
)
)
)
(func $~lib/math/NativeMath.imul (; 41 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $~lib/math/NativeMath.imul (; 36 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(return
(f64.convert_s/i32
(i32.mul
@ -4227,7 +4232,7 @@
)
)
)
(func $std/libm/imul (; 42 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $std/libm/imul (; 37 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(return
(call $~lib/math/NativeMath.imul
(get_local $0)
@ -4235,14 +4240,14 @@
)
)
)
(func $std/libm/log (; 43 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/log (; 38 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.log
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.log10 (; 44 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.log10 (; 39 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(local $2 i32)
(local $3 i32)
@ -4631,21 +4636,21 @@
)
)
)
(func $std/libm/log10 (; 45 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/log10 (; 40 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.log10
(get_local $0)
)
)
)
(func $std/libm/log1p (; 46 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/log1p (; 41 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.log1p
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.log2 (; 47 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.log2 (; 42 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(local $2 i32)
(local $3 i32)
@ -5021,46 +5026,54 @@
)
)
)
(func $std/libm/log2 (; 48 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/log2 (; 43 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.log2
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.max (; 49 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $std/libm/max (; 44 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(local $2 f64)
(local $3 f64)
(return
(f64.max
(get_local $0)
(get_local $1)
(block $~lib/math/NativeMath.max|inlined.0 (result f64)
(set_local $2
(get_local $0)
)
(set_local $3
(get_local $1)
)
(br $~lib/math/NativeMath.max|inlined.0
(f64.max
(get_local $2)
(get_local $3)
)
)
)
)
)
(func $std/libm/max (; 50 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $std/libm/min (; 45 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(local $2 f64)
(local $3 f64)
(return
(call $~lib/math/NativeMath.max
(get_local $0)
(get_local $1)
(block $~lib/math/NativeMath.min|inlined.0 (result f64)
(set_local $2
(get_local $0)
)
(set_local $3
(get_local $1)
)
(br $~lib/math/NativeMath.min|inlined.0
(f64.min
(get_local $2)
(get_local $3)
)
)
)
)
)
(func $~lib/math/NativeMath.min (; 51 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(return
(f64.min
(get_local $0)
(get_local $1)
)
)
)
(func $std/libm/min (; 52 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(return
(call $~lib/math/NativeMath.min
(get_local $0)
(get_local $1)
)
)
)
(func $~lib/math/NativeMath.pow (; 53 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $~lib/math/NativeMath.pow (; 46 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(local $2 i64)
(local $3 i32)
(local $4 i32)
@ -6639,7 +6652,7 @@
)
)
)
(func $std/libm/pow (; 54 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(func $std/libm/pow (; 47 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(return
(call $~lib/math/NativeMath.pow
(get_local $0)
@ -6647,7 +6660,7 @@
)
)
)
(func $~lib/math/NativeMath.round (; 55 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.round (; 48 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(local $2 i32)
(local $3 f64)
@ -6809,53 +6822,54 @@
(get_local $3)
)
)
(func $std/libm/round (; 56 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/round (; 49 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.round
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.sign (; 57 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/sign (; 50 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(return
(if (result f64)
(f64.gt
(block $~lib/math/NativeMath.sign|inlined.0 (result f64)
(set_local $1
(get_local $0)
(f64.const 0)
)
(f64.const 1)
(if (result f64)
(f64.lt
(get_local $0)
(f64.const 0)
(br $~lib/math/NativeMath.sign|inlined.0
(if (result f64)
(f64.gt
(get_local $1)
(f64.const 0)
)
(f64.const 1)
(if (result f64)
(f64.lt
(get_local $1)
(f64.const 0)
)
(f64.const -1)
(get_local $1)
)
)
(f64.const -1)
(get_local $0)
)
)
)
)
(func $std/libm/sign (; 58 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.sign
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.sin (; 59 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.sin (; 51 ;) (type $FF) (param $0 f64) (result f64)
(unreachable)
(return
(f64.const 0)
)
)
(func $std/libm/sin (; 60 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/sin (; 52 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.sin
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.sinh (; 61 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.sinh (; 53 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(local $2 f64)
(local $3 f64)
@ -6990,41 +7004,42 @@
(get_local $5)
)
)
(func $std/libm/sinh (; 62 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/sinh (; 54 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.sinh
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.sqrt (; 63 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/sqrt (; 55 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(return
(f64.sqrt
(get_local $0)
(block $~lib/math/NativeMath.sqrt|inlined.0 (result f64)
(set_local $1
(get_local $0)
)
(br $~lib/math/NativeMath.sqrt|inlined.0
(f64.sqrt
(get_local $1)
)
)
)
)
)
(func $std/libm/sqrt (; 64 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.sqrt
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.tan (; 65 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.tan (; 56 ;) (type $FF) (param $0 f64) (result f64)
(unreachable)
(return
(f64.const 0)
)
)
(func $std/libm/tan (; 66 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/tan (; 57 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.tan
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.tanh (; 67 ;) (type $FF) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.tanh (; 58 ;) (type $FF) (param $0 f64) (result f64)
(local $1 i64)
(local $2 i32)
(local $3 i32)
@ -7170,24 +7185,25 @@
)
)
)
(func $std/libm/tanh (; 68 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/tanh (; 59 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.tanh
(get_local $0)
)
)
)
(func $~lib/math/NativeMath.trunc (; 69 ;) (type $FF) (param $0 f64) (result f64)
(func $std/libm/trunc (; 60 ;) (type $FF) (param $0 f64) (result f64)
(local $1 f64)
(return
(f64.trunc
(get_local $0)
)
)
)
(func $std/libm/trunc (; 70 ;) (type $FF) (param $0 f64) (result f64)
(return
(call $~lib/math/NativeMath.trunc
(get_local $0)
(block $~lib/math/NativeMath.trunc|inlined.0 (result f64)
(set_local $1
(get_local $0)
)
(br $~lib/math/NativeMath.trunc|inlined.0
(f64.trunc
(get_local $1)
)
)
)
)
)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff