blob: 0458e27582f796abb8859808043a8941436393e3 (
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
|
instruction: 0.978
device: 0.870
semantic: 0.790
network: 0.753
socket: 0.751
vnc: 0.711
graphic: 0.657
boot: 0.586
assembly: 0.462
other: 0.443
KVM: 0.336
mistranslation: 0.140
QEMU i386 fldl instruction is affected by the precision control bits of the FPU control word
Description of problem:
~~The QEMU softfloat float64_to_floatx80 implementation is broken and does not produce correct results.~~ QEMU i386 fldl instruction is affected by the precision control bits of the FPU control word.
```
IN = 1234.567890 (0x40934a4584f4c6e7)
OUT = 1234.567871 (0x40099a522c0000000000)
```
This bug was introduced in the QEMU commit qemu/qemu@8ae5719 as part of the switchover to FloatParts, and is still present in the latest tag (v7.0.0-rc4 as of now).
Prior to the offending commit:
```
IN = 1234.567890 (0x40934a4584f4c6e7)
OUT = 1234.567890 (0x40099a522c27a6373800)
```
This breaks the i386 emulation of `fldl st(0)` (`helper_fldl_ST0`).
Steps to reproduce:
Call `float64_to_floatx80` with the input value of `1234.567890 (0x40934a4584f4c6e7)` and see the returned result.
Additional information:
See https://github.com/zephyrproject-rtos/sdk-ng/issues/461
|