blob: b19e7226452ba38f186e579f35320d83ef3f4eef (
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
|
graphic: 0.678
instruction: 0.413
device: 0.369
semantic: 0.364
network: 0.197
other: 0.186
mistranslation: 0.183
vnc: 0.179
socket: 0.178
boot: 0.122
KVM: 0.051
assembly: 0.022
Hang in fsqrt
At least qemu-i368 and qemu-x86_64 hang in floatx80_sqrt in versions 2.6.0 and git (2.6.50) for some input values, likely due to an infinite loop at fpu/softfloat.c:6569.
Steps to reproduce:
1) Compile attached code: gcc -o test test.c -lm
2) `qemu-i368 test` and `qemu-x86_64 test` will hang at 100% cpu
Thanks for this bug report. The problem here is that QEMU is not correctly handling the obsolete "unnormal" 80-bit floating point format. The Intel architecture reference says that this should be handled by raising the invalid-input exception and returning the default NaN.
See also the discussion in the mailing list thread "Hang bug in 80-bit float square root implementation", though the patch there is not the correct fix for the bug.
Bug fixed showed by https://github.com/unicorn-engine/unicorn/pull/609
and the test case shows no problem on the most recent release.
|