Implemented EXS instructions

This commit is contained in:
2026-03-29 02:08:56 -06:00
parent b397371a53
commit f0148dbe45

View File

@@ -71,13 +71,13 @@ namespace spider {
// TODO: Implement COM
fetchOperDst();
switch(_size){
case 0b00:
case 0b00: //byte
_dst->_u8 = ~_dst->_u8;
case 0b01:
case 0b01: //short
_dst->_u16 = ~_dst->_u16;
case 0b10:
case 0b10: //int
_dst->_u32 = ~_dst->_u32;
case 0b11:
case 0b11: //long
_dst->_u64 = ~_dst->_u64;
}
(this->*_post)();
@@ -87,13 +87,13 @@ namespace spider {
// TODO: Implement NEG
fetchOperDst();
switch(_size){
case 0b00:
case 0b00: //byte
_dst->_u8 = 1 + ~_dst->_u8;
case 0b01:
case 0b01: //short
_dst->_u16 = 1+ ~_dst->_u16;
case 0b10:
case 0b10: //int
_dst->_u32 = 1 + ~_dst->_u32;
case 0b11:
case 0b11: //long
_dst->_u64 = 1 + ~_dst->_u64;
}
(this->*_post)();
@@ -101,6 +101,19 @@ namespace spider {
void CPU::EXS() {
// TODO: Implement EXS
fetchOperDst();
switch(_size){
case 0b00: //byte
_dst->_u32 = _dst->_u8 & 1;
case 0b01: //short
_dst->_u32 = _dst->_u16 & 1;
case 0b10: //int
_dst->_u32 = _dst->_u32 & 1;
case 0b11: //long
_dst->_u32 = _dst->_u64 & 1;
}
_dst->_u32 = _dst->_u8;
(this->*_post)();
}
void CPU::INC() {