Minor fixes to the shift flags, but still haven't fixed the issue

This commit is contained in:
transistor 2022-09-15 20:29:47 -07:00
parent 84d2b5e15b
commit 5304df2a9f

View File

@ -277,11 +277,8 @@ impl M68k {
self.set_flag(Flags::Overflow, overflow); self.set_flag(Flags::Overflow, overflow);
if count != 0 { if count != 0 {
self.set_flag(Flags::Extend, false); self.set_flag(Flags::Extend, pair.1);
if pair.1 { self.set_flag(Flags::Carry, pair.1);
self.set_flag(Flags::Carry, true);
self.set_flag(Flags::Extend, true);
}
} else { } else {
self.set_flag(Flags::Carry, false); self.set_flag(Flags::Carry, false);
} }
@ -556,11 +553,13 @@ impl M68k {
self.set_target_value(target, pair.0, size, Used::Twice)?; self.set_target_value(target, pair.0, size, Used::Twice)?;
// Adjust flags // Adjust flags
self.set_flag(Flags::Extend, false);
self.set_logic_flags(pair.0, size); self.set_logic_flags(pair.0, size);
if pair.1 { self.set_flag(Flags::Overflow, false);
self.set_flag(Flags::Carry, true); if count != 0 {
self.set_flag(Flags::Extend, true); self.set_flag(Flags::Extend, pair.1);
self.set_flag(Flags::Carry, pair.1);
} else {
self.set_flag(Flags::Carry, false);
} }
}, },
Instruction::MOVE(src, dest, size) => { Instruction::MOVE(src, dest, size) => {