Merge pull request 'Implement instructions 0x068-0x079: casts and math functions' (#6) from diego/instruc-068-079 into main
Reviewed-on: #6
This commit was merged in pull request #6.
This commit is contained in:
@@ -70,63 +70,96 @@ namespace spider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CPU::D2I() {
|
void CPU::D2I() {
|
||||||
// TODO: Implement D2I
|
fetchOperDst();
|
||||||
|
_dst->_u32 = static_cast<u32>(_dst->_f64);
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::D2L() {
|
void CPU::D2L() {
|
||||||
// TODO: Implement D2L
|
fetchOperDst();
|
||||||
|
_dst->_u64 = static_cast<u64>(_dst->_f64);
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::SIN() {
|
void CPU::SIN() {
|
||||||
// TODO: Implement SIN
|
fetchOperDst();
|
||||||
|
_dst->_f64 = std::sin(_dst->_f64);
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::COS() {
|
void CPU::COS() {
|
||||||
// TODO: Implement COS
|
fetchOperDst();
|
||||||
|
_dst->_f64 = std::cos(_dst->_f64);
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::TAN() {
|
void CPU::TAN() {
|
||||||
// TODO: Implement TAN
|
fetchOperDst();
|
||||||
|
_dst->_f64 = std::tan(_dst->_f64);
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::ASIN() {
|
void CPU::ASIN() {
|
||||||
// TODO: Implement ASIN
|
fetchOperDst();
|
||||||
|
_dst->_f64 = std::asin(_dst->_f64);
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::ACOS() {
|
void CPU::ACOS() {
|
||||||
// TODO: Implement ACOS
|
fetchOperDst();
|
||||||
|
_dst->_f64 = std::acos(_dst->_f64);
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::ATAN() {
|
void CPU::ATAN() {
|
||||||
// TODO: Implement ATAN
|
fetchOperDst();
|
||||||
|
_dst->_f64 = std::atan(_dst->_f64);
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::ATAN2() {
|
void CPU::ATAN2() {
|
||||||
// TODO: Implement ATAN2
|
fetchOperDst();
|
||||||
|
fetchOperSrc();
|
||||||
|
_dst->_f64 = std::atan2(_dst->_f64, _src->_f64);
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::EXP() {
|
void CPU::EXP() {
|
||||||
// TODO: Implement EXP
|
fetchOperDst();
|
||||||
|
_dst->_f64 = std::exp(_dst->_f64);
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::LOG() {
|
void CPU::LOG() {
|
||||||
// TODO: Implement LOG
|
fetchOperDst();
|
||||||
|
_dst->_f64 = std::log(_dst->_f64);
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::LOGAB() {
|
void CPU::LOGAB() {
|
||||||
// TODO: Implement LOGAB
|
fetchOperDst();
|
||||||
|
fetchOperSrc();
|
||||||
|
_dst->_f64 = std::log(_dst->_f64) / std::log(_src->_f64);
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::POW() {
|
void CPU::POW() {
|
||||||
// TODO: Implement POW
|
fetchOperDst();
|
||||||
|
fetchOperSrc();
|
||||||
|
_dst->_f64 = std::pow(_dst->_f64, _src->_f64);
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::SQRT() {
|
void CPU::SQRT() {
|
||||||
// TODO: Implement SQRT
|
fetchOperDst();
|
||||||
|
_dst->_f64 = std::sqrt(_dst->_f64);
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::ROOT() {
|
void CPU::ROOT() {
|
||||||
// TODO: Implement ROOT
|
fetchOperDst();
|
||||||
|
fetchOperSrc();
|
||||||
|
_dst->_f64 = std::pow(_dst->_f64, 1.0 / _src->_f64);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::ADC() {
|
void CPU::ADC() {
|
||||||
|
|||||||
Reference in New Issue
Block a user