Files

919 lines
22 KiB
Plaintext

(module $cosf.wasm
(type (;0;) (func (param i32 i32)))
(type (;1;) (func))
(type (;2;) (func (result i32)))
(type (;3;) (func (param f32 i32) (result i32)))
(type (;4;) (func (param f32) (result f32)))
(import "__pragma" "loopbound" (func $__pragma_loopbound (type 0)))
(func $__wasm_apply_data_relocs (type 1))
(func $cosf_main (type 1)
(local f32)
i32.const 100
i32.const 100
call $__pragma_loopbound
f32.const 0x0p+0 (;=0;)
local.set 0
loop ;; label = @1
i32.const 0
local.get 0
call $basicmath___cosf
i32.const 0
f32.load offset=1152
f32.add
f32.store offset=1152
local.get 0
f32.const 0x1.99999ap-4 (;=0.1;)
f32.add
local.tee 0
f32.const 0x1.4p+3 (;=10;)
f32.lt
br_if 0 (;@1;)
end)
(func $__original_main (type 2) (result i32)
(local f32 i32)
i32.const 0
i32.const 0
i32.store offset=1152
call $cosf_main
block ;; label = @1
block ;; label = @2
i32.const 0
f32.load offset=1152
local.tee 0
f32.abs
f32.const 0x1p+31 (;=2.14748e+09;)
f32.lt
i32.eqz
br_if 0 (;@2;)
local.get 0
i32.trunc_f32_s
local.set 1
br 1 (;@1;)
end
i32.const -2147483648
local.set 1
end
i32.const -1
i32.const 0
local.get 1
i32.const -4
i32.ne
select)
(func $basicmath___ieee754_rem_pio2f (type 3) (param f32 i32) (result i32)
(local f32 i32 i32 i32 f32 f32 f32)
block ;; label = @1
local.get 0
f32.abs
local.tee 2
i32.reinterpret_f32
local.tee 3
i32.const 1061752792
i32.gt_u
br_if 0 (;@1;)
local.get 1
i32.const 0
i32.store offset=4
local.get 1
local.get 0
f32.store
i32.const 0
return
end
local.get 0
i32.reinterpret_f32
local.set 4
block ;; label = @1
local.get 3
i32.const 1075235811
i32.gt_u
br_if 0 (;@1;)
local.get 3
i32.const 2147483632
i32.and
local.set 3
block ;; label = @2
local.get 4
i32.const 1
i32.lt_s
br_if 0 (;@2;)
local.get 0
f32.const -0x1.921fp+0 (;=-1.57079;)
f32.add
local.set 0
block ;; label = @3
local.get 3
i32.const 1070141392
i32.eq
br_if 0 (;@3;)
local.get 1
local.get 0
f32.const -0x1.6a8886p-17 (;=-1.08043e-05;)
f32.add
local.tee 2
f32.store
local.get 1
local.get 0
local.get 2
f32.sub
f32.const -0x1.6a8886p-17 (;=-1.08043e-05;)
f32.add
f32.store offset=4
i32.const 1
return
end
local.get 1
local.get 0
f32.const -0x1.6a88p-17 (;=-1.08043e-05;)
f32.add
local.tee 0
f32.const -0x1.0b461p-34 (;=-6.0771e-11;)
f32.add
local.tee 2
f32.store
local.get 1
local.get 0
local.get 2
f32.sub
f32.const -0x1.0b461p-34 (;=-6.0771e-11;)
f32.add
f32.store offset=4
i32.const 1
return
end
local.get 0
f32.const 0x1.921fp+0 (;=1.57079;)
f32.add
local.set 0
block ;; label = @2
local.get 3
i32.const 1070141392
i32.eq
br_if 0 (;@2;)
local.get 1
local.get 0
f32.const 0x1.6a8886p-17 (;=1.08043e-05;)
f32.add
local.tee 2
f32.store
local.get 1
local.get 0
local.get 2
f32.sub
f32.const 0x1.6a8886p-17 (;=1.08043e-05;)
f32.add
f32.store offset=4
i32.const -1
return
end
local.get 1
local.get 0
f32.const 0x1.6a88p-17 (;=1.08043e-05;)
f32.add
local.tee 0
f32.const 0x1.0b461p-34 (;=6.0771e-11;)
f32.add
local.tee 2
f32.store
local.get 1
local.get 0
local.get 2
f32.sub
f32.const 0x1.0b461p-34 (;=6.0771e-11;)
f32.add
f32.store offset=4
i32.const -1
return
end
block ;; label = @1
block ;; label = @2
local.get 3
i32.const 1128861568
i32.gt_u
br_if 0 (;@2;)
block ;; label = @3
block ;; label = @4
local.get 2
f32.const 0x1.45f308p-1 (;=0.63662;)
f32.mul
f32.const 0x1p-1 (;=0.5;)
f32.add
local.tee 0
f32.abs
f32.const 0x1p+31 (;=2.14748e+09;)
f32.lt
i32.eqz
br_if 0 (;@4;)
local.get 0
i32.trunc_f32_s
local.set 5
br 1 (;@3;)
end
i32.const -2147483648
local.set 5
end
local.get 5
f32.convert_i32_s
local.tee 6
f32.const 0x1.6a8886p-17 (;=1.08043e-05;)
f32.mul
local.set 7
local.get 2
local.get 6
f32.const -0x1.921fp+0 (;=-1.57079;)
f32.mul
f32.add
local.set 0
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 5
i32.const 31
i32.gt_s
br_if 0 (;@5;)
local.get 3
i32.const 2147483392
i32.and
local.get 5
i32.const 2
i32.shl
i32.const 1020
i32.add
i32.load
i32.ne
br_if 1 (;@4;)
end
local.get 1
local.get 0
local.get 7
f32.sub
local.tee 2
f32.store
local.get 3
i32.const 23
i32.shr_u
local.tee 3
local.get 2
i32.reinterpret_f32
i32.const 23
i32.shr_u
i32.const 255
i32.and
i32.sub
i32.const 9
i32.lt_s
br_if 1 (;@3;)
local.get 1
local.get 0
local.get 6
f32.const 0x1.6a88p-17 (;=1.08043e-05;)
f32.mul
local.tee 2
f32.sub
local.tee 8
local.get 6
f32.const 0x1.0b461p-34 (;=6.0771e-11;)
f32.mul
local.get 0
local.get 8
f32.sub
local.get 2
f32.sub
f32.sub
local.tee 7
f32.sub
local.tee 2
f32.store
block ;; label = @5
local.get 3
local.get 2
i32.reinterpret_f32
i32.const 23
i32.shr_u
i32.const 255
i32.and
i32.sub
i32.const 26
i32.ge_s
br_if 0 (;@5;)
local.get 8
local.set 0
br 2 (;@3;)
end
local.get 6
f32.const 0x1.1a6264p-54 (;=6.12323e-17;)
f32.mul
local.get 8
local.get 8
local.get 6
f32.const 0x1.0b46p-34 (;=6.07709e-11;)
f32.mul
local.tee 2
f32.sub
local.tee 0
f32.sub
local.get 2
f32.sub
f32.sub
local.set 7
end
local.get 1
local.get 0
local.get 7
f32.sub
local.tee 2
f32.store
end
local.get 1
local.get 0
local.get 2
f32.sub
local.get 7
f32.sub
local.tee 0
f32.store offset=4
local.get 4
i32.const -1
i32.gt_s
br_if 1 (;@1;)
local.get 1
local.get 0
f32.neg
f32.store offset=4
local.get 1
local.get 2
f32.neg
f32.store
i32.const 0
local.get 5
i32.sub
return
end
local.get 1
local.get 0
local.get 0
f32.sub
local.tee 0
f32.store
local.get 1
local.get 0
f32.store offset=4
i32.const 0
local.set 5
end
local.get 5)
(func $basicmath___cosf (type 4) (param f32) (result f32)
(local i32 i32 i32 i32 f32 f32 f32 f32)
global.get $__stack_pointer
i32.const 16
i32.sub
local.tee 1
global.set $__stack_pointer
block ;; label = @1
block ;; label = @2
local.get 0
i32.reinterpret_f32
i32.const 2147483647
i32.and
local.tee 2
i32.const 1061752792
i32.gt_u
br_if 0 (;@2;)
local.get 2
i32.const 838860799
i32.gt_u
local.set 3
block ;; label = @3
block ;; label = @4
local.get 0
f32.abs
f32.const 0x1p+31 (;=2.14748e+09;)
f32.lt
i32.eqz
br_if 0 (;@4;)
local.get 0
i32.trunc_f32_s
local.set 4
br 1 (;@3;)
end
i32.const -2147483648
local.set 4
end
block ;; label = @3
local.get 3
br_if 0 (;@3;)
local.get 4
br_if 0 (;@3;)
f32.const 0x1p+0 (;=1;)
local.set 0
br 2 (;@1;)
end
local.get 0
local.get 0
f32.mul
local.tee 5
local.get 5
local.get 5
local.get 5
local.get 5
local.get 5
f32.const -0x1.8fae9cp-37 (;=-1.13596e-11;)
f32.mul
f32.const 0x1.1ee9ecp-29 (;=2.08757e-09;)
f32.add
f32.mul
f32.const -0x1.27e4f8p-22 (;=-2.75573e-07;)
f32.add
f32.mul
f32.const 0x1.a01a02p-16 (;=2.48016e-05;)
f32.add
f32.mul
f32.const -0x1.6c16c2p-10 (;=-0.00138889;)
f32.add
f32.mul
f32.const 0x1.555556p-5 (;=0.0416667;)
f32.add
f32.mul
local.set 6
block ;; label = @3
local.get 2
i32.const 1050253721
i32.gt_u
br_if 0 (;@3;)
f32.const 0x1p+0 (;=1;)
local.get 5
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 5
local.get 6
f32.mul
local.get 0
f32.const -0x0p+0 (;=-0;)
f32.mul
f32.add
f32.sub
f32.sub
local.set 0
br 2 (;@1;)
end
f32.const 0x1p+0 (;=1;)
f32.const 0x1.2p-2 (;=0.28125;)
local.get 2
i32.const -16777216
i32.add
f32.reinterpret_i32
local.get 2
i32.const 1061683200
i32.gt_u
select
local.tee 7
f32.sub
local.get 5
local.get 6
f32.mul
local.get 0
f32.const -0x0p+0 (;=-0;)
f32.mul
f32.add
local.get 5
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 7
f32.sub
f32.sub
f32.add
local.set 0
br 1 (;@1;)
end
block ;; label = @2
local.get 2
i32.const 2139095040
i32.lt_u
br_if 0 (;@2;)
local.get 0
local.get 0
f32.sub
local.set 0
br 1 (;@1;)
end
local.get 0
local.get 1
i32.const 8
i32.add
call $basicmath___ieee754_rem_pio2f
local.set 2
local.get 1
f32.load offset=8
local.set 0
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 2
i32.const 3
i32.and
br_table 0 (;@5;) 1 (;@4;) 2 (;@3;) 3 (;@2;) 0 (;@5;)
end
local.get 0
i32.reinterpret_f32
i32.const 2147483647
i32.and
local.tee 2
i32.const 838860799
i32.gt_u
local.set 3
block ;; label = @5
block ;; label = @6
local.get 0
f32.abs
f32.const 0x1p+31 (;=2.14748e+09;)
f32.lt
i32.eqz
br_if 0 (;@6;)
local.get 0
i32.trunc_f32_s
local.set 4
br 1 (;@5;)
end
i32.const -2147483648
local.set 4
end
local.get 1
f32.load offset=12
local.set 6
block ;; label = @5
local.get 3
br_if 0 (;@5;)
local.get 4
br_if 0 (;@5;)
f32.const 0x1p+0 (;=1;)
local.set 0
br 4 (;@1;)
end
local.get 0
local.get 0
f32.mul
local.tee 5
local.get 5
local.get 5
local.get 5
local.get 5
local.get 5
f32.const -0x1.8fae9cp-37 (;=-1.13596e-11;)
f32.mul
f32.const 0x1.1ee9ecp-29 (;=2.08757e-09;)
f32.add
f32.mul
f32.const -0x1.27e4f8p-22 (;=-2.75573e-07;)
f32.add
f32.mul
f32.const 0x1.a01a02p-16 (;=2.48016e-05;)
f32.add
f32.mul
f32.const -0x1.6c16c2p-10 (;=-0.00138889;)
f32.add
f32.mul
f32.const 0x1.555556p-5 (;=0.0416667;)
f32.add
f32.mul
local.set 7
block ;; label = @5
local.get 2
i32.const 1050253721
i32.gt_u
br_if 0 (;@5;)
f32.const 0x1p+0 (;=1;)
local.get 5
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 5
local.get 7
f32.mul
local.get 6
local.get 0
f32.mul
f32.sub
f32.sub
f32.sub
local.set 0
br 4 (;@1;)
end
f32.const 0x1p+0 (;=1;)
f32.const 0x1.2p-2 (;=0.28125;)
local.get 2
i32.const -16777216
i32.add
f32.reinterpret_i32
local.get 2
i32.const 1061683200
i32.gt_u
select
local.tee 8
f32.sub
local.get 5
local.get 7
f32.mul
local.get 6
local.get 0
f32.mul
f32.sub
local.get 5
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 8
f32.sub
f32.sub
f32.add
local.set 0
br 3 (;@1;)
end
local.get 0
i32.reinterpret_f32
i32.const 2147483647
i32.and
i32.const 838860799
i32.gt_u
local.set 2
block ;; label = @4
block ;; label = @5
local.get 0
f32.abs
f32.const 0x1p+31 (;=2.14748e+09;)
f32.lt
i32.eqz
br_if 0 (;@5;)
local.get 0
i32.trunc_f32_s
local.set 3
br 1 (;@4;)
end
i32.const -2147483648
local.set 3
end
block ;; label = @4
block ;; label = @5
local.get 2
br_if 0 (;@5;)
local.get 3
i32.eqz
br_if 1 (;@4;)
end
local.get 0
local.get 0
local.get 0
local.get 0
f32.mul
local.tee 5
f32.neg
f32.mul
local.tee 6
f32.const -0x1.555556p-3 (;=-0.166667;)
f32.mul
local.get 5
local.get 1
f32.load offset=12
local.tee 7
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 6
local.get 5
local.get 5
local.get 5
local.get 5
f32.const 0x1.5d93a6p-33 (;=1.58969e-10;)
f32.mul
f32.const -0x1.ae5e68p-26 (;=-2.50508e-08;)
f32.add
f32.mul
f32.const 0x1.71de36p-19 (;=2.75573e-06;)
f32.add
f32.mul
f32.const -0x1.a01a02p-13 (;=-0.000198413;)
f32.add
f32.mul
f32.const 0x1.111112p-7 (;=0.00833333;)
f32.add
f32.mul
f32.add
f32.mul
local.get 7
f32.sub
f32.add
f32.sub
local.set 0
end
local.get 0
f32.neg
local.set 0
br 2 (;@1;)
end
local.get 0
i32.reinterpret_f32
i32.const 2147483647
i32.and
local.tee 2
i32.const 838860799
i32.gt_u
local.set 3
block ;; label = @3
block ;; label = @4
local.get 0
f32.abs
f32.const 0x1p+31 (;=2.14748e+09;)
f32.lt
i32.eqz
br_if 0 (;@4;)
local.get 0
i32.trunc_f32_s
local.set 4
br 1 (;@3;)
end
i32.const -2147483648
local.set 4
end
local.get 1
f32.load offset=12
local.set 6
block ;; label = @3
block ;; label = @4
local.get 3
br_if 0 (;@4;)
f32.const 0x1p+0 (;=1;)
local.set 5
local.get 4
i32.eqz
br_if 1 (;@3;)
end
local.get 0
local.get 0
f32.mul
local.tee 5
local.get 5
local.get 5
local.get 5
local.get 5
local.get 5
f32.const -0x1.8fae9cp-37 (;=-1.13596e-11;)
f32.mul
f32.const 0x1.1ee9ecp-29 (;=2.08757e-09;)
f32.add
f32.mul
f32.const -0x1.27e4f8p-22 (;=-2.75573e-07;)
f32.add
f32.mul
f32.const 0x1.a01a02p-16 (;=2.48016e-05;)
f32.add
f32.mul
f32.const -0x1.6c16c2p-10 (;=-0.00138889;)
f32.add
f32.mul
f32.const 0x1.555556p-5 (;=0.0416667;)
f32.add
f32.mul
local.set 7
block ;; label = @4
local.get 2
i32.const 1050253721
i32.gt_u
br_if 0 (;@4;)
f32.const 0x1p+0 (;=1;)
local.get 5
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 5
local.get 7
f32.mul
local.get 6
local.get 0
f32.mul
f32.sub
f32.sub
f32.sub
f32.neg
local.set 0
br 3 (;@1;)
end
f32.const 0x1p+0 (;=1;)
f32.const 0x1.2p-2 (;=0.28125;)
local.get 2
i32.const -16777216
i32.add
f32.reinterpret_i32
local.get 2
i32.const 1061683200
i32.gt_u
select
local.tee 8
f32.sub
local.get 5
local.get 7
f32.mul
local.get 6
local.get 0
f32.mul
f32.sub
local.get 5
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 8
f32.sub
f32.sub
f32.add
local.set 5
end
local.get 5
f32.neg
local.set 0
br 1 (;@1;)
end
local.get 0
i32.reinterpret_f32
i32.const 2147483647
i32.and
i32.const 838860799
i32.gt_u
local.set 2
block ;; label = @2
block ;; label = @3
local.get 0
f32.abs
f32.const 0x1p+31 (;=2.14748e+09;)
f32.lt
i32.eqz
br_if 0 (;@3;)
local.get 0
i32.trunc_f32_s
local.set 3
br 1 (;@2;)
end
i32.const -2147483648
local.set 3
end
block ;; label = @2
local.get 2
br_if 0 (;@2;)
local.get 3
i32.eqz
br_if 1 (;@1;)
end
local.get 0
local.get 0
local.get 0
local.get 0
f32.mul
local.tee 5
f32.neg
f32.mul
local.tee 6
f32.const -0x1.555556p-3 (;=-0.166667;)
f32.mul
local.get 5
local.get 1
f32.load offset=12
local.tee 7
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 6
local.get 5
local.get 5
local.get 5
local.get 5
f32.const 0x1.5d93a6p-33 (;=1.58969e-10;)
f32.mul
f32.const -0x1.ae5e68p-26 (;=-2.50508e-08;)
f32.add
f32.mul
f32.const 0x1.71de36p-19 (;=2.75573e-06;)
f32.add
f32.mul
f32.const -0x1.a01a02p-13 (;=-0.000198413;)
f32.add
f32.mul
f32.const 0x1.111112p-7 (;=0.00833333;)
f32.add
f32.mul
f32.add
f32.mul
local.get 7
f32.sub
f32.add
f32.sub
local.set 0
end
local.get 1
i32.const 16
i32.add
global.set $__stack_pointer
local.get 0)
(table (;0;) 1 1 funcref)
(memory (;0;) 1)
(global $__stack_pointer (mut i32) (i32.const 5264))
(global (;1;) i32 (i32.const 1156))
(global (;2;) i32 (i32.const 5264))
(export "memory" (memory 0))
(export "__wasm_apply_data_relocs" (func $__wasm_apply_data_relocs))
(export "entrypoint" (func $cosf_main))
(export "main" (func $__original_main))
(export "__data_end" (global 1))
(export "__heap_base" (global 2))
(data $.rodata (i32.const 1024) "\00\0f\c9?\00\0fI@\00\cb\96@\00\0f\c9@\00S\fb@\00\cb\16A\00\ed/A\00\0fIA\001bA\00S{A\00:\8aA\00\cb\96A\00\5c\a3A\00\ed\afA\00~\bcA\00\0f\c9A\00\a0\d5A\001\e2A\00\c2\eeA\00S\fbA\00\f2\03B\00:\0aB\00\83\10B\00\cb\16B\00\14\1dB\00\5c#B\00\a5)B\00\ed/B\0066B\00~<B\00\c7BB\00\0fIB"))