x86: 0.996 semantic: 0.990 i386: 0.922 assembly: 0.913 architecture: 0.909 graphic: 0.782 device: 0.776 debug: 0.706 ppc: 0.677 operating system: 0.675 vnc: 0.663 kernel: 0.617 boot: 0.599 socket: 0.556 arm: 0.503 risc-v: 0.501 permissions: 0.500 register: 0.494 performance: 0.460 mistranslation: 0.452 network: 0.426 files: 0.374 alpha: 0.371 PID: 0.343 VMM: 0.283 TCG: 0.244 KVM: 0.240 virtual: 0.238 peripherals: 0.190 hypervisor: 0.108 user-level: 0.047 -------------------- x86: 1.000 assembly: 0.986 semantic: 0.984 i386: 0.965 debug: 0.322 register: 0.126 operating system: 0.048 files: 0.023 TCG: 0.018 kernel: 0.015 performance: 0.015 virtual: 0.013 user-level: 0.009 architecture: 0.007 PID: 0.007 device: 0.005 peripherals: 0.005 hypervisor: 0.004 VMM: 0.004 KVM: 0.003 network: 0.002 boot: 0.002 graphic: 0.002 permissions: 0.002 socket: 0.002 alpha: 0.002 risc-v: 0.002 ppc: 0.001 vnc: 0.001 mistranslation: 0.000 arm: 0.000 x86 ADOX and ADCX semantic bug Description of problem The result of instruction ADOX and ADCX are different from the CPU. The value of one of EFLAGS is different. Steps to reproduce Compile this code void main() { asm("push 512; popfq;"); asm("mov rax, 0xffffffff84fdbf24"); asm("mov rbx, 0xb197d26043bec15d"); asm("adox eax, ebx"); } Execute and compare the result with the CPU. This problem happens with ADCX, too (with CF). CPU OF = 0 QEMU OF = 1 Additional information This bug is discovered by research conducted by KAIST SoftSec.