diff mbox series

[PULL,1/4] arm: HVC and SMC encodings don't exist for M profile

Message ID 1490014476-25672-2-git-send-email-peter.maydell@linaro.org
State Accepted
Commit 001b3cab51ebfcb13e8dd03ea25bfa3bd0c517a3
Headers show
Series target-arm queue | expand

Commit Message

Peter Maydell March 20, 2017, 12:54 p.m. UTC
M profile doesn't have the HVC or SMC encodings, so make them always
UNDEF rather than generating calls to helper functions that assume
A/R profile.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

Message-id: 1487616072-9226-2-git-send-email-peter.maydell@linaro.org
---
 target/arm/translate.c | 3 +++
 1 file changed, 3 insertions(+)

-- 
2.7.4
diff mbox series

Patch

diff --git a/target/arm/translate.c b/target/arm/translate.c
index b859f10..216852b 100644
--- a/target/arm/translate.c
+++ b/target/arm/translate.c
@@ -10377,6 +10377,9 @@  static int disas_thumb2_insn(CPUARMState *env, DisasContext *s, uint16_t insn_hw
                     goto illegal_op;
 
                 if (insn & (1 << 26)) {
+                    if (arm_dc_feature(s, ARM_FEATURE_M)) {
+                        goto illegal_op;
+                    }
                     if (!(insn & (1 << 20))) {
                         /* Hypervisor call (v7) */
                         int imm16 = extract32(insn, 16, 4) << 12