summary refs log tree commit diff stats
path: root/gitlab/issues_text/target_i386/host_missing/accel_missing/2817
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-06-01 21:35:14 +0200
committerChristian Krinitsin <mail@krinitsin.com>2025-06-01 21:35:14 +0200
commit3e4c5a6261770bced301b5e74233e7866166ea5b (patch)
tree9379fddaba693ef8a045da06efee8529baa5f6f4 /gitlab/issues_text/target_i386/host_missing/accel_missing/2817
parente5634e2806195bee44407853c4bf8776f7abfa4f (diff)
downloadqemu-analysis-3e4c5a6261770bced301b5e74233e7866166ea5b.tar.gz
qemu-analysis-3e4c5a6261770bced301b5e74233e7866166ea5b.zip
clean up repository
Diffstat (limited to 'gitlab/issues_text/target_i386/host_missing/accel_missing/2817')
-rw-r--r--gitlab/issues_text/target_i386/host_missing/accel_missing/281751
1 files changed, 0 insertions, 51 deletions
diff --git a/gitlab/issues_text/target_i386/host_missing/accel_missing/2817 b/gitlab/issues_text/target_i386/host_missing/accel_missing/2817
deleted file mode 100644
index 0f00a05f5..000000000
--- a/gitlab/issues_text/target_i386/host_missing/accel_missing/2817
+++ /dev/null
@@ -1,51 +0,0 @@
-Strange floating-point behaviour under Windows with some CPU models
-Description of problem:
-I'm encountering a very weird bug with some floating-point maths code, but only under very specific configurations. First I thought it was a Clang bug, but then further digging eventually showed it to only occur under Windows VMs with specific QEMU CPU options, I'm not certain whether it is a QEMU/KVM bug or a Windows bug, but thought starting here would be easiest.
-
-When compiled under MSVC Clang with modern CPU instructions disabled (e.g. `-march=pentium3` or `-march=pentium-mmx`), the `floorf()` call in the following program always returns 0.0, while the truncation works correctly:
-
-```
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-int main(int argc, char **argv)
-{
-	float n = atof(argv[1]);
-	printf("n = %f\n", n);
-	
-	float f = floorf(n);
-	printf("f = %f\n", f);
-	
-	float c = (int)(n);
-	printf("c = %f\n", c);
-	
-	return 0;
-}
-```
-
-Example output on an affected VM:
-
-```
-C:\Users\Administrator> floorf-p3.exe 10
-n = 10.000000
-f = 0.000000
-c = 10.000000
-
-C:\Users\Administrator> floorf-p4.exe 10
-n = 10.000000
-f = 10.000000
-c = 10.000000
-```
-
-(`floorf-p3.exe` was compiled with `-march=pentium3` and `floorf-p4.exe` with `-march=pentium4` above)
-
-I've tried a few QEMU CPU models on a variety of Intel/AMD VM hosts and two different Windows versions (10 and Server 2022), and observed the following:
-
-* `host-passthrough` - works (on AMD and Intel hosts)
-* `qemu64` - broken
-* `EPYC-Milan` - works
-* `Westmere` - works
-* `Penryn` - broken
-
-(I also reported this via the mailing list, but I think it might've swallowed my post)