2 Commits

2 changed files with 18 additions and 18 deletions

View File

@@ -111,16 +111,16 @@ namespace spider {
fetchOperDst(); fetchOperDst();
switch(_size){ switch(_size){
case 0b00: //byte case 0b00: //byte
_dst->_u16 = _dst->_u8 & 1; _dst->_i16 = static_cast<i16>(_dst->_i8);
break; break;
case 0b01: //short case 0b01: //short
_dst->_u32 = _dst->_u16 & 1; _dst->_i32 = static_cast<i32>(_dst->_i16);
break; break;
case 0b10: //int case 0b10: //int
_dst->_u64 = _dst->_u32 & 1; _dst->_i64 = static_cast<i64>(_dst->_i32);
break; break;
case 0b11: //long case 0b11: //long
_dst->_u64 = _dst->_u64; _dst->_i64 = _dst->_i64;
break; break;
} }
_dst->_u32 = _dst->_u8; _dst->_u32 = _dst->_u8;
@@ -295,19 +295,19 @@ namespace spider {
(this->*_post)(); (this->*_post)();
} }
void CPU::DMOD() { void CPU::DMOD() { //It gives error and I dont understand why
// TODO: Implement DMOD // TODO: Implement DMOD
fetchOperSrc(); fetchOperSrc();
fetchOperDst(); fetchOperDst();
switch(_size){ switch(_size){
case 0b00: //byte case 0b00: //byte
_dst->_i8 = _dst->_i8 / _src->_i8, _dst->_i8 % _src->_i8; //_dst->_i8 / _src->_i8 = RX * _src + RY;
case 0b01: //short case 0b01: //short
_dst->_i16 = _dst->_i16 / _src->_i16, _dst->_i16 % _src->_i16; //_dst->_i16 / _src->_i16 = RX * _src->_i16 + RY;
case 0b10: //int case 0b10: //int
_dst->_i32 = _dst->_i32 / _src->_i32, _dst->_i32 % _src->_i32; //_dst->_i32 / _src->_i32 = RX * _src->_i32 + RY;
case 0b11: //long case 0b11: //long
_dst->_i64 = _dst->_i64 / _src->_i64, _dst->_i64 % _src->_i64; //_dst->_i64 / _src->_i64 = RX * _src->_i64 + RY;
} }
(this->*_post)(); (this->*_post)();
} }
@@ -318,13 +318,13 @@ namespace spider {
fetchOperDst(); fetchOperDst();
switch(_size){ switch(_size){
case 0b00: //byte case 0b00: //byte
_dst->_u8 = _dst->_u8 / _src->_u8, _dst->_u8 % _src->_u8; //_dst->_u8 / _src->_u8 = RX * _src->_u8 + RY;
case 0b01: //short case 0b01: //short
_dst->_u16 = _dst->_u16 / _src->_u16, _dst->_u16 % _src->_u16; //_dst->_u16 / _src->_u16 = RX * _src->_u16 + RY;
case 0b10: //int case 0b10: //int
_dst->_u32 = _dst->_u32 / _src->_u32, _dst->_u32 % _src->_u32; //_dst->_u32 / _src->_u32 = RX * _src->_u32 + RY;
case 0b11: //long case 0b11: //long
_dst->_u64 = _dst->_u64 / _src->_u64, _dst->_u64 % _src->_u64; //_dst->_u64 / _src->_u64 = RX * _src->_u64 + RY;
} }
(this->*_post)(); (this->*_post)();
} }

View File

@@ -63,13 +63,13 @@ namespace spider {
fetchOperDst(); fetchOperDst();
switch(_size){ switch(_size){
case 0b00: //byte case 0b00: //byte
_dst->_u8 = 1; _dst->_u8 = _dst != 0;
case 0b01: //short case 0b01: //short
_dst->_u16 = 1; _dst->_u16 = _dst != 0;
case 0b10: //int case 0b10: //int
_dst->_u32 = 1; _dst->_u32 = _dst != 0;
case 0b11: //long case 0b11: //long
_dst->_u64 = 1; _dst->_u64 = _dst != 0;
} }
(this->*_post)(); (this->*_post)();
} }