summary refs log tree commit diff stats
path: root/results/classifier/zero-shot/118/none/1828867
blob: 90ffe6501efe1b5f7bd0a6c7155b44483775a3a5 (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
60
61
62
63
64
65
device: 0.454
socket: 0.435
register: 0.409
mistranslation: 0.388
performance: 0.306
assembly: 0.285
PID: 0.282
kernel: 0.269
network: 0.264
vnc: 0.258
risc-v: 0.256
architecture: 0.253
graphic: 0.231
semantic: 0.225
x86: 0.207
ppc: 0.207
user-level: 0.192
i386: 0.187
arm: 0.172
boot: 0.171
peripherals: 0.159
hypervisor: 0.154
TCG: 0.154
permissions: 0.151
VMM: 0.129
files: 0.128
KVM: 0.124
debug: 0.080
virtual: 0.075

QEmu translation is incorrect when using REX in combination with LAHF/SAHF

When translating code that is using LAHF and SAHF in combination with the REX prefix then qemu translates incorrectly.
These two instructions only ever use the AH register. Contrary to other instructions where if you use REX + high bit offsets then it'll pull in rsp and a few other registers.
On hardware the REX prefix doesn't effect behaviour of these instructions at all.
QEMU incorrectly selects RSP as the register of choice here due to this combination of REX + AH register usage.

I've attached a patch that is super terrible just so I can work around the issue locally and to sort of show off how it is to be "fixed"



Here's also a basic test that can be run on hardware and have rflags and rsp inspected after each instruction just to see how hardware doesn't effect it.

The QEMU project is currently considering to move its bug tracking to
another system. For this we need to know which bugs are still valid
and which could be closed already. Thus we are setting older bugs to
"Incomplete" now.

If you still think this bug report here is valid, then please switch
the state back to "New" within the next 60 days, otherwise this report
will be marked as "Expired". Or please mark it as "Fix Released" if
the problem has been solved with a newer version of QEMU already.

Thank you and sorry for the inconvenience.

This is still relevant.


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