blob: e305bde2980622ce91652b2f660548d37f0b7e96 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<think>
Okay, so I'm looking at this bug report about QEMU and an issue with the SSE4.2 CRC32 instruction causing an FPU exception when running FreeBSD. The user is using QEMU 5.2 with TCG acceleration and a Nehalem CPU setting.
From what I understand, when they run FreeBSD under these conditions, executing the crc32 instruction triggers an exception. They attached GDB and found it's happening in translate.c line 3067. That part of the code checks if the TS flag is set and raises an exception if it is. But according to Intel's documentation (page 61 of their manual), the CRC32 instruction should work regardless of the TS bit's state.
So, the bug seems related to how QEMU handles the crc32 instruction in TCG mode. Specifically, it incorrectly checks for the TS flag and raises an exception when it shouldn't. This is causing the FPU exception because the code assumes that the instruction requires FPU context even when it doesn't.
Now, categorizing this bug: The options are instruction, syscall, or runtime. Since the issue revolves around how a specific instruction (crc32) is handled by QEMU's TCG translator, it falls under the "instruction" category. It's not related to syscalls or general runtime errors but rather an incorrect handling of an instruction.
</think>
The bug pertains to how QEMU handles the CRC32 instruction in TCG mode, leading to an unnecessary FPU exception despite Intel's documentation. This is a problem with instruction execution.
instruction
|