diff --git a/src/vm.py b/src/vm.py index 8fb1490..4630938 100644 --- a/src/vm.py +++ b/src/vm.py @@ -276,13 +276,13 @@ class VM: def _branch_callback(self, cond: int, disp: int) -> None: c = Condition(cond) vm_c = Condition(self.cc) - if (c.v & vm_c.v) & (c.n & vm_c.n) & (c.z & vm_c.z) == c.i: + if (c.v & vm_c.v) | (c.n & vm_c.n) | (c.z & vm_c.z) == c.i: self.pc = c_uint32(self.pc.value + disp) def _branch_indexed_callback(self, cond: int, r1: int, disp: int) -> None: c = Condition(cond) vm_c = Condition(self.cc.value) - if (c.v & vm_c.v) & (c.n & vm_c.n) & (c.z & vm_c.z) == c.i: + if (c.v & vm_c.v) | (c.n & vm_c.n) | (c.z & vm_c.z) == c.i: addr = self.registers[r1].value + disp self.pc = c_uint32(addr)