emu: SHL/SHR/SAR opcodes (BARELY TESTED!), const Op Directive
Carry Flag as yet untested and likely to contain bugs
This commit is contained in:
@@ -70,6 +70,7 @@ impl Flags {
|
||||
FlagOp::Eager => { self.res & 1 << OF_BIT != 0 },
|
||||
FlagOp::DEC => { self.res == self.sign_bit_mask - 1 },
|
||||
FlagOp::INC => { self.res == self.sign_bit_mask },
|
||||
FlagOp::SHIFT => { 0 != self.sign_bit_mask & (self.dst ^ self.res) },
|
||||
FlagOp::SUB => { 0 != self.sign_bit_mask & // In the (maybe) sign bit...
|
||||
(self.src ^ self.dst) & // ...operands have different signs...
|
||||
(self.dst ^ self.res) /* ...and result sign-bit changed */ },
|
||||
@@ -93,6 +94,7 @@ pub enum FlagOp {
|
||||
Eager, // precomputed into result, for e.g. POPF? (Anything else?)
|
||||
DEC,
|
||||
INC,
|
||||
SHIFT,
|
||||
SUB,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user