summary refs log tree commit diff stats
path: root/results/classifier/semantic-bugs/instruction/1832422
blob: 39c39a63d360efda75c6083770705be8aab75411 (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
instruction: 0.815
device: 0.667
network: 0.510
socket: 0.486
graphic: 0.457
semantic: 0.453
vnc: 0.413
boot: 0.294
other: 0.278
mistranslation: 0.276
assembly: 0.233
KVM: 0.224

SSE CMP ops with 8bit immediate throw sigill with oversized byte

The SSE comparison ops that use an 8bit immediate as a comparison type selector throws a sigill when the immediate is oversized.

Test op that I found this on is here `66 0f c2 c0 d1          cmppd  xmm0,xmm0,0xd1`
According to the x86-64 documentation only bits [2:0] are used for these ops (and [4:0] for the AVX variant)
Currently qemu just checks if the value is >=8 and will throw a sigill in that case. It instead needs to mask.

I have a small patch that fixes the issue for the SSE variant.




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/184