Finished STB, CRB and TSB instructions
This commit is contained in:
@@ -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)();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user