Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
09211 Timing Minor Always 2 days ago 1 day ago
Tester hap View Status Public Platform MAME (Official Binary)
Assigned To Resolution Open OS Windows 10/11 (64-bit)
Status [?] Acknowledged Driver
Version 0.278 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 09211: x86 CPU cores: REP opcodes are too slow with tight scheduler intervals.
Description x86 CPU cores: REP opcodes are too slow with tight scheduler intervals.

REP opcodes are interruptable, and therefore, MAME checks for icount>0 while doing the REP loop.
However, this also means that if icount<=0 due to another reason than an interrupt, it will redo the opcode from the start, instead of continuing the internal loop. This adds a couple of extra cycles and memory accesses that don't happen on the real CPU. If for example so-called perfect quantum is used, REP opcodes will be much slower (in other words, counter-intuitively, perfect quantum will lower timing accuracy for these opcodes).

Applies to:
cpu/i86 (i86, i186, i286)
cpu/i386, probably
cpu/nec - bug: REP opcodes interruptability unemulated - fixed for 0.279 and also fixed the issue described in this report
cpu/v30mz - bug: REP opcodes interruptability unemulated
Steps To Reproduce Unknown if there currently are any symptoms due to this bug.
Additional Information
Github Commit
Flags
Regression Version
Affected Sets / Systems
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
0
There are no notes attached to this issue.