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

@ -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)
)
)
)