qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [BUG] QEMU x86_64 SSE bug in modf()


From: Carlo Marcelo Arenas Belon
Subject: Re: [Qemu-devel] [BUG] QEMU x86_64 SSE bug in modf()
Date: Mon, 15 Jan 2007 05:54:10 -0600
User-agent: Mutt/1.4.1i

On Mon, Jan 15, 2007 at 11:18:01AM +0100, Ludovic Drolez wrote:
> 
> Float to string conversion uses modf() but this function fails under QEMU 
> and SLES 64, as you can see in this small test program below:

pressume you mean running SLES 10 64bit as a guest under QEMU here.
which version of qemu for the host? and what platform/arch?

> The SLES's glibc uses lots of SSE instructions as you can see in the dump 
> below (gcc 4.1.0):

the gcc that is used for the glibc in the guest should be irrelevant if all
the emulated instructions are correctly compiled in the host and there are no
bugs on them of course.

the host has to be compiled with gcc 3, gcc 4.x won't work even if it
compiles.

> ===========SLES 64 modf()==========
> 000000000002ed00 <modf>:
>    2ed00:       f2 0f 11 44 24 f8       movsd  
>    %xmm0,0xfffffffffffffff8(%rsp)
>    2ed06:       48 8b 44 24 f8          mov    0xfffffffffffffff8(%rsp),%rax
>    2ed0b:       66 0f 28 c8             movapd %xmm0,%xmm1

movapd is actually an SSE2 instruction, and that seem to be the main
difference between this function and the one from Debian (which uses only SSE)
just like the one from my host (Gentoo)

> Would someone be able to track down this SSE QEMU bug seen only in SLES's 
> modf() function ?

hopefully you already did.

Carlo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]