qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Re: QEMU regression problems - Update FPU


From: Gerhard Wiesinger
Subject: Re: [Qemu-devel] Re: QEMU regression problems - Update FPU
Date: Thu, 24 Feb 2011 08:03:02 +0100 (CET)
User-agent: Alpine 2.02 (LFD 1266 2009-07-14)

On Wed, 23 Feb 2011, Peter Maydell wrote:

On 18 February 2011 07:12, Gerhard Wiesinger <address@hidden> wrote:
Issue 1.) with FPU still present
I tracked down the problematic code and it is a rounding error from double
precision to 64bit floats: Any ideas how to fix such an issue in general?

QEMU result in ST0: 0.42925860786976457 (wrong emulated)
KVM result in ST0:  0.42925860786975449 (correct)

This is an error when running QEMU in TCG mode, right?
At the moment x86 is the odd-one-out in that it doesn't
use CONFIG_SOFTFLOAT for its FPU emulation, so somebody
has made an explicit choice of preferring speed over
accuracy, and I am unsurprised that there are rounding
errors as a result.

Yes, QEMU not KVM. Regarding mode: I guess tcg mode because softfloat doesn't compile on x64 (AMD) (How to find out which mode is used, what other modes exist?).

But can't we use the float64 type and use the normal i386 (or higher) instructions and therefore we get:
1.) less accurate but correct emulated results
2.) Have the full speed

Second solution would be to use a more accurate type like now but to use rounding to e.g. float64 after each FPU operation.

Maybe we can also use a define or config switch for accuracy vs. speed.

What do you think?

Ciao,
Gerhard

--
http://www.wiesinger.com/

reply via email to

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