blob: 9de83b4d812fec53947fa8d01cb798e01271b300 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<think>
Okay, I need to classify this bug report as either user-mode or system-mode related. Let me start by understanding the problem.
The issue is about incorrect handling of the aarch64 ldp instruction in QEMU. The specific scenario is when loading two registers from memory, and one page is unmapped. This causes an exception. According to ARM's documentation, after an exception, registers used for addressing should be restored. However, it seems QEMU isn't doing that correctly because x0 is updated before the exception, leading to a retry that fails.
The user encountered this while running FreeBSD with a specific memcpy implementation using these instructions. They tested on QEMU versions 2.5 and 2.9. So, it's an issue within QEMU's emulation of ARMv8 instructions.
Now, thinking about system vs user mode: System-mode issues usually involve higher privilege levels like kernel operations or device handling. User-mode deals with the CPU's behavior from a software perspective, especially when running applications that use specific instructions.
This bug is about how the CPU (in QEMU) handles exceptions during instruction execution. It affects the state of registers after an exception, which impacts user-space code since memcpy is part of userland. The issue isn't related to device drivers or OS kernel operations directly but rather the correct handling of instructions in user mode.
So, it's more about how the CPU behaves when executing user-mode code and handling exceptions correctly according to architecture specs.
</think>
user
|