blob: a9dad90361ad142b51e4133ff191300f935f70ca (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<think>
Okay, so I'm trying to figure out whether this bug in QEMU is user-mode related or system-mode related. Let's break it down.
The problem involves the VLLDM and VLSTM instructions, which are part of ARMv8-M Mainline Profile. These instructions are supposed to act as NOPs when the Floating-point Extension isn't implemented, even in Secure state. But according to the report, QEMU is causing a UsageFault instead of just ignoring them as NOPs.
Looking at the code example provided, these instructions are generated by the compiler for saving and restoring floating point registers during a non-secure function call. The __gnu_cmse_nonsecure_call function uses VLSTM and VLLDM around the BLXNS instruction, which is a non-secure call.
So, in this context, it's about how the CPU handles these instructions when running code that makes secure/non-secure calls. Since the compiler is generating these instructions as part of normal function calls, it seems like the issue arises during user-space execution.
Now, considering QEMU's role: if the emulator isn't handling these instructions correctly in user mode (where most applications run), then this would be a user-mode bug. It's not about system-level operations or device drivers but about how application code is executed.
Therefore, I think this bug is related to user mode because it affects regular application execution rather than higher-privilege operations or system services.
</think>
user
|