diff --git a/src/spider/runtime/instr/Instr_000-01F.cpp b/src/spider/runtime/instr/Instr_000-01F.cpp index 950bbe7..aaec58f 100644 --- a/src/spider/runtime/instr/Instr_000-01F.cpp +++ b/src/spider/runtime/instr/Instr_000-01F.cpp @@ -83,7 +83,6 @@ namespace spider { _dst->_u64 = ~_dst->_u64; break; } - (this->*_post)(); } void CPU::NEG() { @@ -103,7 +102,6 @@ namespace spider { _dst->_u64 = 1 + ~_dst->_u64; break; } - (this->*_post)(); } void CPU::EXS() { @@ -130,14 +128,17 @@ namespace spider { switch(_size){ case 0b00: //byte _dst->_u8 += 1; + break; case 0b01: //short _dst->_u16 += 1; + break; case 0b10: //int _dst->_u32 += 1; + break; case 0b11: //long _dst->_u64 += 1; + break; } - (this->*_post)(); } void CPU::DEC() { @@ -146,14 +147,17 @@ namespace spider { switch(_size){ case 0b00: //byte _dst->_u8 -= 1; + break; case 0b01: //short _dst->_u16 -= 1; + break; case 0b10: //int _dst->_u32 -= 1; + break; case 0b11: //long _dst->_u64 -= 1; + break; } - (this->*_post)(); } void CPU::ADD() { @@ -163,14 +167,17 @@ namespace spider { switch(_size){ case 0b00: //byte _dst->_u8 += _src->_u8; + break; case 0b01: //short _dst->_u16 += _src->_u16; + break; case 0b10: //int _dst->_u32 += _src->_u32; + break; case 0b11: //long _dst->_u64 += _src->_u64; + break; } - (this->*_post)(); } void CPU::SUB() { @@ -180,14 +187,17 @@ namespace spider { switch(_size){ case 0b00: //byte _dst->_u8 -= _src->_u8; + break; case 0b01: //short _dst->_u16 -= _src->_u16; + break; case 0b10: //int _dst->_u32 -= _src->_u32; + break; case 0b11: //long _dst->_u64 -= _src->_u64; + break; } - (this->*_post)(); } void CPU::MUL() { @@ -197,14 +207,17 @@ namespace spider { switch(_size){ case 0b00: //byte _dst->_i8 = _src->_i8 * _dst->_i8; + break; case 0b01: //short _dst->_i16 = _src->_i16 * _dst->_i16; + break; case 0b10: //int _dst->_i32 = _src->_i32 * _dst->_i32; + break; case 0b11: //long _dst->_i64 = _src->_i64 * _dst->_i64; + break; } - (this->*_post)(); } void CPU::UMUL() { @@ -214,14 +227,17 @@ namespace spider { switch(_size){ case 0b00: //byte _dst->_u8 = _src->_u8 * _dst->_u8; + break; case 0b01: //short _dst->_u16 = _src->_u16 * _dst->_u16; + break; case 0b10: //int _dst->_u32 = _src->_u32 * _dst->_u32; + break; case 0b11: //long _dst->_u64 = _src->_u64 * _dst->_u64; + break; } - (this->*_post)(); } void CPU::DIV() { @@ -231,14 +247,17 @@ namespace spider { switch(_size){ case 0b00: //byte _dst->_i8 = _dst->_i8 / _src->_i8; + break; case 0b01: //short _dst->_i16 = _dst->_i16 / _src->_i16; + break; case 0b10: //int _dst->_i32 = _dst->_i32 / _src->_i32; + break; case 0b11: //long _dst->_i64 = _dst->_i64 / _src->_i64; + break; } - (this->*_post)(); } void CPU::UDIV() { @@ -248,14 +267,17 @@ namespace spider { switch(_size){ case 0b00: //byte _dst->_u8 = _dst->_u8 / _src->_u8; + break; case 0b01: //short _dst->_u16 = _dst->_u16 / _src->_u16; + break; case 0b10: //int _dst->_u32 = _dst->_u32 / _src->_u32; + break; case 0b11: //long _dst->_u64 = _dst->_u64 / _src->_u64; + break; } - (this->*_post)(); } void CPU::MOD() { @@ -265,14 +287,17 @@ namespace spider { switch(_size){ case 0b00: //byte _dst->_i8 = _dst->_i8 % _src->_i8; + break; case 0b01: //short _dst->_i16 = _dst->_i16 % _src->_i16; + break; case 0b10: //int _dst->_i32 = _dst->_i32 % _src->_i32; + break; case 0b11: //long _dst->_i64 = _dst->_i64 % _src->_i64; + break; } - (this->*_post)(); } void CPU::UMOD() { @@ -282,14 +307,17 @@ namespace spider { switch(_size){ case 0b00: //byte _dst->_u8 = _dst->_u8 % _src->_u8; + break; case 0b01: //short _dst->_u16 = _dst->_u16 % _src->_u16; + break; case 0b10: //int _dst->_u32 = _dst->_u32 % _src->_u32; + break; case 0b11: //long _dst->_u64 = _dst->_u64 % _src->_u64; + break; } - (this->*_post)(); } void CPU::DMOD() { @@ -300,17 +328,20 @@ namespace spider { case 0b00: //byte RX._i8 = _dst->_i8 / _src->_i8; RY._i8 = _dst->_i8 % _src->_i8; + break; case 0b01: //short RX._i16 = _dst->_i16 / _src->_i16; RY._i16 = _dst->_i16 % _src->_i16; + break; case 0b10: //int RX._i32 = _dst->_i32 / _src->_i32; RY._i32 = _dst->_i32 % _src->_i32; + break; case 0b11: //long RX._i64 = _dst->_i64 / _src->_i64; RY._i64 = _dst->_i64 % _src->_i64; + break; } - (this->*_post)(); } void CPU::UDMD() { @@ -321,17 +352,20 @@ namespace spider { case 0b00: //byte RX._u8 = _dst->_u8 / _src->_u8; RY._u8 = _dst->_u8 % _src->_u8; + break; case 0b01: //short RX._u16 = _dst->_u16 / _src->_u16; RY._u16 = _dst->_u16 % _src->_u16; + break; case 0b10: //int RX._u32 = _dst->_u32 / _src->_u32; RY._u32 = _dst->_u32 % _src->_u32; + break; case 0b11: //long RX._u64 = _dst->_u64 / _src->_u64; RY._u64 = _dst->_u64 % _src->_u64; + break; } - (this->*_post)(); } void CPU::FBT() { @@ -340,14 +374,17 @@ namespace spider { switch(_size){ case 0b00: //byte RF = (RF & ~(0x3 << 9)) | ((_dst->_u8 >> 9) & 0x3) << 9; + break; case 0b01: //short RF = (RF & ~(0x3 << 9)) | ((_dst->_u16 >> 9) & 0x3) << 9; + break; case 0b10: //int RF = (RF & ~(0x3 << 9)) | ((_dst->_u32 >> 9) & 0x3) << 9; + break; case 0b11: //long RF = (RF & ~(0x3 << 9)) | ((_dst->_u64 >> 9) & 0x3) << 9; + break; } - (this->*_post)(); } }