x86: 0.997 semantic: 0.983 architecture: 0.887 graphic: 0.873 assembly: 0.852 i386: 0.827 device: 0.790 kernel: 0.770 socket: 0.764 vnc: 0.756 operating system: 0.725 ppc: 0.719 arm: 0.685 boot: 0.678 network: 0.672 performance: 0.656 risc-v: 0.651 files: 0.633 permissions: 0.619 mistranslation: 0.606 TCG: 0.538 debug: 0.525 PID: 0.488 register: 0.488 alpha: 0.475 VMM: 0.449 KVM: 0.412 virtual: 0.342 peripherals: 0.335 hypervisor: 0.238 user-level: 0.138 -------------------- x86: 1.000 assembly: 0.985 semantic: 0.981 i386: 0.962 debug: 0.206 register: 0.172 operating system: 0.060 performance: 0.033 kernel: 0.027 files: 0.026 TCG: 0.018 architecture: 0.012 virtual: 0.011 user-level: 0.010 PID: 0.009 peripherals: 0.007 device: 0.006 risc-v: 0.005 VMM: 0.005 alpha: 0.005 hypervisor: 0.004 network: 0.004 permissions: 0.003 boot: 0.003 KVM: 0.003 graphic: 0.003 socket: 0.002 vnc: 0.001 mistranslation: 0.001 ppc: 0.000 arm: 0.000 x86 BLSI and BLSR semantic bug Description of problem The result of instruction BLSI and BLSR is different from the CPU. The value of CF is different. Steps to reproduce Compile this code void main() { asm("blsi rax, rbx"); } Execute and compare the result with the CPU. The value of CF is exactly the opposite. This problem happens with BLSR, too. Additional information This bug is discovered by research conducted by KAIST SoftSec.