device: 0.454 socket: 0.435 performance: 0.306 PID: 0.282 network: 0.264 vnc: 0.258 graphic: 0.231 semantic: 0.225 boot: 0.171 other: 0.169 permissions: 0.151 files: 0.128 KVM: 0.124 debug: 0.080 QEmu translation is incorrect when using REX in combination with LAHF/SAHF When translating code that is using LAHF and SAHF in combination with the REX prefix then qemu translates incorrectly. These two instructions only ever use the AH register. Contrary to other instructions where if you use REX + high bit offsets then it'll pull in rsp and a few other registers. On hardware the REX prefix doesn't effect behaviour of these instructions at all. QEMU incorrectly selects RSP as the register of choice here due to this combination of REX + AH register usage. I've attached a patch that is super terrible just so I can work around the issue locally and to sort of show off how it is to be "fixed" Here's also a basic test that can be run on hardware and have rflags and rsp inspected after each instruction just to see how hardware doesn't effect it. The QEMU project is currently considering to move its bug tracking to another system. For this we need to know which bugs are still valid and which could be closed already. Thus we are setting older bugs to "Incomplete" now. If you still think this bug report here is valid, then please switch the state back to "New" within the next 60 days, otherwise this report will be marked as "Expired". Or please mark it as "Fix Released" if the problem has been solved with a newer version of QEMU already. Thank you and sorry for the inconvenience. This is still relevant. This is an automated cleanup. This bug report has been moved to QEMU's new bug tracker on gitlab.com and thus gets marked as 'expired' now. Please continue with the discussion here: https://gitlab.com/qemu-project/qemu/-/issues/130