2019-01-24 15:44:08 -08:00
|
|
|
use wasmer_runtime_core::vm::Ctx;
|
|
|
|
|
2018-12-13 19:28:30 +01:00
|
|
|
/// emscripten: _llvm_log10_f64
|
2019-02-09 13:58:05 -08:00
|
|
|
pub fn _llvm_log10_f64(_ctx: &mut Ctx, value: f64) -> f64 {
|
2018-12-13 19:28:30 +01:00
|
|
|
debug!("emscripten::_llvm_log10_f64");
|
|
|
|
value.log10()
|
|
|
|
}
|
|
|
|
|
|
|
|
/// emscripten: _llvm_log2_f64
|
2019-02-09 13:58:05 -08:00
|
|
|
pub fn _llvm_log2_f64(_ctx: &mut Ctx, value: f64) -> f64 {
|
2018-12-13 19:28:30 +01:00
|
|
|
debug!("emscripten::_llvm_log2_f64");
|
|
|
|
value.log2()
|
|
|
|
}
|
|
|
|
|
2019-03-20 16:46:42 -07:00
|
|
|
/// emscripten: _llvm_sin_f64
|
|
|
|
pub fn _llvm_sin_f64(_ctx: &mut Ctx, value: f64) -> f64 {
|
|
|
|
debug!("emscripten::_llvm_sin_f64");
|
|
|
|
value.sin()
|
|
|
|
}
|
|
|
|
|
|
|
|
/// emscripten: _llvm_cos_f64
|
|
|
|
pub fn _llvm_cos_f64(_ctx: &mut Ctx, value: f64) -> f64 {
|
|
|
|
debug!("emscripten::_llvm_cos_f64");
|
|
|
|
value.cos()
|
|
|
|
}
|
|
|
|
|
2019-02-09 13:58:05 -08:00
|
|
|
pub fn _llvm_log10_f32(_ctx: &mut Ctx, _value: f64) -> f64 {
|
2019-01-26 17:02:51 -06:00
|
|
|
debug!("emscripten::_llvm_log10_f32");
|
2019-01-27 00:33:58 -06:00
|
|
|
-1.0
|
2019-01-26 17:02:51 -06:00
|
|
|
}
|
|
|
|
|
2019-02-09 13:58:05 -08:00
|
|
|
pub fn _llvm_log2_f32(_ctx: &mut Ctx, _value: f64) -> f64 {
|
2019-01-26 17:02:51 -06:00
|
|
|
debug!("emscripten::_llvm_log10_f32");
|
2019-01-27 00:33:58 -06:00
|
|
|
-1.0
|
|
|
|
}
|
|
|
|
|
2019-04-11 23:42:42 -07:00
|
|
|
pub fn _llvm_exp2_f32(_ctx: &mut Ctx, value: f32) -> f32 {
|
|
|
|
debug!("emscripten::_llvm_exp2_f32");
|
|
|
|
2f32.powf(value)
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn _llvm_exp2_f64(_ctx: &mut Ctx, value: f64) -> f64 {
|
|
|
|
debug!("emscripten::_llvm_exp2_f64");
|
|
|
|
2f64.powf(value)
|
|
|
|
}
|
|
|
|
|
2019-04-30 11:47:03 -07:00
|
|
|
pub fn _llvm_trunc_f64(_ctx: &mut Ctx, value: f64) -> f64 {
|
|
|
|
debug!("emscripten::_llvm_trunc_f64");
|
|
|
|
value.trunc()
|
|
|
|
}
|
|
|
|
|
2019-02-02 15:28:50 -08:00
|
|
|
pub fn _emscripten_random(_ctx: &mut Ctx) -> f64 {
|
2019-01-27 00:33:58 -06:00
|
|
|
debug!("emscripten::_emscripten_random");
|
|
|
|
-1.0
|
2019-01-26 17:02:51 -06:00
|
|
|
}
|
|
|
|
|
2019-04-05 13:33:28 -07:00
|
|
|
// emscripten: asm2wasm.f64-rem
|
2019-02-09 13:58:05 -08:00
|
|
|
pub fn f64_rem(_ctx: &mut Ctx, x: f64, y: f64) -> f64 {
|
2018-12-13 19:28:30 +01:00
|
|
|
debug!("emscripten::f64-rem");
|
|
|
|
x % y
|
|
|
|
}
|
2019-01-23 10:54:03 -08:00
|
|
|
|
|
|
|
// emscripten: global.Math pow
|
2019-02-09 13:58:05 -08:00
|
|
|
pub fn pow(_ctx: &mut Ctx, x: f64, y: f64) -> f64 {
|
2019-01-23 10:54:03 -08:00
|
|
|
x.powf(y)
|
|
|
|
}
|
2019-03-20 15:13:00 -07:00
|
|
|
|
|
|
|
// emscripten: global.Math exp
|
|
|
|
pub fn exp(_ctx: &mut Ctx, value: f64) -> f64 {
|
|
|
|
value.exp()
|
|
|
|
}
|
|
|
|
|
|
|
|
// emscripten: global.Math log
|
|
|
|
pub fn log(_ctx: &mut Ctx, value: f64) -> f64 {
|
|
|
|
value.ln()
|
|
|
|
}
|
2019-04-05 13:33:28 -07:00
|
|
|
|
|
|
|
// emscripten: asm2wasm.f64-to-int
|
|
|
|
pub fn f64_to_int(_ctx: &mut Ctx, value: f64) -> i32 {
|
|
|
|
debug!("emscripten::f64_to_int {}", value);
|
|
|
|
value as i32
|
|
|
|
}
|