diff options
Diffstat (limited to 'results/classifier/gemma3:12b/kernel/1668041')
| -rw-r--r-- | results/classifier/gemma3:12b/kernel/1668041 | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/results/classifier/gemma3:12b/kernel/1668041 b/results/classifier/gemma3:12b/kernel/1668041 new file mode 100644 index 000000000..cced05ba4 --- /dev/null +++ b/results/classifier/gemma3:12b/kernel/1668041 @@ -0,0 +1,11 @@ + +x86 Floating point exceptions - incorrect support? + +It seems that qemu does not correctly emulate the x86 support for optionally causing a floating-point exception (#FP) when, for example, dividing by zero. Reports such as: + +https://github.com/cloudius-systems/osv/issues/855 +http://stackoverflow.com/questions/15134189/qemu-div-by-zero-mxcsr-register + +suggest that setting the exception mask in the fpu cw or mxcsr (e.g., using a function like feenableexcept() in the guest OS) does not generate floating point exceptions on divide by zero. The problem only happens on pure QEMU - when a QEMU/KVM combination is used, the actual hardware does the floating point work, and does throw the exception on divide by zero if so requested. + +Looking at the qemu (2.8.0) source code, it seems to me it really lacks support for generating fpu exceptions: For example, helper_fdiv() in target-i386/fpu_helper.c, when it notices the divisor is zero, seems to set the divide-by-zero exception bit, but doesn't seem to check whether it needs to trigger an exception (when the right bits on the x87 or SSE control words are enabled). \ No newline at end of file |