Improve Math routines; Add Mathf-specific prng (#297)

This commit is contained in:
Max Graey 2018-10-26 01:10:17 +03:00 committed by Daniel Wirtz
parent 4683599a82
commit 376afd45fc
14 changed files with 7725 additions and 9633 deletions

1011
package-lock.json generated

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -100,19 +100,14 @@
(local $4 i32)
(block $folding-inner0
(set_local $3
(i32.eq
(tee_local $2
(i32.and
(i32.shr_u
(tee_local $1
(i32.reinterpret/f32
(get_local $0)
)
)
(i32.const 23)
(i32.and
(i32.shr_u
(tee_local $1
(i32.reinterpret/f32
(get_local $0)
)
(i32.const 255)
)
(i32.const 23)
)
(i32.const 255)
)
@ -123,9 +118,22 @@
(i32.const -2147483648)
)
)
(if
(i32.eqz
(tee_local $2
(i32.eq
(get_local $3)
(i32.const 255)
)
)
)
(set_local $2
(i32.const 0)
)
)
(if
(i32.and
(get_local $3)
(get_local $2)
(i32.const 1)
)
(return
@ -137,19 +145,18 @@
)
(if
(i32.le_u
(i32.shl
(get_local $1)
(i32.const 1)
(tee_local $2
(i32.shl
(get_local $1)
(i32.const 1)
)
)
(i32.const 2130706432)
)
(block
(br_if $folding-inner0
(i32.eq
(i32.shl
(get_local $1)
(i32.const 1)
)
(get_local $2)
(i32.const 2130706432)
)
)
@ -160,7 +167,7 @@
)
(set_local $1
(if (result i32)
(get_local $2)
(get_local $3)
(i32.or
(i32.and
(get_local $1)
@ -168,58 +175,37 @@
)
(i32.const 8388608)
)
(block (result i32)
(block $break|0
(set_local $3
(i32.shl
(get_local $1)
(i32.const 9)
)
)
(loop $repeat|0
(br_if $break|0
(i32.shr_u
(get_local $3)
(i32.const 31)
(i32.shl
(get_local $1)
(i32.sub
(i32.const 1)
(tee_local $3
(i32.sub
(get_local $3)
(i32.clz
(i32.shl
(get_local $1)
(i32.const 9)
)
)
)
(set_local $2
(i32.sub
(get_local $2)
(i32.const 1)
)
)
(set_local $3
(i32.shl
(get_local $3)
(i32.const 1)
)
)
(br $repeat|0)
)
)
(i32.shl
(get_local $1)
(i32.sub
(i32.const 1)
(get_local $2)
)
)
)
)
)
(block $break|2
(loop $repeat|2
(br_if $break|2
(block $break|0
(loop $repeat|0
(br_if $break|0
(i32.le_s
(get_local $2)
(get_local $3)
(i32.const 127)
)
)
(if
(i32.eqz
(i32.shr_u
(tee_local $3
(tee_local $2
(i32.sub
(get_local $1)
(i32.const 8388608)
@ -231,11 +217,11 @@
(block
(br_if $folding-inner0
(i32.eqz
(get_local $3)
(get_local $2)
)
)
(set_local $1
(get_local $3)
(get_local $2)
)
)
)
@ -245,19 +231,19 @@
(i32.const 1)
)
)
(set_local $2
(set_local $3
(i32.sub
(get_local $2)
(get_local $3)
(i32.const 1)
)
)
(br $repeat|2)
(br $repeat|0)
)
)
(if
(i32.eqz
(i32.shr_u
(tee_local $3
(tee_local $2
(i32.sub
(get_local $1)
(i32.const 8388608)
@ -269,35 +255,25 @@
(block
(br_if $folding-inner0
(i32.eqz
(get_local $3)
(get_local $2)
)
)
(set_local $1
(get_local $3)
(get_local $2)
)
)
)
(block $break|3
(loop $repeat|3
(br_if $break|3
(i32.shr_u
(get_local $1)
(i32.const 23)
(set_local $1
(i32.shl
(get_local $1)
(tee_local $2
(i32.clz
(i32.shl
(get_local $1)
(i32.const 8)
)
)
)
(set_local $2
(i32.sub
(get_local $2)
(i32.const 1)
)
)
(set_local $1
(i32.shl
(get_local $1)
(i32.const 1)
)
)
(br $repeat|3)
)
)
(return
@ -306,7 +282,12 @@
(tee_local $1
(if (result i32)
(i32.gt_s
(get_local $2)
(tee_local $3
(i32.sub
(get_local $3)
(get_local $2)
)
)
(i32.const 0)
)
(i32.or
@ -315,7 +296,7 @@
(i32.const 8388608)
)
(i32.shl
(get_local $2)
(get_local $3)
(i32.const 23)
)
)
@ -323,7 +304,7 @@
(get_local $1)
(i32.sub
(i32.const 1)
(get_local $2)
(get_local $3)
)
)
)
@ -376,38 +357,45 @@
)
(func $~lib/math/NativeMath.mod (; 3 ;) (; has Stack IR ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 i64)
(local $2 i32)
(local $2 i64)
(local $3 i64)
(local $4 i32)
(local $5 i64)
(block $folding-inner0
(set_local $2
(i32.wrap/i64
(i64.and
(i64.shr_u
(tee_local $1
(i64.reinterpret/f64
(get_local $0)
)
(i64.and
(i64.shr_u
(tee_local $1
(i64.reinterpret/f64
(get_local $0)
)
(i64.const 52)
)
(i64.const 2047)
(i64.const 52)
)
(i64.const 2047)
)
)
(set_local $4
(i32.wrap/i64
(i64.shr_u
(get_local $1)
(i64.const 63)
)
(set_local $5
(i64.shr_u
(get_local $1)
(i64.const 63)
)
)
(if
(i32.eq
(get_local $2)
(i32.const 2047)
(i32.eqz
(tee_local $4
(i64.eq
(get_local $2)
(i64.const 2047)
)
)
)
(set_local $4
(i32.const 0)
)
)
(if
(get_local $4)
(return
(f64.div
(get_local $0)
@ -417,19 +405,18 @@
)
(if
(i64.le_u
(i64.shl
(get_local $1)
(i64.const 1)
(tee_local $3
(i64.shl
(get_local $1)
(i64.const 1)
)
)
(i64.const 9214364837600034816)
)
(block
(br_if $folding-inner0
(i64.eq
(i64.shl
(get_local $1)
(i64.const 1)
)
(get_local $3)
(i64.const 9214364837600034816)
)
)
@ -440,7 +427,29 @@
)
(set_local $1
(if (result i64)
(get_local $2)
(i64.eqz
(get_local $2)
)
(i64.shl
(get_local $1)
(i64.add
(i64.sub
(i64.const 0)
(tee_local $2
(i64.sub
(get_local $2)
(i64.clz
(i64.shl
(get_local $1)
(i64.const 12)
)
)
)
)
)
(i64.const 1)
)
)
(i64.or
(i64.and
(get_local $1)
@ -448,58 +457,14 @@
)
(i64.const 4503599627370496)
)
(block (result i64)
(block $break|0
(set_local $3
(i64.shl
(get_local $1)
(i64.const 12)
)
)
(loop $repeat|0
(br_if $break|0
(i32.eqz
(i64.eqz
(i64.shr_u
(get_local $3)
(i64.const 63)
)
)
)
)
(set_local $2
(i32.sub
(get_local $2)
(i32.const 1)
)
)
(set_local $3
(i64.shl
(get_local $3)
(i64.const 1)
)
)
(br $repeat|0)
)
)
(i64.shl
(get_local $1)
(i64.extend_s/i32
(i32.sub
(i32.const 1)
(get_local $2)
)
)
)
)
)
)
(block $break|2
(loop $repeat|2
(br_if $break|2
(i32.le_s
(block $break|0
(loop $repeat|0
(br_if $break|0
(i64.le_s
(get_local $2)
(i32.const 1023)
(i64.const 1023)
)
)
(if
@ -532,12 +497,12 @@
)
)
(set_local $2
(i32.sub
(i64.sub
(get_local $2)
(i32.const 1)
(i64.const 1)
)
)
(br $repeat|2)
(br $repeat|0)
)
)
(if
@ -563,31 +528,17 @@
)
)
)
(block $break|3
(loop $repeat|3
(br_if $break|3
(i32.eqz
(i64.eqz
(i64.shr_u
(get_local $1)
(i64.const 52)
)
(set_local $1
(i64.shl
(get_local $1)
(tee_local $3
(i64.clz
(i64.shl
(get_local $1)
(i64.const 11)
)
)
)
(set_local $2
(i32.sub
(get_local $2)
(i32.const 1)
)
)
(set_local $1
(i64.shl
(get_local $1)
(i64.const 1)
)
)
(br $repeat|3)
)
)
(return
@ -595,9 +546,14 @@
(i64.or
(tee_local $1
(if (result i64)
(i32.gt_s
(get_local $2)
(i32.const 0)
(i64.gt_s
(tee_local $2
(i64.sub
(get_local $2)
(get_local $3)
)
)
(i64.const 0)
)
(i64.or
(i64.sub
@ -605,27 +561,24 @@
(i64.const 4503599627370496)
)
(i64.shl
(i64.extend_s/i32
(get_local $2)
)
(get_local $2)
(i64.const 52)
)
)
(i64.shr_u
(get_local $1)
(i64.extend_s/i32
(i32.sub
(i32.const 1)
(i64.add
(i64.sub
(i64.const 0)
(get_local $2)
)
(i64.const 1)
)
)
)
)
(i64.shl
(i64.extend_s/i32
(get_local $4)
)
(get_local $5)
(i64.const 63)
)
)

File diff suppressed because it is too large Load Diff

View File

@ -237,8 +237,10 @@
(global $std/array/filteredArr (mut i32) (i32.const 0))
(global $std/array/boolVal (mut i32) (i32.const 0))
(global $~lib/math/random_seeded (mut i32) (i32.const 0))
(global $~lib/math/random_state0 (mut i64) (i64.const 0))
(global $~lib/math/random_state1 (mut i64) (i64.const 0))
(global $~lib/math/random_state0_64 (mut i64) (i64.const 0))
(global $~lib/math/random_state1_64 (mut i64) (i64.const 0))
(global $~lib/math/random_state0_32 (mut i32) (i32.const 0))
(global $~lib/math/random_state1_32 (mut i32) (i32.const 0))
(global $std/array/f32ArrayTyped (mut i32) (i32.const 728))
(global $std/array/f64ArrayTyped (mut i32) (i32.const 936))
(global $std/array/i32ArrayTyped (mut i32) (i32.const 1112))
@ -4686,7 +4688,55 @@
)
)
)
(func $~lib/math/NativeMath.seedRandom (; 70 ;) (; has Stack IR ;) (type $Iv) (param $0 i64)
(func $~lib/math/splitMix32 (; 70 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(i32.xor
(tee_local $0
(i32.xor
(tee_local $0
(i32.mul
(i32.xor
(tee_local $0
(i32.add
(get_local $0)
(i32.const 1831565813)
)
)
(i32.shr_u
(get_local $0)
(i32.const 15)
)
)
(i32.or
(get_local $0)
(i32.const 1)
)
)
)
(i32.add
(get_local $0)
(i32.mul
(i32.xor
(get_local $0)
(i32.shr_u
(get_local $0)
(i32.const 7)
)
)
(i32.or
(get_local $0)
(i32.const 61)
)
)
)
)
)
(i32.shr_u
(get_local $0)
(i32.const 14)
)
)
)
(func $~lib/math/NativeMath.seedRandom (; 71 ;) (; has Stack IR ;) (type $Iv) (param $0 i64)
(if
(i64.eqz
(get_local $0)
@ -4704,18 +4754,33 @@
(set_global $~lib/math/random_seeded
(i32.const 1)
)
(set_global $~lib/math/random_state0
(set_global $~lib/math/random_state0_64
(call $~lib/math/murmurHash3
(get_local $0)
)
)
(set_global $~lib/math/random_state1
(set_global $~lib/math/random_state1_64
(call $~lib/math/murmurHash3
(get_global $~lib/math/random_state0)
(i64.xor
(get_global $~lib/math/random_state0_64)
(i64.const -1)
)
)
)
(set_global $~lib/math/random_state0_32
(call $~lib/math/splitMix32
(i32.wrap/i64
(get_local $0)
)
)
)
(set_global $~lib/math/random_state1_32
(call $~lib/math/splitMix32
(get_global $~lib/math/random_state0_32)
)
)
)
(func $~lib/internal/array/insertionSort<f32> (; 71 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/internal/array/insertionSort<f32> (; 72 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 f32)
@ -4827,10 +4892,10 @@
)
)
)
(func $~lib/allocator/arena/__memory_free (; 72 ;) (; has Stack IR ;) (type $FUNCSIG$v)
(func $~lib/allocator/arena/__memory_free (; 73 ;) (; has Stack IR ;) (type $FUNCSIG$v)
(nop)
)
(func $~lib/internal/array/weakHeapSort<f32> (; 73 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/internal/array/weakHeapSort<f32> (; 74 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -5215,7 +5280,7 @@
(get_local $6)
)
)
(func $~lib/array/Array<f32>#sort (; 74 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<f32>#sort (; 75 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 f32)
@ -5320,7 +5385,7 @@
)
(get_local $0)
)
(func $~lib/array/Array<f32>#sort|trampoline~anonymous|43 (; 75 ;) (; has Stack IR ;) (type $ffi) (param $0 f32) (param $1 f32) (result i32)
(func $~lib/array/Array<f32>#sort|trampoline~anonymous|43 (; 76 ;) (; has Stack IR ;) (type $ffi) (param $0 f32) (param $1 f32) (result i32)
(local $2 i32)
(local $3 i32)
(i32.sub
@ -5364,7 +5429,7 @@
)
)
)
(func $~lib/array/Array<f32>#sort|trampoline (; 76 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<f32>#sort|trampoline (; 77 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(block $1of1
(block $0of1
@ -5384,13 +5449,13 @@
(get_local $1)
)
)
(func $~lib/builtins/isNaN<f32> (; 77 ;) (; has Stack IR ;) (type $fi) (param $0 f32) (result i32)
(func $~lib/builtins/isNaN<f32> (; 78 ;) (; has Stack IR ;) (type $fi) (param $0 f32) (result i32)
(f32.ne
(get_local $0)
(get_local $0)
)
)
(func $std/array/isArraysEqual<f32> (; 78 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/array/isArraysEqual<f32> (; 79 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -5485,7 +5550,7 @@
)
(i32.const 1)
)
(func $~lib/internal/array/insertionSort<f64> (; 79 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/internal/array/insertionSort<f64> (; 80 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 f64)
@ -5597,7 +5662,7 @@
)
)
)
(func $~lib/internal/array/weakHeapSort<f64> (; 80 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/internal/array/weakHeapSort<f64> (; 81 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -5982,7 +6047,7 @@
(get_local $6)
)
)
(func $~lib/array/Array<f64>#sort (; 81 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<f64>#sort (; 82 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 f64)
@ -6087,7 +6152,7 @@
)
(get_local $0)
)
(func $~lib/array/Array<f64>#sort|trampoline~anonymous|44 (; 82 ;) (; has Stack IR ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32)
(func $~lib/array/Array<f64>#sort|trampoline~anonymous|44 (; 83 ;) (; has Stack IR ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32)
(local $2 i64)
(local $3 i64)
(i32.sub
@ -6131,7 +6196,7 @@
)
)
)
(func $~lib/array/Array<f64>#sort|trampoline (; 83 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<f64>#sort|trampoline (; 84 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(block $1of1
(block $0of1
@ -6151,7 +6216,7 @@
(get_local $1)
)
)
(func $~lib/array/Array<f64>#__get (; 84 ;) (; has Stack IR ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64)
(func $~lib/array/Array<f64>#__get (; 85 ;) (; has Stack IR ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64)
(if (result f64)
(i32.lt_u
(get_local $1)
@ -6178,13 +6243,13 @@
(unreachable)
)
)
(func $~lib/builtins/isNaN<f64> (; 85 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32)
(func $~lib/builtins/isNaN<f64> (; 86 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32)
(f64.ne
(get_local $0)
(get_local $0)
)
)
(func $std/array/isArraysEqual<f64> (; 86 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/array/isArraysEqual<f64> (; 87 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -6279,7 +6344,7 @@
)
(i32.const 1)
)
(func $~lib/internal/array/insertionSort<i32> (; 87 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/internal/array/insertionSort<i32> (; 88 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -6394,7 +6459,7 @@
)
)
)
(func $~lib/internal/array/weakHeapSort<i32> (; 88 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/internal/array/weakHeapSort<i32> (; 89 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -6779,7 +6844,7 @@
(get_local $1)
)
)
(func $~lib/array/Array<i32>#sort (; 89 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#sort (; 90 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -6883,13 +6948,13 @@
)
(get_local $0)
)
(func $~lib/array/Array<i32>#sort|trampoline~anonymous|45 (; 90 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#sort|trampoline~anonymous|45 (; 91 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(get_local $0)
(get_local $1)
)
)
(func $~lib/array/Array<i32>#sort|trampoline (; 91 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<i32>#sort|trampoline (; 92 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(block $1of1
(block $0of1
@ -6909,7 +6974,7 @@
(get_local $1)
)
)
(func $~lib/array/Array<u32>#sort|trampoline~anonymous|46 (; 92 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<u32>#sort|trampoline~anonymous|46 (; 93 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(i32.gt_u
(get_local $0)
@ -6921,7 +6986,7 @@
)
)
)
(func $~lib/array/Array<u32>#sort|trampoline (; 93 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<u32>#sort|trampoline (; 94 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(block $1of1
(block $0of1
@ -6941,7 +7006,7 @@
(get_local $1)
)
)
(func $std/array/createReverseOrderedArray (; 94 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $std/array/createReverseOrderedArray (; 95 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(set_local $1
(call $~lib/array/Array<i32>#constructor
@ -6985,7 +7050,7 @@
)
(get_local $1)
)
(func $~lib/math/NativeMath.random (; 95 ;) (; has Stack IR ;) (type $F) (result f64)
(func $~lib/math/NativeMath.random (; 96 ;) (; has Stack IR ;) (type $F) (result f64)
(local $0 i64)
(local $1 i64)
(if
@ -6996,21 +7061,21 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 456)
(i32.const 962)
(i32.const 964)
(i32.const 24)
)
(unreachable)
)
)
(set_local $0
(get_global $~lib/math/random_state0)
(get_global $~lib/math/random_state0_64)
)
(set_global $~lib/math/random_state0
(set_global $~lib/math/random_state0_64
(tee_local $1
(get_global $~lib/math/random_state1)
(get_global $~lib/math/random_state1_64)
)
)
(set_global $~lib/math/random_state1
(set_global $~lib/math/random_state1_64
(tee_local $0
(i64.xor
(i64.xor
@ -7054,7 +7119,7 @@
(f64.const 1)
)
)
(func $std/array/createRandomOrderedArray (; 96 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $std/array/createRandomOrderedArray (; 97 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 f64)
(set_local $0
@ -7100,7 +7165,7 @@
)
(get_local $0)
)
(func $std/array/isSorted<i32> (; 97 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/array/isSorted<i32> (; 98 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -7165,7 +7230,7 @@
)
(i32.const 1)
)
(func $std/array/assertSorted<i32> (; 98 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32)
(func $std/array/assertSorted<i32> (; 99 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32)
(if
(i32.eqz
(call $std/array/isSorted<i32>
@ -7187,19 +7252,19 @@
)
)
)
(func $std/array/assertSortedDefault<i32> (; 99 ;) (; has Stack IR ;) (type $iv) (param $0 i32)
(func $std/array/assertSortedDefault<i32> (; 100 ;) (; has Stack IR ;) (type $iv) (param $0 i32)
(call $std/array/assertSorted<i32>
(get_local $0)
(i32.const 47)
)
)
(func $start~anonymous|49 (; 100 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start~anonymous|49 (; 101 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(get_local $1)
(get_local $0)
)
)
(func $std/array/createReverseOrderedNestedArray (; 101 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $std/array/createReverseOrderedNestedArray (; 102 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -7257,7 +7322,7 @@
)
(get_local $1)
)
(func $start~anonymous|52 (; 102 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start~anonymous|52 (; 103 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(set_local $0
(call $~lib/array/Array<u32>#__get
(get_local $0)
@ -7275,7 +7340,7 @@
(get_local $1)
)
)
(func $~lib/array/Array<Array<i32>>#sort (; 103 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<Array<i32>>#sort (; 104 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -7368,7 +7433,7 @@
)
(get_local $0)
)
(func $std/array/assertSorted<Array<i32>> (; 104 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32)
(func $std/array/assertSorted<Array<i32>> (; 105 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32)
(if
(i32.eqz
(call $std/array/isSorted<i32>
@ -7390,7 +7455,7 @@
)
)
)
(func $std/array/Proxy<i32>#constructor (; 105 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/array/Proxy<i32>#constructor (; 106 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(i32.store
(tee_local $1
@ -7402,7 +7467,7 @@
)
(get_local $1)
)
(func $std/array/createReverseOrderedElementsArray (; 106 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $std/array/createReverseOrderedElementsArray (; 107 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -7450,7 +7515,7 @@
)
(get_local $1)
)
(func $start~anonymous|53 (; 107 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start~anonymous|53 (; 108 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(i32.load
(get_local $0)
@ -7460,7 +7525,7 @@
)
)
)
(func $~lib/internal/string/compareUnsafe (; 108 ;) (; has Stack IR ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/internal/string/compareUnsafe (; 109 ;) (; has Stack IR ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(set_local $3
@ -7511,7 +7576,7 @@
)
(get_local $4)
)
(func $~lib/string/String.__gt (; 109 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__gt (; 110 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(if
@ -7586,7 +7651,7 @@
(i32.const 0)
)
)
(func $~lib/string/String.__lt (; 110 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__lt (; 111 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(if
@ -7661,7 +7726,7 @@
(i32.const 0)
)
)
(func $start~anonymous|54 (; 111 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start~anonymous|54 (; 112 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(set_local $2
(call $~lib/string/String.__gt
@ -7680,7 +7745,7 @@
(get_local $0)
)
)
(func $~lib/string/String.__eq (; 112 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__eq (; 113 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(if
(i32.eq
@ -7734,7 +7799,7 @@
)
)
)
(func $~lib/string/String.__ne (; 113 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__ne (; 114 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.eqz
(call $~lib/string/String.__eq
(get_local $0)
@ -7742,7 +7807,7 @@
)
)
)
(func $std/array/isArraysEqual<String> (; 114 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/array/isArraysEqual<String> (; 115 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -7813,7 +7878,7 @@
)
(i32.const 1)
)
(func $~lib/internal/string/allocateUnsafe (; 115 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/string/allocateUnsafe (; 116 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(if
(tee_local $1
@ -7859,7 +7924,7 @@
)
(get_local $1)
)
(func $~lib/string/String#charAt (; 116 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String#charAt (; 117 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(if
(i32.ge_u
@ -7890,7 +7955,7 @@
)
(get_local $1)
)
(func $~lib/internal/string/copyUnsafe (; 117 ;) (; has Stack IR ;) (type $iiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32)
(func $~lib/internal/string/copyUnsafe (; 118 ;) (; has Stack IR ;) (type $iiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32)
(call $~lib/internal/memory/memmove
(i32.add
(i32.add
@ -7918,7 +7983,7 @@
)
)
)
(func $~lib/string/String#concat (; 118 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String#concat (; 119 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -7985,7 +8050,7 @@
)
(get_local $2)
)
(func $~lib/string/String.__concat (; 119 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__concat (; 120 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(if
(i32.eqz
(get_local $0)
@ -7999,7 +8064,7 @@
(get_local $1)
)
)
(func $std/array/createRandomString (; 120 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $std/array/createRandomString (; 121 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -8047,7 +8112,7 @@
)
(get_local $1)
)
(func $std/array/createRandomStringArray (; 121 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $std/array/createRandomStringArray (; 122 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -8092,7 +8157,7 @@
)
(get_local $1)
)
(func $~lib/string/String#substring (; 122 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String#substring (; 123 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -8208,7 +8273,7 @@
)
(get_local $2)
)
(func $~lib/array/Array<bool>#join (; 123 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $~lib/array/Array<bool>#join (; 124 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -8421,7 +8486,7 @@
)
(get_local $1)
)
(func $~lib/internal/number/decimalCount32 (; 124 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/decimalCount32 (; 125 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(if (result i32)
(i32.lt_u
(get_local $0)
@ -8487,7 +8552,7 @@
)
)
)
(func $~lib/internal/number/utoa32_lut (; 125 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/internal/number/utoa32_lut (; 126 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(set_local $3
@ -8648,7 +8713,7 @@
)
)
)
(func $~lib/internal/number/itoa32 (; 126 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/itoa32 (; 127 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -8701,12 +8766,12 @@
)
(get_local $1)
)
(func $~lib/internal/number/itoa<i32> (; 127 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/itoa<i32> (; 128 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(call $~lib/internal/number/itoa32
(get_local $0)
)
)
(func $~lib/internal/number/itoa_stream<i32> (; 128 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/internal/number/itoa_stream<i32> (; 129 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(set_local $0
(i32.add
@ -8769,7 +8834,7 @@
)
(get_local $1)
)
(func $~lib/array/Array<i32>#join (; 129 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#join (; 130 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -8947,7 +9012,7 @@
)
(get_local $3)
)
(func $~lib/internal/number/utoa32 (; 130 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/utoa32 (; 131 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(if
@ -8973,12 +9038,12 @@
)
(get_local $2)
)
(func $~lib/internal/number/itoa<u32> (; 131 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/itoa<u32> (; 132 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(call $~lib/internal/number/utoa32
(get_local $0)
)
)
(func $~lib/internal/number/itoa_stream<u32> (; 132 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/internal/number/itoa_stream<u32> (; 133 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(set_local $0
(i32.add
@ -9015,7 +9080,7 @@
)
(get_local $3)
)
(func $~lib/array/Array<u32>#join (; 133 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<u32>#join (; 134 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -9193,7 +9258,7 @@
)
(get_local $3)
)
(func $~lib/builtins/isFinite<f64> (; 134 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32)
(func $~lib/builtins/isFinite<f64> (; 135 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32)
(f64.eq
(f64.sub
(get_local $0)
@ -9202,7 +9267,7 @@
(f64.const 0)
)
)
(func $~lib/internal/number/genDigits (; 135 ;) (; has Stack IR ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32)
(func $~lib/internal/number/genDigits (; 136 ;) (; has Stack IR ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32)
(local $7 i32)
(local $8 i64)
(local $9 i32)
@ -9801,7 +9866,7 @@
)
)
)
(func $~lib/internal/number/prettify (; 136 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/internal/number/prettify (; 137 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(if
@ -10189,7 +10254,7 @@
)
)
)
(func $~lib/internal/number/dtoa_core (; 137 ;) (; has Stack IR ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32)
(func $~lib/internal/number/dtoa_core (; 138 ;) (; has Stack IR ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32)
(local $2 i64)
(local $3 i32)
(local $4 i64)
@ -10694,7 +10759,7 @@
(get_local $14)
)
)
(func $~lib/internal/number/dtoa (; 138 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32)
(func $~lib/internal/number/dtoa (; 139 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32)
(local $1 i32)
(local $2 i32)
(if
@ -10766,7 +10831,7 @@
(call $~lib/allocator/arena/__memory_free)
(get_local $2)
)
(func $~lib/internal/number/dtoa_stream (; 139 ;) (; has Stack IR ;) (type $iiFi) (param $0 i32) (param $1 i32) (param $2 f64) (result i32)
(func $~lib/internal/number/dtoa_stream (; 140 ;) (; has Stack IR ;) (type $iiFi) (param $0 i32) (param $1 i32) (param $2 f64) (result i32)
(local $3 i32)
(set_local $0
(i32.add
@ -10865,7 +10930,7 @@
(get_local $2)
)
)
(func $~lib/array/Array<f64>#join (; 140 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $~lib/array/Array<f64>#join (; 141 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -11044,7 +11109,7 @@
)
(get_local $3)
)
(func $~lib/array/Array<String>#join (; 141 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<String>#join (; 142 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -11243,12 +11308,12 @@
)
(get_local $0)
)
(func $std/array/Ref#constructor (; 142 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $std/array/Ref#constructor (; 143 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(call $~lib/memory/memory.allocate
(i32.const 0)
)
)
(func $~lib/array/Array<Ref>#__unchecked_set (; 143 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/array/Array<Ref>#__unchecked_set (; 144 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(i32.store offset=8
(i32.add
(i32.load
@ -11262,7 +11327,7 @@
(get_local $2)
)
)
(func $~lib/array/Array<Ref>#join (; 144 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Ref>#join (; 145 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -11446,7 +11511,7 @@
)
(get_local $2)
)
(func $~lib/internal/number/itoa<i8> (; 145 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/itoa<i8> (; 146 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(call $~lib/internal/number/itoa32
(i32.shr_s
(i32.shl
@ -11457,7 +11522,7 @@
)
)
)
(func $~lib/internal/number/itoa_stream<i8> (; 146 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/internal/number/itoa_stream<i8> (; 147 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(set_local $0
(i32.add
@ -11541,7 +11606,7 @@
)
(get_local $1)
)
(func $~lib/array/Array<i8>#join (; 147 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $~lib/array/Array<i8>#join (; 148 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -11714,7 +11779,7 @@
)
(get_local $3)
)
(func $~lib/internal/number/itoa<u16> (; 148 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/itoa<u16> (; 149 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(call $~lib/internal/number/utoa32
(i32.and
(get_local $0)
@ -11722,7 +11787,7 @@
)
)
)
(func $~lib/internal/number/itoa_stream<u16> (; 149 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/internal/number/itoa_stream<u16> (; 150 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(set_local $0
(i32.add
@ -11768,7 +11833,7 @@
)
(get_local $3)
)
(func $~lib/array/Array<u16>#join (; 150 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $~lib/array/Array<u16>#join (; 151 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -11947,7 +12012,7 @@
)
(get_local $3)
)
(func $~lib/internal/number/decimalCount64 (; 151 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(func $~lib/internal/number/decimalCount64 (; 152 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(if (result i32)
(i64.lt_u
(get_local $0)
@ -12013,7 +12078,7 @@
)
)
)
(func $~lib/internal/number/utoa64_lut (; 152 ;) (; has Stack IR ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32)
(func $~lib/internal/number/utoa64_lut (; 153 ;) (; has Stack IR ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -12159,7 +12224,7 @@
(get_local $2)
)
)
(func $~lib/internal/number/utoa64 (; 153 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(func $~lib/internal/number/utoa64 (; 154 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -12209,12 +12274,12 @@
)
(get_local $2)
)
(func $~lib/internal/number/itoa<u64> (; 154 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(func $~lib/internal/number/itoa<u64> (; 155 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(call $~lib/internal/number/utoa64
(get_local $0)
)
)
(func $~lib/internal/number/itoa_stream<u64> (; 155 ;) (; has Stack IR ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
(func $~lib/internal/number/itoa_stream<u64> (; 156 ;) (; has Stack IR ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
(local $3 i32)
(set_local $0
(i32.add
@ -12275,7 +12340,7 @@
)
(get_local $1)
)
(func $~lib/array/Array<u64>#join (; 156 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $~lib/array/Array<u64>#join (; 157 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -12454,7 +12519,7 @@
)
(get_local $3)
)
(func $~lib/internal/number/itoa64 (; 157 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(func $~lib/internal/number/itoa64 (; 158 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -12536,12 +12601,12 @@
)
(get_local $1)
)
(func $~lib/internal/number/itoa<i64> (; 158 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(func $~lib/internal/number/itoa<i64> (; 159 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(call $~lib/internal/number/itoa64
(get_local $0)
)
)
(func $~lib/internal/number/itoa_stream<i64> (; 159 ;) (; has Stack IR ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
(func $~lib/internal/number/itoa_stream<i64> (; 160 ;) (; has Stack IR ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
(local $3 i32)
(local $4 i32)
(set_local $0
@ -12634,7 +12699,7 @@
)
(get_local $1)
)
(func $~lib/array/Array<i64>#join (; 160 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $~lib/array/Array<i64>#join (; 161 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -12813,7 +12878,7 @@
)
(get_local $3)
)
(func $~lib/array/Array<Array<i32>>#join (; 161 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Array<i32>>#join (; 162 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -12957,7 +13022,7 @@
)
(get_local $1)
)
(func $~lib/internal/number/itoa<u8> (; 162 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/itoa<u8> (; 163 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(call $~lib/internal/number/utoa32
(i32.and
(get_local $0)
@ -12965,7 +13030,7 @@
)
)
)
(func $~lib/internal/number/itoa_stream<u8> (; 163 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/internal/number/itoa_stream<u8> (; 164 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(set_local $0
(i32.add
@ -13011,7 +13076,7 @@
)
(get_local $3)
)
(func $~lib/array/Array<u8>#join (; 164 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<u8>#join (; 165 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -13183,7 +13248,7 @@
)
(get_local $3)
)
(func $~lib/array/Array<Array<u8>>#join (; 165 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Array<u8>>#join (; 166 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -13327,7 +13392,7 @@
)
(get_local $1)
)
(func $~lib/array/Array<Array<u32>>#join (; 166 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<Array<u32>>#join (; 167 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -13471,7 +13536,7 @@
)
(get_local $2)
)
(func $~lib/array/Array<Array<Array<u32>>>#join (; 167 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Array<Array<u32>>>#join (; 168 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -13615,7 +13680,7 @@
)
(get_local $1)
)
(func $start (; 168 ;) (; has Stack IR ;) (type $v)
(func $start (; 169 ;) (; has Stack IR ;) (type $v)
(local $0 i32)
(local $1 i32)
(local $2 f32)
@ -17577,7 +17642,7 @@
)
)
)
(func $null (; 169 ;) (; has Stack IR ;) (type $v)
(func $null (; 170 ;) (; has Stack IR ;) (type $v)
(nop)
)
)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -21,67 +21,64 @@
(start $start)
(func $~lib/math/NativeMath.mod (; 2 ;) (; has Stack IR ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(local $2 i64)
(local $3 i32)
(local $3 i64)
(local $4 i64)
(local $5 i64)
(local $6 i32)
(local $6 i64)
(local $7 i32)
(local $8 i32)
(local $8 i64)
(local $9 i64)
(block $folding-inner0
(set_local $3
(i32.wrap/i64
(i64.and
(i64.shr_u
(tee_local $2
(i64.reinterpret/f64
(get_local $0)
)
(i64.and
(i64.shr_u
(tee_local $2
(i64.reinterpret/f64
(get_local $0)
)
(i64.const 52)
)
(i64.const 2047)
(i64.const 52)
)
(i64.const 2047)
)
)
(set_local $6
(i32.wrap/i64
(i64.and
(i64.shr_u
(tee_local $5
(i64.reinterpret/f64
(get_local $1)
)
(i64.and
(i64.shr_u
(tee_local $5
(i64.reinterpret/f64
(get_local $1)
)
(i64.const 52)
)
(i64.const 2047)
(i64.const 52)
)
(i64.const 2047)
)
)
(set_local $8
(i32.wrap/i64
(i64.shr_u
(get_local $2)
(i64.const 63)
)
(i64.shr_u
(get_local $2)
(i64.const 63)
)
)
(if
(i32.eqz
(tee_local $7
(i64.eq
(i64.shl
(get_local $5)
(i64.const 1)
(tee_local $4
(i64.shl
(get_local $5)
(i64.const 1)
)
)
(i64.const 0)
)
)
)
(set_local $7
(f64.ne
(get_local $1)
(get_local $1)
(i64.eq
(get_local $3)
(i64.const 2047)
)
)
)
@ -90,9 +87,9 @@
(get_local $7)
)
(set_local $7
(i32.eq
(get_local $3)
(i32.const 2047)
(f64.ne
(get_local $1)
(get_local $1)
)
)
)
@ -112,26 +109,19 @@
)
(if
(i64.le_u
(i64.shl
(get_local $2)
(i64.const 1)
)
(i64.shl
(get_local $5)
(i64.const 1)
(tee_local $9
(i64.shl
(get_local $2)
(i64.const 1)
)
)
(get_local $4)
)
(block
(br_if $folding-inner0
(i64.eq
(i64.shl
(get_local $2)
(i64.const 1)
)
(i64.shl
(get_local $5)
(i64.const 1)
)
(get_local $9)
(get_local $4)
)
)
(return
@ -141,7 +131,29 @@
)
(set_local $2
(if (result i64)
(get_local $3)
(i64.eqz
(get_local $3)
)
(i64.shl
(get_local $2)
(i64.add
(i64.sub
(i64.const 0)
(tee_local $3
(i64.sub
(get_local $3)
(i64.clz
(i64.shl
(get_local $2)
(i64.const 12)
)
)
)
)
)
(i64.const 1)
)
)
(i64.or
(i64.and
(get_local $2)
@ -149,55 +161,33 @@
)
(i64.const 4503599627370496)
)
(block (result i64)
(block $break|0
(set_local $4
(i64.shl
(get_local $2)
(i64.const 12)
)
)
(loop $repeat|0
(br_if $break|0
(i32.eqz
(i64.eqz
(i64.shr_u
(get_local $4)
(i64.const 63)
)
)
)
)
(set_local $3
(i32.sub
(get_local $3)
(i32.const 1)
)
)
(set_local $4
(i64.shl
(get_local $4)
(i64.const 1)
)
)
(br $repeat|0)
)
)
(i64.shl
(get_local $2)
(i64.extend_s/i32
(i32.sub
(i32.const 1)
(get_local $3)
)
)
)
)
)
)
(set_local $5
(if (result i64)
(get_local $6)
(i64.eqz
(get_local $6)
)
(i64.shl
(get_local $5)
(i64.add
(i64.sub
(i64.const 0)
(tee_local $6
(i64.sub
(get_local $6)
(i64.clz
(i64.shl
(get_local $5)
(i64.const 12)
)
)
)
)
)
(i64.const 1)
)
)
(i64.or
(i64.and
(get_local $5)
@ -205,56 +195,12 @@
)
(i64.const 4503599627370496)
)
(block (result i64)
(block $break|1
(set_local $4
(i64.shl
(get_local $5)
(i64.const 12)
)
)
(loop $repeat|1
(br_if $break|1
(i32.eqz
(i64.eqz
(i64.shr_u
(get_local $4)
(i64.const 63)
)
)
)
)
(set_local $6
(i32.sub
(get_local $6)
(i32.const 1)
)
)
(set_local $4
(i64.shl
(get_local $4)
(i64.const 1)
)
)
(br $repeat|1)
)
)
(i64.shl
(get_local $5)
(i64.extend_s/i32
(i32.sub
(i32.const 1)
(get_local $6)
)
)
)
)
)
)
(block $break|2
(loop $repeat|2
(br_if $break|2
(i32.le_s
(block $break|0
(loop $repeat|0
(br_if $break|0
(i64.le_s
(get_local $3)
(get_local $6)
)
@ -289,12 +235,12 @@
)
)
(set_local $3
(i32.sub
(i64.sub
(get_local $3)
(i32.const 1)
(i64.const 1)
)
)
(br $repeat|2)
(br $repeat|0)
)
)
(if
@ -320,31 +266,17 @@
)
)
)
(block $break|3
(loop $repeat|3
(br_if $break|3
(i32.eqz
(i64.eqz
(i64.shr_u
(get_local $2)
(i64.const 52)
)
(set_local $2
(i64.shl
(get_local $2)
(tee_local $4
(i64.clz
(i64.shl
(get_local $2)
(i64.const 11)
)
)
)
(set_local $3
(i32.sub
(get_local $3)
(i32.const 1)
)
)
(set_local $2
(i64.shl
(get_local $2)
(i64.const 1)
)
)
(br $repeat|3)
)
)
(return
@ -352,9 +284,14 @@
(i64.or
(tee_local $2
(if (result i64)
(i32.gt_s
(get_local $3)
(i32.const 0)
(i64.gt_s
(tee_local $3
(i64.sub
(get_local $3)
(get_local $4)
)
)
(i64.const 0)
)
(i64.or
(i64.sub
@ -362,27 +299,24 @@
(i64.const 4503599627370496)
)
(i64.shl
(i64.extend_s/i32
(get_local $3)
)
(get_local $3)
(i64.const 52)
)
)
(i64.shr_u
(get_local $2)
(i64.extend_s/i32
(i32.sub
(i32.const 1)
(i64.add
(i64.sub
(i64.const 0)
(get_local $3)
)
(i64.const 1)
)
)
)
)
(i64.shl
(i64.extend_s/i32
(get_local $8)
)
(get_local $8)
(i64.const 63)
)
)
@ -467,6 +401,7 @@
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i32)
(block $folding-inner0
(set_local $4
(i32.and
@ -494,7 +429,7 @@
(i32.const 255)
)
)
(set_local $7
(set_local $8
(i32.and
(get_local $2)
(i32.const -2147483648)
@ -504,27 +439,15 @@
(i32.eqz
(tee_local $3
(i32.eqz
(i32.shl
(get_local $5)
(i32.const 1)
(tee_local $7
(i32.shl
(get_local $5)
(i32.const 1)
)
)
)
)
)
(set_local $3
(f32.ne
(get_local $1)
(get_local $1)
)
)
)
(if
(i32.eqz
(i32.and
(get_local $3)
(i32.const 1)
)
)
(set_local $3
(i32.eq
(get_local $4)
@ -532,6 +455,17 @@
)
)
)
(if
(i32.eqz
(get_local $3)
)
(set_local $3
(f32.ne
(get_local $1)
(get_local $1)
)
)
)
(if
(i32.and
(get_local $3)
@ -551,26 +485,19 @@
)
(if
(i32.le_u
(i32.shl
(get_local $2)
(i32.const 1)
)
(i32.shl
(get_local $5)
(i32.const 1)
(tee_local $3
(i32.shl
(get_local $2)
(i32.const 1)
)
)
(get_local $7)
)
(block
(br_if $folding-inner0
(i32.eq
(i32.shl
(get_local $2)
(i32.const 1)
)
(i32.shl
(get_local $5)
(i32.const 1)
)
(get_local $3)
(get_local $7)
)
)
(return
@ -588,41 +515,20 @@
)
(i32.const 8388608)
)
(block (result i32)
(block $break|0
(set_local $3
(i32.shl
(get_local $2)
(i32.const 9)
)
)
(loop $repeat|0
(br_if $break|0
(i32.shr_u
(get_local $3)
(i32.const 31)
(i32.shl
(get_local $2)
(i32.sub
(i32.const 1)
(tee_local $4
(i32.sub
(get_local $4)
(i32.clz
(i32.shl
(get_local $2)
(i32.const 9)
)
)
)
(set_local $4
(i32.sub
(get_local $4)
(i32.const 1)
)
)
(set_local $3
(i32.shl
(get_local $3)
(i32.const 1)
)
)
(br $repeat|0)
)
)
(i32.shl
(get_local $2)
(i32.sub
(i32.const 1)
(get_local $4)
)
)
)
@ -638,49 +544,28 @@
)
(i32.const 8388608)
)
(block (result i32)
(block $break|1
(set_local $3
(i32.shl
(get_local $5)
(i32.const 9)
)
)
(loop $repeat|1
(br_if $break|1
(i32.shr_u
(get_local $3)
(i32.const 31)
(i32.shl
(get_local $5)
(i32.sub
(i32.const 1)
(tee_local $6
(i32.sub
(get_local $6)
(i32.clz
(i32.shl
(get_local $5)
(i32.const 9)
)
)
)
(set_local $6
(i32.sub
(get_local $6)
(i32.const 1)
)
)
(set_local $3
(i32.shl
(get_local $3)
(i32.const 1)
)
)
(br $repeat|1)
)
)
(i32.shl
(get_local $5)
(i32.sub
(i32.const 1)
(get_local $6)
)
)
)
)
)
(block $break|2
(loop $repeat|2
(br_if $break|2
(block $break|0
(loop $repeat|0
(br_if $break|0
(i32.le_s
(get_local $4)
(get_local $6)
@ -721,7 +606,7 @@
(i32.const 1)
)
)
(br $repeat|2)
(br $repeat|0)
)
)
(if
@ -747,27 +632,17 @@
)
)
)
(block $break|3
(loop $repeat|3
(br_if $break|3
(i32.shr_u
(get_local $2)
(i32.const 23)
(set_local $2
(i32.shl
(get_local $2)
(tee_local $3
(i32.clz
(i32.shl
(get_local $2)
(i32.const 8)
)
)
)
(set_local $4
(i32.sub
(get_local $4)
(i32.const 1)
)
)
(set_local $2
(i32.shl
(get_local $2)
(i32.const 1)
)
)
(br $repeat|3)
)
)
(return
@ -776,7 +651,12 @@
(tee_local $2
(if (result i32)
(i32.gt_s
(get_local $4)
(tee_local $4
(i32.sub
(get_local $4)
(get_local $3)
)
)
(i32.const 0)
)
(i32.or
@ -798,7 +678,7 @@
)
)
)
(get_local $7)
(get_local $8)
)
)
)

View File

@ -26,11 +26,14 @@
(func $~lib/math/NativeMath.mod (; 2 ;) (type $FFF) (param $0 f64) (param $1 f64) (result f64)
(local $2 i64)
(local $3 i64)
(local $4 i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i64)
(local $4 i64)
(local $5 i64)
(local $6 i64)
(local $7 i64)
(local $8 i32)
(local $9 i64)
(local $10 i64)
(local $11 i64)
(set_local $2
(i64.reinterpret/f64
(get_local $0)
@ -42,65 +45,59 @@
)
)
(set_local $4
(i32.wrap/i64
(i64.and
(i64.shr_u
(get_local $2)
(i64.const 52)
)
(i64.const 2047)
(i64.and
(i64.shr_u
(get_local $2)
(i64.const 52)
)
(i64.const 2047)
)
)
(set_local $5
(i32.wrap/i64
(i64.and
(i64.shr_u
(get_local $3)
(i64.const 52)
)
(i64.const 2047)
(i64.and
(i64.shr_u
(get_local $3)
(i64.const 52)
)
(i64.const 2047)
)
)
(set_local $6
(i32.wrap/i64
(i64.shr_u
(get_local $2)
(i64.const 63)
)
(i64.shr_u
(get_local $2)
(i64.const 63)
)
)
(set_local $7
(i64.shl
(get_local $3)
(i64.const 1)
)
)
(if
(i32.and
(if (result i32)
(i32.and
(tee_local $7
(if (result i32)
(tee_local $7
(i64.eq
(i64.shl
(get_local $3)
(i64.const 1)
)
(i64.const 0)
)
)
(get_local $7)
(block $~lib/builtins/isNaN<f64>|inlined.1 (result i32)
(f64.ne
(get_local $1)
(get_local $1)
)
(tee_local $8
(if (result i32)
(tee_local $8
(i64.eq
(get_local $7)
(i64.const 0)
)
)
(get_local $8)
(i64.eq
(get_local $4)
(i64.const 2047)
)
)
(i32.const 1)
)
(get_local $7)
(i32.eq
(get_local $4)
(i32.const 2047)
(get_local $8)
(block $~lib/builtins/isNaN<f64>|inlined.1 (result i32)
(f64.ne
(get_local $1)
(get_local $1)
)
)
)
(i32.const 1)
@ -118,28 +115,22 @@
)
)
)
(set_local $9
(i64.shl
(get_local $2)
(i64.const 1)
)
)
(if
(i64.le_u
(i64.shl
(get_local $2)
(i64.const 1)
)
(i64.shl
(get_local $3)
(i64.const 1)
)
(get_local $9)
(get_local $7)
)
(block
(if
(i64.eq
(i64.shl
(get_local $2)
(i64.const 1)
)
(i64.shl
(get_local $3)
(i64.const 1)
)
(get_local $9)
(get_local $7)
)
(return
(f64.mul
@ -154,54 +145,30 @@
)
)
(if
(i32.eqz
(i64.eqz
(get_local $4)
)
(block
(block $break|0
(set_local $8
(i64.shl
(get_local $2)
(i64.const 12)
)
)
(loop $repeat|0
(br_if $break|0
(i32.eqz
(i64.eqz
(i64.shr_u
(get_local $8)
(i64.const 63)
)
)
)
)
(set_local $4
(i32.sub
(get_local $4)
(i32.const 1)
)
)
(set_local $8
(set_local $4
(i64.sub
(get_local $4)
(i64.clz
(i64.shl
(get_local $8)
(i64.const 1)
(get_local $2)
(i64.const 12)
)
)
(br $repeat|0)
)
)
(set_local $2
(i64.shl
(get_local $2)
(i64.extend_s/i32
(i32.add
(i32.sub
(i32.const 0)
(get_local $4)
)
(i32.const 1)
(i64.add
(i64.sub
(i64.const 0)
(get_local $4)
)
(i64.const 1)
)
)
)
@ -228,54 +195,30 @@
)
)
(if
(i32.eqz
(i64.eqz
(get_local $5)
)
(block
(block $break|1
(set_local $8
(i64.shl
(get_local $3)
(i64.const 12)
)
)
(loop $repeat|1
(br_if $break|1
(i32.eqz
(i64.eqz
(i64.shr_u
(get_local $8)
(i64.const 63)
)
)
)
)
(set_local $5
(i32.sub
(get_local $5)
(i32.const 1)
)
)
(set_local $8
(set_local $5
(i64.sub
(get_local $5)
(i64.clz
(i64.shl
(get_local $8)
(i64.const 1)
(get_local $3)
(i64.const 12)
)
)
(br $repeat|1)
)
)
(set_local $3
(i64.shl
(get_local $3)
(i64.extend_s/i32
(i32.add
(i32.sub
(i32.const 0)
(get_local $5)
)
(i32.const 1)
(i64.add
(i64.sub
(i64.const 0)
(get_local $5)
)
(i64.const 1)
)
)
)
@ -301,18 +244,18 @@
)
)
)
(block $break|2
(loop $repeat|2
(br_if $break|2
(block $break|0
(loop $repeat|0
(br_if $break|0
(i32.eqz
(i32.gt_s
(i64.gt_s
(get_local $4)
(get_local $5)
)
)
)
(block
(set_local $8
(set_local $10
(i64.sub
(get_local $2)
(get_local $3)
@ -321,14 +264,14 @@
(if
(i64.eqz
(i64.shr_u
(get_local $8)
(get_local $10)
(i64.const 63)
)
)
(block
(if
(i64.eqz
(get_local $8)
(get_local $10)
)
(return
(f64.mul
@ -338,7 +281,7 @@
)
)
(set_local $2
(get_local $8)
(get_local $10)
)
)
)
@ -350,15 +293,15 @@
)
)
(set_local $4
(i32.sub
(i64.sub
(get_local $4)
(i32.const 1)
(i64.const 1)
)
)
(br $repeat|2)
(br $repeat|0)
)
)
(set_local $8
(set_local $10
(i64.sub
(get_local $2)
(get_local $3)
@ -367,14 +310,14 @@
(if
(i64.eqz
(i64.shr_u
(get_local $8)
(get_local $10)
(i64.const 63)
)
)
(block
(if
(i64.eqz
(get_local $8)
(get_local $10)
)
(return
(f64.mul
@ -384,41 +327,34 @@
)
)
(set_local $2
(get_local $8)
(get_local $10)
)
)
)
(block $break|3
(loop $repeat|3
(br_if $break|3
(i32.eqz
(i64.eqz
(i64.shr_u
(get_local $2)
(i64.const 52)
)
)
)
(set_local $11
(i64.clz
(i64.shl
(get_local $2)
(i64.const 11)
)
(set_local $4
(i32.sub
(get_local $4)
(i32.const 1)
)
)
(set_local $2
(i64.shl
(get_local $2)
(i64.const 1)
)
)
(br $repeat|3)
)
)
(set_local $4
(i64.sub
(get_local $4)
(get_local $11)
)
)
(set_local $2
(i64.shl
(get_local $2)
(get_local $11)
)
)
(if
(i32.gt_s
(i64.gt_s
(get_local $4)
(i32.const 0)
(i64.const 0)
)
(block
(set_local $2
@ -434,9 +370,7 @@
(i64.or
(get_local $2)
(i64.shl
(i64.extend_s/i32
(get_local $4)
)
(get_local $4)
(i64.const 52)
)
)
@ -445,14 +379,12 @@
(set_local $2
(i64.shr_u
(get_local $2)
(i64.extend_s/i32
(i32.add
(i32.sub
(i32.const 0)
(get_local $4)
)
(i32.const 1)
(i64.add
(i64.sub
(i64.const 0)
(get_local $4)
)
(i64.const 1)
)
)
)
@ -461,9 +393,7 @@
(i64.or
(get_local $2)
(i64.shl
(i64.extend_s/i32
(get_local $6)
)
(get_local $6)
(i64.const 63)
)
)
@ -552,6 +482,9 @@
(local $6 i32)
(local $7 i32)
(local $8 i32)
(local $9 i32)
(local $10 i32)
(local $11 i32)
(set_local $2
(i32.reinterpret/f32
(get_local $0)
@ -586,36 +519,36 @@
(i32.const -2147483648)
)
)
(set_local $7
(i32.shl
(get_local $3)
(i32.const 1)
)
)
(if
(i32.and
(if (result i32)
(i32.and
(tee_local $7
(if (result i32)
(tee_local $7
(i32.eq
(i32.shl
(get_local $3)
(i32.const 1)
)
(i32.const 0)
)
)
(get_local $7)
(block $~lib/builtins/isNaN<f32>|inlined.1 (result i32)
(f32.ne
(get_local $1)
(get_local $1)
)
(tee_local $8
(if (result i32)
(tee_local $8
(i32.eq
(get_local $7)
(i32.const 0)
)
)
(get_local $8)
(i32.eq
(get_local $4)
(i32.const 255)
)
)
(i32.const 1)
)
(get_local $7)
(i32.eq
(get_local $4)
(i32.const 255)
(get_local $8)
(block $~lib/builtins/isNaN<f32>|inlined.1 (result i32)
(f32.ne
(get_local $1)
(get_local $1)
)
)
)
(i32.const 1)
@ -633,28 +566,22 @@
)
)
)
(set_local $9
(i32.shl
(get_local $2)
(i32.const 1)
)
)
(if
(i32.le_u
(i32.shl
(get_local $2)
(i32.const 1)
)
(i32.shl
(get_local $3)
(i32.const 1)
)
(get_local $9)
(get_local $7)
)
(block
(if
(i32.eq
(i32.shl
(get_local $2)
(i32.const 1)
)
(i32.shl
(get_local $3)
(i32.const 1)
)
(get_local $9)
(get_local $7)
)
(return
(f32.mul
@ -673,37 +600,15 @@
(get_local $4)
)
(block
(block $break|0
(set_local $8
(i32.shl
(get_local $2)
(i32.const 9)
)
)
(loop $repeat|0
(br_if $break|0
(i32.eqz
(i32.eqz
(i32.shr_u
(get_local $8)
(i32.const 31)
)
)
)
)
(set_local $4
(i32.sub
(get_local $4)
(i32.const 1)
)
)
(set_local $8
(set_local $4
(i32.sub
(get_local $4)
(i32.clz
(i32.shl
(get_local $8)
(i32.const 1)
(get_local $2)
(i32.const 9)
)
)
(br $repeat|0)
)
)
(set_local $2
@ -745,37 +650,15 @@
(get_local $5)
)
(block
(block $break|1
(set_local $8
(i32.shl
(get_local $3)
(i32.const 9)
)
)
(loop $repeat|1
(br_if $break|1
(i32.eqz
(i32.eqz
(i32.shr_u
(get_local $8)
(i32.const 31)
)
)
)
)
(set_local $5
(i32.sub
(get_local $5)
(i32.const 1)
)
)
(set_local $8
(set_local $5
(i32.sub
(get_local $5)
(i32.clz
(i32.shl
(get_local $8)
(i32.const 1)
(get_local $3)
(i32.const 9)
)
)
(br $repeat|1)
)
)
(set_local $3
@ -812,9 +695,9 @@
)
)
)
(block $break|2
(loop $repeat|2
(br_if $break|2
(block $break|0
(loop $repeat|0
(br_if $break|0
(i32.eqz
(i32.gt_s
(get_local $4)
@ -823,7 +706,7 @@
)
)
(block
(set_local $8
(set_local $10
(i32.sub
(get_local $2)
(get_local $3)
@ -832,14 +715,14 @@
(if
(i32.eqz
(i32.shr_u
(get_local $8)
(get_local $10)
(i32.const 31)
)
)
(block
(if
(i32.eqz
(get_local $8)
(get_local $10)
)
(return
(f32.mul
@ -849,7 +732,7 @@
)
)
(set_local $2
(get_local $8)
(get_local $10)
)
)
)
@ -866,10 +749,10 @@
(i32.const 1)
)
)
(br $repeat|2)
(br $repeat|0)
)
)
(set_local $8
(set_local $10
(i32.sub
(get_local $2)
(get_local $3)
@ -878,14 +761,14 @@
(if
(i32.eqz
(i32.shr_u
(get_local $8)
(get_local $10)
(i32.const 31)
)
)
(block
(if
(i32.eqz
(get_local $8)
(get_local $10)
)
(return
(f32.mul
@ -895,35 +778,28 @@
)
)
(set_local $2
(get_local $8)
(get_local $10)
)
)
)
(block $break|3
(loop $repeat|3
(br_if $break|3
(i32.eqz
(i32.eqz
(i32.shr_u
(get_local $2)
(i32.const 23)
)
)
)
(set_local $11
(i32.clz
(i32.shl
(get_local $2)
(i32.const 8)
)
(set_local $4
(i32.sub
(get_local $4)
(i32.const 1)
)
)
(set_local $2
(i32.shl
(get_local $2)
(i32.const 1)
)
)
(br $repeat|3)
)
)
(set_local $4
(i32.sub
(get_local $4)
(get_local $11)
)
)
(set_local $2
(i32.shl
(get_local $2)
(get_local $11)
)
)
(if

View File

@ -288,19 +288,15 @@
)
)
(func $~lib/math/NativeMath.scalbn (; 9 ;) (; has Stack IR ;) (type $FiF) (param $0 f64) (param $1 i32) (result f64)
(local $2 f64)
(set_local $2
(get_local $0)
)
(if
(i32.gt_s
(get_local $1)
(i32.const 1023)
)
(block
(set_local $2
(set_local $0
(f64.mul
(get_local $2)
(get_local $0)
(f64.const 8988465674311579538646525e283)
)
)
@ -315,14 +311,14 @@
(i32.const 1023)
)
(block
(set_local $2
(set_local $0
(f64.mul
(get_local $2)
(get_local $0)
(f64.const 8988465674311579538646525e283)
)
)
(if
(i32.gt_s
(set_local $1
(select
(tee_local $1
(i32.sub
(get_local $1)
@ -330,9 +326,10 @@
)
)
(i32.const 1023)
)
(set_local $1
(i32.const 1023)
(i32.lt_s
(get_local $1)
(i32.const 1023)
)
)
)
)
@ -344,10 +341,10 @@
(i32.const -1022)
)
(block
(set_local $2
(set_local $0
(f64.mul
(get_local $2)
(f64.const 2.2250738585072014e-308)
(get_local $0)
(f64.const 2.004168360008973e-292)
)
)
(if
@ -355,30 +352,31 @@
(tee_local $1
(i32.add
(get_local $1)
(i32.const 1022)
(i32.const 969)
)
)
(i32.const -1022)
)
(block
(set_local $2
(set_local $0
(f64.mul
(get_local $2)
(f64.const 2.2250738585072014e-308)
(get_local $0)
(f64.const 2.004168360008973e-292)
)
)
(if
(i32.lt_s
(set_local $1
(select
(tee_local $1
(i32.add
(get_local $1)
(i32.const 1022)
(i32.const 969)
)
)
(i32.const -1022)
)
(set_local $1
(i32.const -1022)
(i32.gt_s
(get_local $1)
(i32.const -1022)
)
)
)
)
@ -387,7 +385,7 @@
)
)
(f64.mul
(get_local $2)
(get_local $0)
(f64.reinterpret/i64
(i64.shl
(i64.add
@ -415,12 +413,12 @@
(local $12 i32)
(local $13 f64)
(local $14 f64)
(local $15 i32)
(local $16 f64)
(local $15 f64)
(local $16 i32)
(local $17 i64)
(local $18 i32)
(local $19 i32)
(local $20 f64)
(local $19 f64)
(local $20 i32)
(block $folding-inner1
(block $folding-inner0
(set_local $18
@ -435,12 +433,12 @@
)
)
)
(set_local $7
(set_local $20
(i32.wrap/i64
(get_local $17)
)
)
(set_local $5
(set_local $4
(i32.and
(get_local $18)
(i32.const 2147483647)
@ -449,9 +447,9 @@
(if
(i32.eqz
(i32.or
(tee_local $11
(tee_local $12
(i32.and
(tee_local $12
(tee_local $11
(i32.wrap/i64
(i64.shr_u
(tee_local $17
@ -466,7 +464,7 @@
(i32.const 2147483647)
)
)
(tee_local $19
(tee_local $7
(i32.wrap/i64
(get_local $17)
)
@ -479,21 +477,51 @@
)
(if
(i32.eqz
(tee_local $4
(tee_local $8
(i32.gt_s
(get_local $5)
(get_local $4)
(i32.const 2146435072)
)
)
)
(if
(tee_local $4
(tee_local $8
(i32.eq
(get_local $5)
(get_local $4)
(i32.const 2146435072)
)
)
(set_local $4
(set_local $8
(i32.ne
(get_local $20)
(i32.const 0)
)
)
)
)
(if
(i32.eqz
(get_local $8)
)
(set_local $8
(i32.gt_s
(get_local $12)
(i32.const 2146435072)
)
)
)
(if
(i32.eqz
(get_local $8)
)
(if
(tee_local $8
(i32.eq
(get_local $12)
(i32.const 2146435072)
)
)
(set_local $8
(i32.ne
(get_local $7)
(i32.const 0)
@ -502,37 +530,7 @@
)
)
(if
(i32.eqz
(get_local $4)
)
(set_local $4
(i32.gt_s
(get_local $11)
(i32.const 2146435072)
)
)
)
(if
(i32.eqz
(get_local $4)
)
(if
(tee_local $4
(i32.eq
(get_local $11)
(i32.const 2146435072)
)
)
(set_local $4
(i32.ne
(get_local $19)
(i32.const 0)
)
)
)
)
(if
(get_local $4)
(get_local $8)
(return
(f64.add
(get_local $0)
@ -547,122 +545,101 @@
)
(if
(i32.ge_s
(get_local $11)
(get_local $12)
(i32.const 1128267776)
)
(set_local $15
(set_local $16
(i32.const 2)
)
(if
(i32.ge_s
(get_local $11)
(get_local $12)
(i32.const 1072693248)
)
(if
(i32.gt_s
(tee_local $10
(i32.sub
(i32.shr_s
(get_local $11)
(i32.const 20)
(block
(set_local $8
(i32.sub
(select
(i32.const 52)
(i32.const 20)
(tee_local $5
(i32.gt_s
(tee_local $10
(i32.sub
(i32.shr_s
(get_local $12)
(i32.const 20)
)
(i32.const 1023)
)
)
(i32.const 20)
)
)
(i32.const 1023)
)
(get_local $10)
)
(i32.const 20)
)
(if
(i32.eq
(i32.shl
(tee_local $4
(i32.shr_u
(get_local $19)
(tee_local $8
(i32.sub
(i32.const 52)
(get_local $10)
(tee_local $5
(i32.shr_s
(tee_local $10
(select
(get_local $7)
(get_local $12)
(get_local $5)
)
)
(get_local $8)
)
)
(get_local $8)
)
(get_local $19)
(get_local $10)
)
(set_local $15
(set_local $16
(i32.sub
(i32.const 2)
(i32.and
(get_local $4)
(get_local $5)
(i32.const 1)
)
)
)
)
(if
(i32.eqz
(get_local $19)
)
(if
(i32.eq
(i32.shl
(tee_local $4
(i32.shr_s
(get_local $11)
(tee_local $8
(i32.sub
(i32.const 20)
(get_local $10)
)
)
)
)
(get_local $8)
)
(get_local $11)
)
(set_local $15
(i32.sub
(i32.const 2)
(i32.and
(get_local $4)
(i32.const 1)
)
)
)
)
)
)
)
)
)
(if
(i32.eqz
(get_local $19)
(get_local $7)
)
(block
(if
(i32.eq
(get_local $11)
(get_local $12)
(i32.const 2146435072)
)
(if
(i32.or
(i32.sub
(get_local $5)
(get_local $4)
(i32.const 1072693248)
)
(get_local $7)
(get_local $20)
)
(if
(i32.ge_s
(get_local $5)
(get_local $4)
(i32.const 1072693248)
)
(block
(if
(i32.lt_s
(get_local $12)
(get_local $11)
(i32.const 0)
)
(set_local $1
@ -677,7 +654,7 @@
(tee_local $0
(if (result f64)
(i32.ge_s
(get_local $12)
(get_local $11)
(i32.const 0)
)
(f64.const 0)
@ -695,13 +672,13 @@
)
(if
(i32.eq
(get_local $11)
(get_local $12)
(i32.const 1072693248)
)
(block
(if
(i32.ge_s
(get_local $12)
(get_local $11)
(i32.const 0)
)
(return
@ -718,7 +695,7 @@
)
(if
(i32.eq
(get_local $12)
(get_local $11)
(i32.const 1073741824)
)
(return
@ -730,7 +707,7 @@
)
(if
(i32.eq
(get_local $12)
(get_local $11)
(i32.const 1071644672)
)
(if
@ -754,41 +731,41 @@
)
(if
(i32.eqz
(get_local $7)
(get_local $20)
)
(block
(if
(i32.eqz
(tee_local $4
(tee_local $5
(i32.eq
(get_local $5)
(get_local $4)
(i32.const 2146435072)
)
)
)
(set_local $4
(set_local $5
(i32.eqz
(get_local $5)
(get_local $4)
)
)
)
(if
(i32.eqz
(get_local $4)
(get_local $5)
)
(set_local $4
(set_local $5
(i32.eq
(get_local $5)
(get_local $4)
(i32.const 1072693248)
)
)
)
(if
(get_local $4)
(get_local $5)
(block
(if
(i32.lt_s
(get_local $12)
(get_local $11)
(i32.const 0)
)
(set_local $2
@ -806,14 +783,14 @@
(if
(i32.or
(i32.sub
(get_local $5)
(get_local $4)
(i32.const 1072693248)
)
(get_local $15)
(get_local $16)
)
(if
(i32.eq
(get_local $15)
(get_local $16)
(i32.const 1)
)
(set_local $2
@ -853,7 +830,7 @@
(block
(if
(i32.eqz
(get_local $15)
(get_local $16)
)
(return
(f64.div
@ -869,7 +846,7 @@
)
(if
(i32.eq
(get_local $15)
(get_local $16)
(i32.const 1)
)
(set_local $13
@ -881,26 +858,26 @@
(set_local $2
(if (result f64)
(i32.gt_s
(get_local $11)
(get_local $12)
(i32.const 1105199104)
)
(block (result f64)
(if
(i32.gt_s
(get_local $11)
(get_local $12)
(i32.const 1139802112)
)
(block
(if
(i32.le_s
(get_local $5)
(get_local $4)
(i32.const 1072693247)
)
(return
(tee_local $0
(if (result f64)
(i32.lt_s
(get_local $12)
(get_local $11)
(i32.const 0)
)
(f64.const inf)
@ -911,14 +888,14 @@
)
(if
(i32.ge_s
(get_local $5)
(get_local $4)
(i32.const 1072693248)
)
(return
(tee_local $0
(if (result f64)
(i32.gt_s
(get_local $12)
(get_local $11)
(i32.const 0)
)
(f64.const inf)
@ -931,14 +908,14 @@
)
(if
(i32.lt_s
(get_local $5)
(get_local $4)
(i32.const 1072693247)
)
(return
(tee_local $0
(if (result f64)
(i32.lt_s
(get_local $12)
(get_local $11)
(i32.const 0)
)
(f64.mul
@ -961,14 +938,14 @@
)
(if
(i32.gt_s
(get_local $5)
(get_local $4)
(i32.const 1072693248)
)
(return
(tee_local $0
(if (result f64)
(i32.gt_s
(get_local $12)
(get_local $11)
(i32.const 0)
)
(f64.mul
@ -1017,7 +994,7 @@
)
(set_local $9
(f64.add
(tee_local $16
(tee_local $15
(f64.mul
(f64.const 1.4426950216293335)
(get_local $3)
@ -1050,7 +1027,7 @@
)
)
)
(get_local $16)
(get_local $15)
)
)
)
@ -1060,14 +1037,14 @@
)
(if
(i32.lt_s
(get_local $5)
(get_local $4)
(i32.const 1048576)
)
(block
(set_local $7
(i32.const -53)
)
(set_local $5
(set_local $4
(i32.wrap/i64
(i64.shr_u
(i64.reinterpret/f64
@ -1089,18 +1066,18 @@
(get_local $7)
(i32.sub
(i32.shr_s
(get_local $5)
(get_local $4)
(i32.const 20)
)
(i32.const 1023)
)
)
)
(set_local $5
(set_local $4
(i32.or
(tee_local $8
(tee_local $5
(i32.and
(get_local $5)
(get_local $4)
(i32.const 1048575)
)
)
@ -1110,13 +1087,13 @@
(set_local $10
(if (result i32)
(i32.le_s
(get_local $8)
(get_local $5)
(i32.const 235662)
)
(i32.const 0)
(if (result i32)
(i32.lt_s
(get_local $8)
(get_local $5)
(i32.const 767610)
)
(i32.const 1)
@ -1127,9 +1104,9 @@
(i32.const 1)
)
)
(set_local $5
(set_local $4
(i32.add
(get_local $5)
(get_local $4)
(i32.const -1048576)
)
)
@ -1140,7 +1117,7 @@
)
(set_local $9
(f64.mul
(tee_local $16
(tee_local $15
(f64.sub
(tee_local $2
(f64.reinterpret/i64
@ -1153,7 +1130,7 @@
)
(i64.shl
(i64.extend_s/i32
(get_local $5)
(get_local $4)
)
(i64.const 32)
)
@ -1192,7 +1169,7 @@
(i32.add
(i32.or
(i32.shr_s
(get_local $5)
(get_local $4)
(i32.const 1)
)
(i32.const 536870912)
@ -1213,7 +1190,7 @@
)
)
)
(set_local $20
(set_local $19
(f64.mul
(f64.mul
(tee_local $14
@ -1262,7 +1239,7 @@
(get_local $6)
(f64.sub
(f64.sub
(get_local $16)
(get_local $15)
(f64.mul
(tee_local $6
(f64.reinterpret/i64
@ -1295,9 +1272,9 @@
)
)
)
(tee_local $20
(tee_local $19
(f64.add
(get_local $20)
(get_local $19)
(f64.mul
(get_local $0)
(f64.add
@ -1311,7 +1288,7 @@
)
(set_local $2
(f64.sub
(get_local $20)
(get_local $19)
(f64.sub
(f64.sub
(tee_local $3
@ -1332,7 +1309,7 @@
)
(set_local $0
(f64.add
(tee_local $16
(tee_local $15
(f64.mul
(get_local $6)
(get_local $3)
@ -1366,7 +1343,7 @@
)
)
)
(get_local $16)
(get_local $15)
)
)
)
@ -1374,7 +1351,7 @@
(f64.add
(f64.add
(f64.add
(tee_local $20
(tee_local $19
(f64.mul
(f64.const 0.9617967009544373)
(get_local $0)
@ -1434,13 +1411,13 @@
)
(get_local $0)
)
(get_local $20)
(get_local $19)
)
)
)
)
)
(set_local $4
(set_local $8
(i32.wrap/i64
(tee_local $17
(i64.reinterpret/f64
@ -1484,7 +1461,7 @@
)
(if
(i32.ge_s
(tee_local $8
(tee_local $5
(i32.wrap/i64
(i64.shr_u
(get_local $17)
@ -1498,10 +1475,10 @@
(br_if $folding-inner1
(i32.or
(i32.sub
(get_local $8)
(get_local $5)
(i32.const 1083179008)
)
(get_local $4)
(get_local $8)
)
)
(br_if $folding-inner1
@ -1520,7 +1497,7 @@
(if
(i32.ge_s
(i32.and
(get_local $8)
(get_local $5)
(i32.const 2147483647)
)
(i32.const 1083231232)
@ -1529,10 +1506,10 @@
(br_if $folding-inner0
(i32.or
(i32.sub
(get_local $8)
(get_local $5)
(i32.const -1064252416)
)
(get_local $4)
(get_local $8)
)
)
(br_if $folding-inner0
@ -1550,9 +1527,9 @@
(set_local $10
(i32.sub
(i32.shr_s
(tee_local $4
(tee_local $8
(i32.and
(get_local $8)
(get_local $5)
(i32.const 2147483647)
)
)
@ -1566,7 +1543,7 @@
)
(if
(i32.gt_s
(get_local $4)
(get_local $8)
(i32.const 1071644672)
)
(block
@ -1576,7 +1553,7 @@
(i32.and
(tee_local $7
(i32.add
(get_local $8)
(get_local $5)
(i32.shr_s
(i32.const 1048576)
(i32.add
@ -1629,7 +1606,7 @@
)
(if
(i32.lt_s
(get_local $8)
(get_local $5)
(i32.const 0)
)
(set_local $7
@ -1651,7 +1628,7 @@
(f64.mul
(tee_local $2
(f64.add
(tee_local $16
(tee_local $15
(f64.mul
(tee_local $3
(f64.reinterpret/i64
@ -1696,7 +1673,7 @@
(if (result f64)
(i32.le_s
(i32.shr_s
(tee_local $8
(tee_local $5
(i32.add
(i32.wrap/i64
(i64.shr_u
@ -1754,7 +1731,7 @@
(get_local $6)
(f64.sub
(get_local $2)
(get_local $16)
(get_local $15)
)
)
)
@ -1796,7 +1773,7 @@
)
(i64.shl
(i64.extend_s/i32
(get_local $8)
(get_local $5)
)
(i64.const 32)
)

File diff suppressed because it is too large Load Diff