From d8fb6fb951cd3eb87da023a473498c4d116209f9 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sun, 30 Jun 2019 22:40:10 -0400 Subject: [PATCH] Corrects MULU timing. --- Processors/68000/Implementation/68000Implementation.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Processors/68000/Implementation/68000Implementation.hpp b/Processors/68000/Implementation/68000Implementation.hpp index 0b2f3aa55..358a6a6b4 100644 --- a/Processors/68000/Implementation/68000Implementation.hpp +++ b/Processors/68000/Implementation/68000Implementation.hpp @@ -930,12 +930,12 @@ template void Proces int number_of_ones = 0; auto source = active_program_->source->halves.low.full; while(source) { + number_of_ones += source&1; source >>= 1; - ++number_of_ones; } // Time taken = 38 cycles + 2 cycles per 1 in the source. - set_next_microcycle_length(HalfCycles(4 * number_of_ones + 38*2)); + set_next_microcycle_length(HalfCycles(4 * number_of_ones + 34*2)); } break; case Operation::MULS: { @@ -952,7 +952,7 @@ template void Proces int source = active_program_->source->halves.low.full; source = (source ^ (source << 1)) & 0xffff; while(source) { - if(source&1) ++number_of_pairs; + number_of_pairs += source&1; source >>= 1; }