Auf dieser Seite werden bekannte Fehler des Testers aufgeführt. Einige der Fehler können mit einer zukünftigen Version des Simulators behoben werden; es sollte sich nicht auf die Existenz dieser Fehler verlassen werden.
loop verändert rcx nichtProblem: Die loop Instruktion wird nicht korrekt emuliert, der Wert von rcx wird nicht verringert.
Lösung: Die Instruktion kann einfach durch eine Kombination aus sub/cmp und jcc ersetzt werden. Auf loop sollte jedoch allgemein verzichtet werden, da eine Kombination aus cmp und jcc (zumindest auf Hardware) immer schneller ist.
67h) wird bei Speicherzugriffen nicht berücksichtigtProblem: Bei Speicherzugriffen wird die Veränderung der Adressgröße von 64-Bit auf 32-Bit durch das Prefix 67 nicht beachtet und es wird weiterhin auf die 64-Bit Adresse zugegriffen.
Lösung: Die Adresse muss explizit auf 32-Bit gekürzt werden, z.B. via lea oder mov. Anzumerken ist, dass ein 32-Bit Speicheroperand im 64-Bit-Modus nur äußerst selten vorteilhaft ist und auch bei lea auch bei einer Operandengröße von 32-Bit ein 64-Bit Speicheroperand auf Hardware performanter ist.
Problem: Bei den Instruktionen pshuflw/pshufhw/unpcklpd/unpckhpd, welche beim Speicherzugriff ein Alignment erfordern, wird das tatsächliche Alignment der linearen Adresse nicht geprüft.
Lösung: n/a
maskmovdqu führt zur Exception #UDProblem: Die Instruktion maskmovdqu ist nicht implementiert und führt zu einer Invalid Opcoded Exception (#UD).
Lösung: Die Bytes können einzeln geschrieben werden.
enter mit Nesting Level > 0 führt zur Exception #UDProblem: Die Instruktion enter mit einem Nesting Level unglich 0 führt zu einer Invalid Opcoded Exception (#UD).
Lösung: Die Instruktion kann durch eine Sequenz von anderen semantisch äquivalenten Instruktionen ersetzt werden.