blob: a3e16a08d5ceb37d0c71afbbd3d0d12b02d84dc7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
x86: 1.000
semantic: 0.987
assembly: 0.982
i386: 0.968
debug: 0.389
register: 0.292
operating system: 0.057
kernel: 0.047
files: 0.027
performance: 0.021
virtual: 0.019
TCG: 0.016
peripherals: 0.011
user-level: 0.011
device: 0.009
PID: 0.008
architecture: 0.008
hypervisor: 0.006
VMM: 0.005
KVM: 0.004
network: 0.004
permissions: 0.003
socket: 0.003
boot: 0.003
graphic: 0.002
risc-v: 0.002
alpha: 0.002
vnc: 0.001
mistranslation: 0.001
ppc: 0.000
arm: 0.000
x86 BLSMSK semantic bug
Description of problem
The result of instruction BLSMSK is different with from the CPU. The value of CF is different.
Steps to reproduce
Compile this code
void main() {
asm("mov rax, 0x65b2e276ad27c67");
asm("mov rbx, 0x62f34955226b2b5d");
asm("blsmsk eax, ebx");
}
Execute and compare the result with the CPU.
CPU
CF = 0
QEMU
CF = 1
Additional information
This bug is discovered by research conducted by KAIST SoftSec.
|