Okay, so I'm trying to figure out whether this floating-point issue in QEMU is a user-mode or system-mode problem. Let me start by understanding the problem as described. The user provided a C program that uses floorf() and found that when compiled with certain CPU architectures (like pentium3), the floorf function returns 0.0 instead of the expected value. However, when using other architectures like pentium4, it works fine. They tested this on Windows under QEMU with different CPU models. The symptoms they observed were: - With `host-passthrough`, it worked on AMD and Intel hosts. - The `qemu64` model was broken. - `EPYC-Milan` and `Westmere` models worked, but `Penryn` didn't. They compiled the program with MSVC Clang using `-march=pentium3` or similar flags. So it's about how floating-point operations are handled under different CPU models in QEMU. Now, thinking about what floorf does: it returns the largest integer less than or equal to a given float. The fact that it sometimes returns 0 suggests something is wrong with how the floating-point numbers are being processed. Possible causes: 1. **Compiler flags**: Using `-march=pentium3` might disable some instructions, but since it works on host-passthrough, maybe QEMU isn't handling certain instructions correctly when emulating older CPUs. 2. **QEMU's CPU emulation**: If QEMU is not properly emulating the floating-point unit for these specific CPU models (like Penryn), that could cause issues with math functions like floorf. 3. **Windows behavior**: It might be a Windows issue, but since it only happens under certain QEMU setups, I'm leaning towards QEMU. Since this affects how system calls or CPU instructions are handled in the virtualized environment, especially related to floating-point operations which are part of the CPU's instruction set, it seems like a problem with how QEMU is emulating the CPU. This would fall under system-mode because it involves lower-level operations and device emulation. Therefore, I think this bug relates to system-mode issues. system