blob: 68b246cce54e16341c043f00251097773c8d204d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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.
|