qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [Bug 889053] Re: x86: FPU_MAX, FPU_MIN incorrect


From: Peter Maydell
Subject: [Qemu-devel] [Bug 889053] Re: x86: FPU_MAX, FPU_MIN incorrect
Date: Fri, 11 Nov 2011 12:12:21 -0000

The attached patch is incorrect (using the softfloat _min/_max functions will 
give wrong answers for some special cases). The correct macros are
#define FPU_MIN(size, a, b) float ## size ## _lt(a, b, &env->sse_status) ? (a) 
: (b)
#define FPU_MAX(size, a, b) float ## size ## _lt(b, a, &env->sse_status) ? (a) 
: (b)

(see recent discussion on the qemu-devel list).

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/889053

Title:
  x86: FPU_MAX, FPU_MIN incorrect

Status in QEMU:
  New

Bug description:
  Dear All,

  Bug was found in qemu.git.
  Now (0.15, 1.0) all fpu is softfpu.
  See target-i386/ops_sse.h:
  #define FPU_MIN(size, a, b) (a) < (b) ? (a) : (b)
  #define FPU_MAX(size, a, b) (a) > (b) ? (a) : (b)
  It is incorrect now, becouse float64 (or 32) is (typedef) uint64_t (or 32).
  And if we have signed operands we get error...

  There is a test with this error (spec shinx3 test data, results diffs
  on machine and qemu (linux)) and fixed patch. See attach.

  Daniil.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/889053/+subscriptions



reply via email to

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