summary refs log tree commit diff stats
path: root/results/classifier/zero-shot-user-mode/instruction/1832422
blob: 16de9858fa5ab0befb6b198d3d649a6eed1c899f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
instruction: 0.766
syscall: 0.150
runtime: 0.084



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.