Added DIV, UDIV, MOD, UMOD intruction code
This commit is contained in:
@@ -229,18 +229,70 @@ namespace spider {
|
|||||||
|
|
||||||
void CPU::DIV() {
|
void CPU::DIV() {
|
||||||
// TODO: Implement DIV
|
// TODO: Implement DIV
|
||||||
|
fetchOperSrc();
|
||||||
|
fetchOperDst();
|
||||||
|
switch(_size){
|
||||||
|
case 0b00: //byte
|
||||||
|
_dst->_i8 = _dst->_i8 / _src->_i8;
|
||||||
|
case 0b01: //short
|
||||||
|
_dst->_i16 = _dst->_i16 / _src->_i16;
|
||||||
|
case 0b10: //int
|
||||||
|
_dst->_i32 = _dst->_i32 / _src->_i32;
|
||||||
|
case 0b11: //long
|
||||||
|
_dst->_i64 = _dst->_i64 / _src->_i64;
|
||||||
|
}
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::UDIV() {
|
void CPU::UDIV() {
|
||||||
// TODO: Implement UDIV
|
// TODO: Implement UDIV
|
||||||
|
fetchOperSrc();
|
||||||
|
fetchOperDst();
|
||||||
|
switch(_size){
|
||||||
|
case 0b00: //byte
|
||||||
|
_dst->_u8 = _dst->_u8 / _src->_u8;
|
||||||
|
case 0b01: //short
|
||||||
|
_dst->_u16 = _dst->_u16 / _src->_u16;
|
||||||
|
case 0b10: //int
|
||||||
|
_dst->_u32 = _dst->_u32 / _src->_u32;
|
||||||
|
case 0b11: //long
|
||||||
|
_dst->_u64 = _dst->_u64 / _src->_u64;
|
||||||
|
}
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::MOD() {
|
void CPU::MOD() {
|
||||||
// TODO: Implement MOD
|
// TODO: Implement MOD
|
||||||
|
fetchOperSrc();
|
||||||
|
fetchOperDst();
|
||||||
|
switch(_size){
|
||||||
|
case 0b00: //byte
|
||||||
|
_dst->_i8 = _dst->_i8 % _src->_i8;
|
||||||
|
case 0b01: //short
|
||||||
|
_dst->_i16 = _dst->_i16 % _src->_i16;
|
||||||
|
case 0b10: //int
|
||||||
|
_dst->_i32 = _dst->_i32 % _src->_i32;
|
||||||
|
case 0b11: //long
|
||||||
|
_dst->_i64 = _dst->_i64 % _src->_i64;
|
||||||
|
}
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::UMOD() {
|
void CPU::UMOD() {
|
||||||
// TODO: Implement UMOD
|
// TODO: Implement UMOD
|
||||||
|
fetchOperSrc();
|
||||||
|
fetchOperDst();
|
||||||
|
switch(_size){
|
||||||
|
case 0b00: //byte
|
||||||
|
_dst->_u8 = _dst->_u8 % _src->_u8;
|
||||||
|
case 0b01: //short
|
||||||
|
_dst->_u16 = _dst->_u16 % _src->_u16;
|
||||||
|
case 0b10: //int
|
||||||
|
_dst->_u32 = _dst->_u32 % _src->_u32;
|
||||||
|
case 0b11: //long
|
||||||
|
_dst->_u64 = _dst->_u64 % _src->_u64;
|
||||||
|
}
|
||||||
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::DMOD() {
|
void CPU::DMOD() {
|
||||||
|
|||||||
Reference in New Issue
Block a user