diff options
Diffstat (limited to 'results/classifier/118/x86/889053')
| -rw-r--r-- | results/classifier/118/x86/889053 | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/results/classifier/118/x86/889053 b/results/classifier/118/x86/889053 new file mode 100644 index 00000000..5375f25d --- /dev/null +++ b/results/classifier/118/x86/889053 @@ -0,0 +1,80 @@ +x86: 0.855 +architecture: 0.770 +mistranslation: 0.767 +i386: 0.747 +device: 0.640 +kernel: 0.567 +user-level: 0.548 +graphic: 0.544 +hypervisor: 0.539 +socket: 0.539 +ppc: 0.535 +files: 0.525 +performance: 0.524 +peripherals: 0.507 +vnc: 0.495 +semantic: 0.495 +risc-v: 0.448 +PID: 0.429 +network: 0.411 +permissions: 0.383 +arm: 0.382 +VMM: 0.359 +TCG: 0.331 +boot: 0.317 +register: 0.316 +debug: 0.312 +virtual: 0.310 +KVM: 0.296 +assembly: 0.277 + +x86: FPU_MAX, FPU_MIN incorrect + +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. + + + + + +misprint: +spec sphinx3 test data + +482.sphinx3: http://www.spec.org/cpu2006/CFP2006/ + +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). + + +Hello! +Can I commit this patch (in development branch), and close this bug... +Or you must do it? + +Your patch is broken, as I said before. + + +Yes, but you patch is correct... + +May be commit you patch + +I say about +#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) ? (b) : (a) + +The patch mentioned in comment #5 has been included here: +http://git.qemu.org/?p=qemu.git;a=commitdiff;h=a4d1f142542935b90d2e + |