id = 1373 title = "x86 ADOX and ADCX semantic bug" state = "closed" created_at = "2022-12-16T06:58:59.266Z" closed_at = "2023-02-24T15:06:58.959Z" labels = ["Closed::Fixed", "accel: TCG", "target: i386"] url = "https://gitlab.com/qemu-project/qemu/-/issues/1373" host-os = "Windows 10 20H2" host-arch = "x86" qemu-version = "7.1.90 (v7.2.0-rc0)" guest-os = "None" guest-arch = "x86" description = """The result of instruction ADOX and ADCX are different from the CPU. The value of one of EFLAGS is different.""" reproduce = """1. Compile this code ``` void main() { asm("push 512; popfq;"); asm("mov rax, 0xffffffff84fdbf24"); asm("mov rbx, 0xb197d26043bec15d"); asm("adox eax, ebx"); } ``` 2. Execute and compare the result with the CPU. This problem happens with ADCX, too (with CF). - CPU - OF = 0 - QEMU - OF = 1""" additional = """This bug is discovered by research conducted by KAIST SoftSec."""