aboutsummaryrefslogtreecommitdiff
path: root/qom/object.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2023-11-20 15:01:21 +0000
committerPeter Maydell <peter.maydell@linaro.org>2023-11-27 14:50:13 +0000
commit11a3c4a286d5dc603582ea0a1fca62c2ec0a1aee (patch)
treea5722bfd1fd76a7a7667036812895bab6136eb13 /qom/object.c
parent4705fc0c8511d073bee4751c3c974aab2b10a970 (diff)
downloadqemu-11a3c4a286d5dc603582ea0a1fca62c2ec0a1aee.zip
qemu-11a3c4a286d5dc603582ea0a1fca62c2ec0a1aee.tar.gz
qemu-11a3c4a286d5dc603582ea0a1fca62c2ec0a1aee.tar.bz2
target/arm: Set IL bit for pauth, SVE access, BTI trap syndromes
The syndrome register value always has an IL field at bit 25, which is 0 for a trap on a 16 bit instruction, and 1 for a trap on a 32 bit instruction (or for exceptions which aren't traps on a known instruction, like PC alignment faults). This means that our syn_*() functions should always either take an is_16bit argument to determine whether to set the IL bit, or else unconditionally set it. We missed setting the IL bit for the syndrome for three kinds of trap: * an SVE access exception * a pointer authentication check failure * a BTI (branch target identification) check failure All of these traps are AArch64 only, and so the instruction causing the trap is always 64 bit. This means we can unconditionally set the IL bit in the syn_*() function. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20231120150121.3458408-1-peter.maydell@linaro.org Cc: qemu-stable@nongnu.org Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'qom/object.c')
0 files changed, 0 insertions, 0 deletions