summaryrefslogtreecommitdiffstats
path: root/target/arm/translate-a64.c
diff options
context:
space:
mode:
authorRichard Henderson2022-07-08 17:14:57 +0200
committerPeter Maydell2022-07-11 14:19:35 +0200
commite67cd1cac26181873496e5fb2464dbeb038e0fcd (patch)
treed82707500e9b4bc94a743c9f42106f77535462cf /target/arm/translate-a64.c
parenttarget/arm: Handle SME in aarch64_cpu_dump_state (diff)
downloadqemu-e67cd1cac26181873496e5fb2464dbeb038e0fcd.tar.gz
qemu-e67cd1cac26181873496e5fb2464dbeb038e0fcd.tar.xz
qemu-e67cd1cac26181873496e5fb2464dbeb038e0fcd.zip
target/arm: Add infrastructure for disas_sme
This includes the build rules for the decoder, and the new file for translation, but excludes any instructions. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220708151540.18136-3-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target/arm/translate-a64.c')
-rw-r--r--target/arm/translate-a64.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c
index c86b97b1d4..a5f8a6c771 100644
--- a/target/arm/translate-a64.c
+++ b/target/arm/translate-a64.c
@@ -14806,7 +14806,12 @@ static void aarch64_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu)
}
switch (extract32(insn, 25, 4)) {
- case 0x0: case 0x1: case 0x3: /* UNALLOCATED */
+ case 0x0:
+ if (!extract32(insn, 31, 1) || !disas_sme(s, insn)) {
+ unallocated_encoding(s);
+ }
+ break;
+ case 0x1: case 0x3: /* UNALLOCATED */
unallocated_encoding(s);
break;
case 0x2: