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; }