blob: 27890c19e34eb14a2758e807db244e5fb48ca9ca (
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
|
architecture: 0.780
ppc: 0.678
device: 0.667
x86: 0.624
performance: 0.561
network: 0.510
socket: 0.486
kernel: 0.477
files: 0.473
graphic: 0.457
semantic: 0.453
vnc: 0.413
permissions: 0.389
peripherals: 0.333
register: 0.315
i386: 0.304
boot: 0.294
risc-v: 0.293
arm: 0.293
mistranslation: 0.276
PID: 0.268
hypervisor: 0.265
virtual: 0.256
VMM: 0.236
assembly: 0.233
debug: 0.226
KVM: 0.224
TCG: 0.192
user-level: 0.150
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
|