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 _______________________________________________ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel