Finished BOOL, FBT, UDMD and DMOD
This commit is contained in:
@@ -295,19 +295,23 @@ namespace spider {
|
|||||||
(this->*_post)();
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::DMOD() { //It gives error and I dont understand why
|
void CPU::DMOD() {
|
||||||
// TODO: Implement DMOD
|
// TODO: Implement DMOD
|
||||||
fetchOperSrc();
|
fetchOperSrc();
|
||||||
fetchOperDst();
|
fetchOperDst();
|
||||||
switch(_size){
|
switch(_size){
|
||||||
case 0b00: //byte
|
case 0b00: //byte
|
||||||
//_dst->_i8 / _src->_i8 = RX * _src + RY;
|
RX._i8 = _dst->_i8 / _src->_i8;
|
||||||
|
RY._i8 = _dst->_i8 % _src->_i8;
|
||||||
case 0b01: //short
|
case 0b01: //short
|
||||||
//_dst->_i16 / _src->_i16 = RX * _src->_i16 + RY;
|
RX._i16 = _dst->_i16 / _src->_i16;
|
||||||
|
RY._i16 = _dst->_i16 % _src->_i16;
|
||||||
case 0b10: //int
|
case 0b10: //int
|
||||||
//_dst->_i32 / _src->_i32 = RX * _src->_i32 + RY;
|
RX._i32 = _dst->_i32 / _src->_i32;
|
||||||
|
RY._i32 = _dst->_i32 % _src->_i32;
|
||||||
case 0b11: //long
|
case 0b11: //long
|
||||||
//_dst->_i64 / _src->_i64 = RX * _src->_i64 + RY;
|
RX._i64 = _dst->_i64 / _src->_i64;
|
||||||
|
RY._i64 = _dst->_i64 % _src->_i64;
|
||||||
}
|
}
|
||||||
(this->*_post)();
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
@@ -318,13 +322,17 @@ namespace spider {
|
|||||||
fetchOperDst();
|
fetchOperDst();
|
||||||
switch(_size){
|
switch(_size){
|
||||||
case 0b00: //byte
|
case 0b00: //byte
|
||||||
//_dst->_u8 / _src->_u8 = RX * _src->_u8 + RY;
|
RX._u8 = _dst->_u8 / _src->_u8;
|
||||||
|
RY._u8 = _dst->_u8 % _src->_u8;
|
||||||
case 0b01: //short
|
case 0b01: //short
|
||||||
//_dst->_u16 / _src->_u16 = RX * _src->_u16 + RY;
|
RX._u16 = _dst->_u16 / _src->_u16;
|
||||||
|
RY._u16 = _dst->_u16 % _src->_u16;
|
||||||
case 0b10: //int
|
case 0b10: //int
|
||||||
//_dst->_u32 / _src->_u32 = RX * _src->_u32 + RY;
|
RX._u32 = _dst->_u32 / _src->_u32;
|
||||||
|
RY._u32 = _dst->_u32 % _src->_u32;
|
||||||
case 0b11: //long
|
case 0b11: //long
|
||||||
//_dst->_u64 / _src->_u64 = RX * _src->_u64 + RY;
|
RX._u64 = _dst->_u64 / _src->_u64;
|
||||||
|
RY._u64 = _dst->_u64 % _src->_u64;
|
||||||
}
|
}
|
||||||
(this->*_post)();
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
@@ -334,13 +342,13 @@ namespace spider {
|
|||||||
fetchOperDst();
|
fetchOperDst();
|
||||||
switch(_size){
|
switch(_size){
|
||||||
case 0b00: //byte
|
case 0b00: //byte
|
||||||
_dst->_u8 = 1;
|
RF = (RF & ~(0x3 << 9)) | ((_dst->_u8 >> 9) & 0x3) << 9;
|
||||||
case 0b01: //short
|
case 0b01: //short
|
||||||
_dst->_u16 = 1;
|
RF = (RF & ~(0x3 << 9)) | ((_dst->_u16 >> 9) & 0x3) << 9;
|
||||||
case 0b10: //int
|
case 0b10: //int
|
||||||
_dst->_u32 = 1;
|
RF = (RF & ~(0x3 << 9)) | ((_dst->_u32 >> 9) & 0x3) << 9;
|
||||||
case 0b11: //long
|
case 0b11: //long
|
||||||
_dst->_u64 = 1;
|
RF = (RF & ~(0x3 << 9)) | ((_dst->_u64 >> 9) & 0x3) << 9;
|
||||||
}
|
}
|
||||||
(this->*_post)();
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ namespace spider {
|
|||||||
fetchOperDst();
|
fetchOperDst();
|
||||||
switch(_size){
|
switch(_size){
|
||||||
case 0b00: //byte
|
case 0b00: //byte
|
||||||
_dst->_u8 = 1;
|
|
||||||
|
_dst->_u8 = _src->_u8 == 0;
|
||||||
case 0b01: //short
|
case 0b01: //short
|
||||||
_dst->_u16 = 1;
|
_dst->_u16 = 1;
|
||||||
case 0b10: //int
|
case 0b10: //int
|
||||||
|
|||||||
Reference in New Issue
Block a user