summary refs log tree commit diff stats
path: root/results/classifier/user-mode-bugs/1912934
blob: 1454948c44880c8556e5956ea01dba85357be0e4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
QEMU emulation of fmadds instruction on powerpc64le is buggy

The attached program test-fmadds.c tests the fmadds instruction on powerpc64le.

Result on real hardware (POWER8E processor):
$ ./a.out ; echo $?
0

Result in Alpine Linux 3.13/powerpcle, emulated by QEMU 5.0.0 on Ubuntu 16.04:
$ ./a.out ; echo $?
32

Result in Debian 8.6.0/ppc64el, emulated by QEMU 2.9.0 on Ubuntu 16.04:
$ ./a.out ; echo $?
32

Through 'nm --dynamic qemu-system-ppc64 | grep fma' I can see that QEMU is NOT using the fmaf() or fma() function from the host system's libc; this function is working fine in glibc of the host system (see https://www.gnu.org/software/gnulib/manual/html_node/fmaf.html ).