summary refs log tree commit diff stats
path: root/results/classifier/phi4:14b/output/manual-review/1233225
blob: 0a7a2516c6871e00f1d8936fd43731430855e720 (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
mips/mipsel linux user float division problem

Hi,

I tested the following with the qemu git HEAD as of 2013-09-30 on Debian stable and testing. My host runs amd64 but I also tried this out inside a i386 chroot with the same result. The problem occurs for mips and mipsel. Given the following program:

#include <stdio.h>
int main(int argc, char **argv)
{
    int a = 1;
    double d = a/2.0;
    printf("%f\n", d);
    return 0;
}

Instead of printing 0.5, it will print 2.0 if executed in qemu user mode.

$ mipsel-linux-gnu-gcc mipstest.c
$ ~/qemu/mipsel-linux-user/qemu-mipsel ./a.out
2.0

Expecting this to be a problem with my cross compiler (gcc-4.4 from emdebian) I ran a fully emulated debian squeeze environment inside qemu. There, I compiled the same program natively with gcc and as expected got 0.5 as the output. I also copied the cross compiled binary inside the emulated environment and also got 0.5 when I ran it. So the same mips/mipsel binary produces different output depending on whether it is run in a fully emulated environment or qemu user mode.

Can anybody else reproduce this problem?