diff --git a/src/spider/runtime/instr/Instr_060-07F.cpp b/src/spider/runtime/instr/Instr_060-07F.cpp index c253bcf..e973eb3 100644 --- a/src/spider/runtime/instr/Instr_060-07F.cpp +++ b/src/spider/runtime/instr/Instr_060-07F.cpp @@ -70,63 +70,96 @@ namespace spider { } void CPU::D2I() { - // TODO: Implement D2I + fetchOperDst(); + _dst->_u32 = static_cast(_dst->_f64); + (this->*_post)(); } void CPU::D2L() { - // TODO: Implement D2L + fetchOperDst(); + _dst->_u64 = static_cast(_dst->_f64); + (this->*_post)(); } void CPU::SIN() { - // TODO: Implement SIN + fetchOperDst(); + _dst->_f64 = std::sin(_dst->_f64); + (this->*_post)(); } void CPU::COS() { - // TODO: Implement COS + fetchOperDst(); + _dst->_f64 = std::cos(_dst->_f64); + (this->*_post)(); } void CPU::TAN() { - // TODO: Implement TAN + fetchOperDst(); + _dst->_f64 = std::tan(_dst->_f64); + (this->*_post)(); } void CPU::ASIN() { - // TODO: Implement ASIN + fetchOperDst(); + _dst->_f64 = std::asin(_dst->_f64); + (this->*_post)(); } void CPU::ACOS() { - // TODO: Implement ACOS + fetchOperDst(); + _dst->_f64 = std::acos(_dst->_f64); + (this->*_post)(); } void CPU::ATAN() { - // TODO: Implement ATAN + fetchOperDst(); + _dst->_f64 = std::atan(_dst->_f64); + (this->*_post)(); } void CPU::ATAN2() { - // TODO: Implement ATAN2 + fetchOperDst(); + fetchOperSrc(); + _dst->_f64 = std::atan2(_dst->_f64, _src->_f64); + (this->*_post)(); } void CPU::EXP() { - // TODO: Implement EXP + fetchOperDst(); + _dst->_f64 = std::exp(_dst->_f64); + (this->*_post)(); } void CPU::LOG() { - // TODO: Implement LOG + fetchOperDst(); + _dst->_f64 = std::log(_dst->_f64); + (this->*_post)(); } void CPU::LOGAB() { - // TODO: Implement LOGAB + fetchOperDst(); + fetchOperSrc(); + _dst->_f64 = std::log(_dst->_f64) / std::log(_src->_f64); + (this->*_post)(); } void CPU::POW() { - // TODO: Implement POW + fetchOperDst(); + fetchOperSrc(); + _dst->_f64 = std::pow(_dst->_f64, _src->_f64); + (this->*_post)(); } void CPU::SQRT() { - // TODO: Implement SQRT + fetchOperDst(); + _dst->_f64 = std::sqrt(_dst->_f64); + (this->*_post)(); } void CPU::ROOT() { - // TODO: Implement ROOT + fetchOperDst(); + fetchOperSrc(); + _dst->_f64 = std::pow(_dst->_f64, 1.0 / _src->_f64); } void CPU::ADC() {