blob: a89c7af9410d94b1bdf705acfb1927a2e9630ac1 [file] [log] [blame] [edit]
(module
(type $0 (func (param i64 i64) (result i64)))
(type $1 (func (param i32) (result i32)))
(type $2 (func (param i32 i32) (result i32)))
(type $3 (func (param f64) (result f64)))
(type $4 (func (param f32) (result f32)))
(type $5 (func (param i32 i32 i32)))
(type $6 (func (param f64 f64) (result f64)))
(type $7 (func (param f32 f32) (result f32)))
(type $8 (func (param i32 i32)))
(type $9 (func (result f32)))
(type $10 (func (param f32)))
(type $11 (func (result f64)))
(type $12 (func (param f64)))
(type $13 (func (param i32 i32 i32 i32)))
(type $14 (func (param i32)))
(type $15 (func (param i32 i32 i32 i32 i32) (result i32)))
(type $16 (func (param i32 i32 i32 i32 i32 i32) (result i32)))
(type $17 (func (result i32)))
(type $18 (func))
(import "env" "wasm2js_scratch_load_i32" (func $wasm2js_scratch_load_i32 (param i32) (result i32)))
(import "env" "wasm2js_scratch_store_i32" (func $wasm2js_scratch_store_i32 (param i32 i32)))
(import "env" "wasm2js_scratch_load_f32" (func $wasm2js_scratch_load_f32 (result f32)))
(import "env" "wasm2js_scratch_store_f32" (func $wasm2js_scratch_store_f32 (param f32)))
(import "env" "wasm2js_scratch_load_f64" (func $wasm2js_scratch_load_f64 (result f64)))
(import "env" "wasm2js_scratch_store_f64" (func $wasm2js_scratch_store_f64 (param f64)))
(import "env" "wasm2js_memory_init" (func $wasm2js_memory_init (param i32 i32 i32 i32)))
(import "env" "wasm2js_memory_fill" (func $wasm2js_memory_fill (param i32 i32 i32)))
(import "env" "wasm2js_memory_copy" (func $wasm2js_memory_copy (param i32 i32 i32)))
(import "env" "wasm2js_data_drop" (func $wasm2js_data_drop (param i32)))
(import "env" "wasm2js_atomic_wait_i32" (func $wasm2js_atomic_wait_i32 (param i32 i32 i32 i32 i32) (result i32)))
(import "env" "wasm2js_atomic_rmw_i64" (func $wasm2js_atomic_rmw_i64 (param i32 i32 i32 i32 i32 i32) (result i32)))
(import "env" "wasm2js_get_stashed_bits" (func $wasm2js_get_stashed_bits (result i32)))
(import "env" "wasm2js_trap" (func $wasm2js_trap))
(global $__wasm-intrinsics-temp-i64 (mut i64) (i64.const 0))
(memory $0 1)
(func $copysign64 (param $0 f64) (param $1 f64) (result f64)
(f64.reinterpret_i64
(i64.or
(i64.and
(i64.reinterpret_f64
(local.get $0)
)
(i64.const 9223372036854775807)
)
(i64.and
(i64.reinterpret_f64
(local.get $1)
)
(i64.const -9223372036854775808)
)
)
)
)
(func $copysign32 (param $0 f32) (param $1 f32) (result f32)
(f32.reinterpret_i32
(i32.or
(i32.and
(i32.reinterpret_f32
(local.get $0)
)
(i32.const 2147483647)
)
(i32.and
(i32.reinterpret_f32
(local.get $1)
)
(i32.const -2147483648)
)
)
)
)
(func $rotl32 (param $0 i32) (param $1 i32) (result i32)
(call $__wasm_rotl_i32
(local.get $0)
(local.get $1)
)
)
(func $rotr32 (param $0 i32) (param $1 i32) (result i32)
(call $__wasm_rotr_i32
(local.get $0)
(local.get $1)
)
)
(func $rotl64 (param $0 i64) (param $1 i64) (result i64)
(call $__wasm_rotl_i64
(local.get $0)
(local.get $1)
)
)
(func $rotr64 (param $0 i64) (param $1 i64) (result i64)
(call $__wasm_rotr_i64
(local.get $0)
(local.get $1)
)
)
(func $nearest64 (param $0 f64) (result f64)
(call $__wasm_nearest_f64
(local.get $0)
)
)
(func $nearest32 (param $0 f32) (result f32)
(call $__wasm_nearest_f32
(local.get $0)
)
)
(func $trunc64 (param $0 f64) (result f64)
(f64.trunc
(local.get $0)
)
)
(func $trunc32 (param $0 f32) (result f32)
(f32.trunc
(local.get $0)
)
)
(func $popcnt32 (param $0 i32) (result i32)
(call $__wasm_popcnt_i32
(local.get $0)
)
)
(func $ctz32 (param $0 i32) (result i32)
(call $__wasm_ctz_i32
(local.get $0)
)
)
(func $i64_sdiv (param $0 i64) (param $1 i64) (result i64)
(call $__wasm_i64_sdiv
(local.get $0)
(local.get $1)
)
)
(func $i64_udiv (param $0 i64) (param $1 i64) (result i64)
(call $__wasm_i64_udiv
(local.get $0)
(local.get $1)
)
)
(func $i64_srem (param $0 i64) (param $1 i64) (result i64)
(call $__wasm_i64_srem
(local.get $0)
(local.get $1)
)
)
(func $i64_urem (param $0 i64) (param $1 i64) (result i64)
(call $__wasm_i64_urem
(local.get $0)
(local.get $1)
)
)
(func $i64_mul (param $0 i64) (param $1 i64) (result i64)
(call $__wasm_i64_mul
(local.get $0)
(local.get $1)
)
)
(func $_ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE (param $var$0 i64) (param $var$1 i64) (result i64)
(local $var$2 i32)
(local $var$3 i32)
(local $var$4 i32)
(local $var$5 i32)
(local $var$6 i32)
(i64.or
(i64.shl
(i64.extend_i32_u
(i32.add
(i32.add
(i32.add
(i32.add
(i32.mul
(local.tee $var$4
(i32.shr_u
(local.tee $var$2
(i32.wrap_i64
(local.get $var$1)
)
)
(i32.const 16)
)
)
(local.tee $var$5
(i32.shr_u
(local.tee $var$3
(i32.wrap_i64
(local.get $var$0)
)
)
(i32.const 16)
)
)
)
(i32.mul
(local.get $var$2)
(i32.wrap_i64
(i64.shr_u
(local.get $var$0)
(i64.const 32)
)
)
)
)
(i32.mul
(i32.wrap_i64
(i64.shr_u
(local.get $var$1)
(i64.const 32)
)
)
(local.get $var$3)
)
)
(i32.shr_u
(local.tee $var$2
(i32.add
(i32.shr_u
(local.tee $var$6
(i32.mul
(local.tee $var$2
(i32.and
(local.get $var$2)
(i32.const 65535)
)
)
(local.tee $var$3
(i32.and
(local.get $var$3)
(i32.const 65535)
)
)
)
)
(i32.const 16)
)
(i32.mul
(local.get $var$2)
(local.get $var$5)
)
)
)
(i32.const 16)
)
)
(i32.shr_u
(local.tee $var$2
(i32.add
(i32.and
(local.get $var$2)
(i32.const 65535)
)
(i32.mul
(local.get $var$4)
(local.get $var$3)
)
)
)
(i32.const 16)
)
)
)
(i64.const 32)
)
(i64.extend_i32_u
(i32.or
(i32.shl
(local.get $var$2)
(i32.const 16)
)
(i32.and
(local.get $var$6)
(i32.const 65535)
)
)
)
)
)
(func $_ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E (param $var$0 i64) (param $var$1 i64) (result i64)
(local $var$2 i64)
(i64.sub
(i64.xor
(call $__wasm_i64_udiv
(i64.sub
(i64.xor
(local.tee $var$2
(i64.shr_s
(local.get $var$0)
(i64.const 63)
)
)
(local.get $var$0)
)
(local.get $var$2)
)
(i64.sub
(i64.xor
(local.tee $var$2
(i64.shr_s
(local.get $var$1)
(i64.const 63)
)
)
(local.get $var$1)
)
(local.get $var$2)
)
)
(local.tee $var$0
(i64.shr_s
(i64.xor
(local.get $var$1)
(local.get $var$0)
)
(i64.const 63)
)
)
)
(local.get $var$0)
)
)
(func $_ZN17compiler_builtins3int4sdiv3Mod4mod_17h2cbb7bbf36e41d68E (param $var$0 i64) (param $var$1 i64) (result i64)
(local $var$2 i64)
(i64.sub
(i64.xor
(call $__wasm_i64_urem
(i64.sub
(i64.xor
(local.tee $var$2
(i64.shr_s
(local.get $var$0)
(i64.const 63)
)
)
(local.get $var$0)
)
(local.get $var$2)
)
(i64.sub
(i64.xor
(local.tee $var$0
(i64.shr_s
(local.get $var$1)
(i64.const 63)
)
)
(local.get $var$1)
)
(local.get $var$0)
)
)
(local.get $var$2)
)
(local.get $var$2)
)
)
(func $_ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E (param $var$0 i64) (param $var$1 i64) (result i64)
(local $var$2 i32)
(local $var$3 i32)
(local $var$4 i32)
(local $var$5 i64)
(local $var$6 i64)
(local $var$7 i64)
(local $var$8 i64)
(block $label$1
(block $label$2
(block $label$3
(block $label$4
(block $label$5
(block $label$6
(block $label$7
(block $label$8
(block $label$9
(block $label$10
(block $label$11
(if
(local.tee $var$2
(i32.wrap_i64
(i64.shr_u
(local.get $var$0)
(i64.const 32)
)
)
)
(then
(br_if $label$11
(i32.eqz
(local.tee $var$3
(i32.wrap_i64
(local.get $var$1)
)
)
)
)
(br_if $label$9
(i32.eqz
(local.tee $var$4
(i32.wrap_i64
(i64.shr_u
(local.get $var$1)
(i64.const 32)
)
)
)
)
)
(br_if $label$8
(i32.le_u
(local.tee $var$2
(i32.sub
(i32.clz
(local.get $var$4)
)
(i32.clz
(local.get $var$2)
)
)
)
(i32.const 31)
)
)
(br $label$2)
)
)
(br_if $label$2
(i64.ge_u
(local.get $var$1)
(i64.const 4294967296)
)
)
(global.set $__wasm-intrinsics-temp-i64
(i64.extend_i32_u
(i32.sub
(local.tee $var$2
(i32.wrap_i64
(local.get $var$0)
)
)
(i32.mul
(local.tee $var$2
(i32.div_u
(local.get $var$2)
(local.tee $var$3
(i32.wrap_i64
(local.get $var$1)
)
)
)
)
(local.get $var$3)
)
)
)
)
(return
(i64.extend_i32_u
(local.get $var$2)
)
)
)
(local.set $var$3
(i32.wrap_i64
(i64.shr_u
(local.get $var$1)
(i64.const 32)
)
)
)
(br_if $label$7
(i32.eqz
(i32.wrap_i64
(local.get $var$0)
)
)
)
(br_if $label$6
(i32.eqz
(local.get $var$3)
)
)
(br_if $label$6
(i32.and
(local.tee $var$4
(i32.add
(local.get $var$3)
(i32.const -1)
)
)
(local.get $var$3)
)
)
(global.set $__wasm-intrinsics-temp-i64
(i64.or
(i64.shl
(i64.extend_i32_u
(i32.and
(local.get $var$4)
(local.get $var$2)
)
)
(i64.const 32)
)
(i64.and
(local.get $var$0)
(i64.const 4294967295)
)
)
)
(return
(i64.extend_i32_u
(i32.shr_u
(local.get $var$2)
(i32.and
(call $__wasm_ctz_i32
(local.get $var$3)
)
(i32.const 31)
)
)
)
)
)
(unreachable)
)
(br_if $label$5
(i32.eqz
(i32.and
(local.tee $var$4
(i32.add
(local.get $var$3)
(i32.const -1)
)
)
(local.get $var$3)
)
)
)
(local.set $var$3
(i32.sub
(i32.const 0)
(local.tee $var$2
(i32.sub
(i32.add
(i32.clz
(local.get $var$3)
)
(i32.const 33)
)
(i32.clz
(local.get $var$2)
)
)
)
)
)
(br $label$3)
)
(local.set $var$3
(i32.sub
(i32.const 63)
(local.get $var$2)
)
)
(local.set $var$2
(i32.add
(local.get $var$2)
(i32.const 1)
)
)
(br $label$3)
)
(global.set $__wasm-intrinsics-temp-i64
(i64.shl
(i64.extend_i32_u
(i32.sub
(local.get $var$2)
(i32.mul
(local.tee $var$4
(i32.div_u
(local.get $var$2)
(local.get $var$3)
)
)
(local.get $var$3)
)
)
)
(i64.const 32)
)
)
(return
(i64.extend_i32_u
(local.get $var$4)
)
)
)
(br_if $label$4
(i32.lt_u
(local.tee $var$2
(i32.sub
(i32.clz
(local.get $var$3)
)
(i32.clz
(local.get $var$2)
)
)
)
(i32.const 31)
)
)
(br $label$2)
)
(global.set $__wasm-intrinsics-temp-i64
(i64.extend_i32_u
(i32.and
(local.get $var$4)
(i32.wrap_i64
(local.get $var$0)
)
)
)
)
(br_if $label$1
(i32.eq
(local.get $var$3)
(i32.const 1)
)
)
(return
(i64.shr_u
(local.get $var$0)
(i64.extend_i32_u
(call $__wasm_ctz_i32
(local.get $var$3)
)
)
)
)
)
(local.set $var$3
(i32.sub
(i32.const 63)
(local.get $var$2)
)
)
(local.set $var$2
(i32.add
(local.get $var$2)
(i32.const 1)
)
)
)
(local.set $var$5
(i64.shr_u
(local.get $var$0)
(i64.extend_i32_u
(i32.and
(local.get $var$2)
(i32.const 63)
)
)
)
)
(local.set $var$0
(i64.shl
(local.get $var$0)
(i64.extend_i32_u
(i32.and
(local.get $var$3)
(i32.const 63)
)
)
)
)
(block $label$13
(if
(local.get $var$2)
(then
(local.set $var$8
(i64.add
(local.get $var$1)
(i64.const -1)
)
)
(loop $label$15
(local.set $var$5
(i64.sub
(local.tee $var$5
(i64.or
(i64.shl
(local.get $var$5)
(i64.const 1)
)
(i64.shr_u
(local.get $var$0)
(i64.const 63)
)
)
)
(i64.and
(local.tee $var$6
(i64.shr_s
(i64.sub
(local.get $var$8)
(local.get $var$5)
)
(i64.const 63)
)
)
(local.get $var$1)
)
)
)
(local.set $var$0
(i64.or
(i64.shl
(local.get $var$0)
(i64.const 1)
)
(local.get $var$7)
)
)
(local.set $var$7
(local.tee $var$6
(i64.and
(local.get $var$6)
(i64.const 1)
)
)
)
(br_if $label$15
(local.tee $var$2
(i32.add
(local.get $var$2)
(i32.const -1)
)
)
)
)
(br $label$13)
)
)
)
(global.set $__wasm-intrinsics-temp-i64
(local.get $var$5)
)
(return
(i64.or
(i64.shl
(local.get $var$0)
(i64.const 1)
)
(local.get $var$6)
)
)
)
(global.set $__wasm-intrinsics-temp-i64
(local.get $var$0)
)
(local.set $var$0
(i64.const 0)
)
)
(local.get $var$0)
)
(func $__wasm_ctz_i32 (param $var$0 i32) (result i32)
(if
(local.get $var$0)
(then
(return
(i32.sub
(i32.const 31)
(i32.clz
(i32.xor
(i32.add
(local.get $var$0)
(i32.const -1)
)
(local.get $var$0)
)
)
)
)
)
)
(i32.const 32)
)
(func $__wasm_i64_mul (param $var$0 i64) (param $var$1 i64) (result i64)
(call $_ZN17compiler_builtins3int3mul3Mul3mul17h070e9a1c69faec5bE
(local.get $var$0)
(local.get $var$1)
)
)
(func $__wasm_i64_sdiv (param $var$0 i64) (param $var$1 i64) (result i64)
(call $_ZN17compiler_builtins3int4sdiv3Div3div17he78fc483e41d7ec7E
(local.get $var$0)
(local.get $var$1)
)
)
(func $__wasm_i64_srem (param $var$0 i64) (param $var$1 i64) (result i64)
(call $_ZN17compiler_builtins3int4sdiv3Mod4mod_17h2cbb7bbf36e41d68E
(local.get $var$0)
(local.get $var$1)
)
)
(func $__wasm_i64_udiv (param $var$0 i64) (param $var$1 i64) (result i64)
(call $_ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E
(local.get $var$0)
(local.get $var$1)
)
)
(func $__wasm_i64_urem (param $var$0 i64) (param $var$1 i64) (result i64)
(drop
(call $_ZN17compiler_builtins3int4udiv10divmod_u6417h6026910b5ed08e40E
(local.get $var$0)
(local.get $var$1)
)
)
(global.get $__wasm-intrinsics-temp-i64)
)
(func $__wasm_nearest_f32 (param $var$0 f32) (result f32)
(local $var$1 f32)
(local $var$2 f32)
(if
(i32.eqz
(f32.lt
(local.tee $var$2
(f32.sub
(local.get $var$0)
(local.tee $var$1
(f32.floor
(local.get $var$0)
)
)
)
)
(f32.const 0.5)
)
)
(then
(local.set $var$0
(f32.ceil
(local.get $var$0)
)
)
(if
(f32.gt
(local.get $var$2)
(f32.const 0.5)
)
(then
(return
(local.get $var$0)
)
)
)
(local.set $var$1
(select
(local.get $var$1)
(local.get $var$0)
(f32.eq
(f32.sub
(local.tee $var$2
(f32.mul
(local.get $var$1)
(f32.const 0.5)
)
)
(f32.floor
(local.get $var$2)
)
)
(f32.const 0)
)
)
)
)
)
(local.get $var$1)
)
(func $__wasm_nearest_f64 (param $var$0 f64) (result f64)
(local $var$1 f64)
(local $var$2 f64)
(if
(i32.eqz
(f64.lt
(local.tee $var$2
(f64.sub
(local.get $var$0)
(local.tee $var$1
(f64.floor
(local.get $var$0)
)
)
)
)
(f64.const 0.5)
)
)
(then
(local.set $var$0
(f64.ceil
(local.get $var$0)
)
)
(if
(f64.gt
(local.get $var$2)
(f64.const 0.5)
)
(then
(return
(local.get $var$0)
)
)
)
(local.set $var$1
(select
(local.get $var$1)
(local.get $var$0)
(f64.eq
(f64.sub
(local.tee $var$2
(f64.mul
(local.get $var$1)
(f64.const 0.5)
)
)
(f64.floor
(local.get $var$2)
)
)
(f64.const 0)
)
)
)
)
)
(local.get $var$1)
)
(func $__wasm_popcnt_i32 (param $var$0 i32) (result i32)
(local $var$1 i32)
(block $label$1 (result i32)
(loop $label$2
(drop
(br_if $label$1
(local.get $var$1)
(i32.eqz
(local.get $var$0)
)
)
)
(local.set $var$0
(i32.and
(local.get $var$0)
(i32.sub
(local.get $var$0)
(i32.const 1)
)
)
)
(local.set $var$1
(i32.add
(local.get $var$1)
(i32.const 1)
)
)
(br $label$2)
)
)
)
(func $__wasm_rotl_i32 (param $var$0 i32) (param $var$1 i32) (result i32)
(local $var$2 i32)
(i32.or
(i32.shl
(i32.and
(i32.shr_u
(i32.const -1)
(local.tee $var$2
(i32.and
(local.get $var$1)
(i32.const 31)
)
)
)
(local.get $var$0)
)
(local.get $var$2)
)
(i32.shr_u
(i32.and
(i32.shl
(i32.const -1)
(local.tee $var$1
(i32.and
(i32.sub
(i32.const 0)
(local.get $var$1)
)
(i32.const 31)
)
)
)
(local.get $var$0)
)
(local.get $var$1)
)
)
)
(func $__wasm_rotl_i64 (param $var$0 i64) (param $var$1 i64) (result i64)
(local $var$2 i64)
(i64.or
(i64.shl
(i64.and
(i64.shr_u
(i64.const -1)
(local.tee $var$2
(i64.and
(local.get $var$1)
(i64.const 63)
)
)
)
(local.get $var$0)
)
(local.get $var$2)
)
(i64.shr_u
(i64.and
(i64.shl
(i64.const -1)
(local.tee $var$1
(i64.and
(i64.sub
(i64.const 0)
(local.get $var$1)
)
(i64.const 63)
)
)
)
(local.get $var$0)
)
(local.get $var$1)
)
)
)
(func $__wasm_rotr_i32 (param $var$0 i32) (param $var$1 i32) (result i32)
(local $var$2 i32)
(i32.or
(i32.shr_u
(i32.and
(i32.shl
(i32.const -1)
(local.tee $var$2
(i32.and
(local.get $var$1)
(i32.const 31)
)
)
)
(local.get $var$0)
)
(local.get $var$2)
)
(i32.shl
(i32.and
(i32.shr_u
(i32.const -1)
(local.tee $var$1
(i32.and
(i32.sub
(i32.const 0)
(local.get $var$1)
)
(i32.const 31)
)
)
)
(local.get $var$0)
)
(local.get $var$1)
)
)
)
(func $__wasm_rotr_i64 (param $var$0 i64) (param $var$1 i64) (result i64)
(local $var$2 i64)
(i64.or
(i64.shr_u
(i64.and
(i64.shl
(i64.const -1)
(local.tee $var$2
(i64.and
(local.get $var$1)
(i64.const 63)
)
)
)
(local.get $var$0)
)
(local.get $var$2)
)
(i64.shl
(i64.and
(i64.shr_u
(i64.const -1)
(local.tee $var$1
(i64.and
(i64.sub
(i64.const 0)
(local.get $var$1)
)
(i64.const 63)
)
)
)
(local.get $var$0)
)
(local.get $var$1)
)
)
)
)