diff --git a/InstructionSets/x86/Implementation/PerformImplementation.hpp b/InstructionSets/x86/Implementation/PerformImplementation.hpp index 68844f1e6..9b97b161e 100644 --- a/InstructionSets/x86/Implementation/PerformImplementation.hpp +++ b/InstructionSets/x86/Implementation/PerformImplementation.hpp @@ -862,6 +862,7 @@ void call_far(InstructionT &instruction, const Source source_segment = instruction.data_segment(); + // TODO: preauthorise reads. const uint16_t offset = memory.template access(source_segment, source_address); source_address += 2; const uint16_t segment = memory.template access(source_segment, source_address); @@ -1672,7 +1673,7 @@ template < case Operation::ADD: Primitive::add(destination_rmw(), source_r(), status); break; case Operation::SBB: Primitive::sub(destination_rmw(), source_r(), status); break; case Operation::SUB: Primitive::sub(destination_rmw(), source_r(), status); break; - case Operation::CMP: Primitive::sub(destination_rmw(), source_r(), status); return; + case Operation::CMP: Primitive::sub(destination_r(), source_r(), status); return; case Operation::TEST: Primitive::test(destination_r(), source_r(), status); return; case Operation::MUL: Primitive::mul(pair_high(), pair_low(), source_r(), status); return;