Finished STB, CRB and TSB instructions

This commit is contained in:
2026-04-06 19:18:30 -06:00
parent 0449074ef6
commit 7155ad8d5a

View File

@@ -13,14 +13,13 @@ namespace spider {
fetchOperDst(); fetchOperDst();
switch(_size){ switch(_size){
case 0b00: //byte case 0b00: //byte
_dst->_u8 |= (1 << _src->_u8);
_dst->_u8 = _src->_u8 == 0;
case 0b01: //short case 0b01: //short
_dst->_u16 = 1; _dst->_u16 |= (1 << _src->_u16);
case 0b10: //int case 0b10: //int
_dst->_u32 = 1; _dst->_u32 |= (1 << _src->_u32);
case 0b11: //long case 0b11: //long
_dst->_u64 = 1; _dst->_u64 |= (1 << _src->_u64);
} }
(this->*_post)(); (this->*_post)();
} }
@@ -31,13 +30,13 @@ namespace spider {
fetchOperDst(); fetchOperDst();
switch(_size){ switch(_size){
case 0b00: //byte case 0b00: //byte
_dst->_u8 = 1; _dst->_u8 &= ~(1 << _src->_u8);
case 0b01: //short case 0b01: //short
_dst->_u16 = 1; _dst->_u16 &= ~(1 << _src->_u16);
case 0b10: //int case 0b10: //int
_dst->_u32 = 1; _dst->_u32 &= ~(1 << _src->_u32);
case 0b11: //long case 0b11: //long
_dst->_u64 = 1; _dst->_u64 &= ~(1 << _src->_u64);
} }
(this->*_post)(); (this->*_post)();
} }
@@ -48,13 +47,37 @@ namespace spider {
fetchOperDst(); fetchOperDst();
switch(_size){ switch(_size){
case 0b00: //byte case 0b00: //byte
_dst->_u8 = 1; switch (((RF >> _src->_u8) & 1) != ((_dst->_u8 >> _src->_u8) & 1)){
case 1:
RF |= (1 << _src->_u8);
case 0:
RF &= ~(1 << _src->_u8);
}
case 0b01: //short case 0b01: //short
_dst->_u16 = 1; switch (((RF >> _src->_u16) & 1) != ((_dst->_u16 >> _src->_u16) & 1)){
case 1:
RF |= (1 << _src->_u16);
case 0:
RF &= ~(1 << _src->_u16);
}
case 0b10: //int case 0b10: //int
_dst->_u32 = 1; switch (((RF >> _src->_u32) & 1) != ((_dst->_u32 >> _src->_u32) & 1)){
case 1:
RF |= (1 << _src->_u32);
case 0:
RF &= ~(1 << _src->_u32);
}
case 0b11: //long case 0b11: //long
_dst->_u64 = 1; switch (((RF >> _src->_u64) & 1) != ((_dst->_u64 >> _src->_u64) & 1)){
case 1:
RF |= (1 << _src->_u64);
case 0:
RF &= ~(1 << _src->_u64);
}
} }
(this->*_post)(); (this->*_post)();
} }