diff options
author | Stefan Weil <sw@weilnetz.de> | 2013-08-28 06:39:56 +0200 |
---|---|---|
committer | Michael Tokarev <mjt@tls.msk.ru> | 2013-09-01 19:34:32 +0400 |
commit | e0c270d946dc8efd723129b6a9d956b3084b55b1 (patch) | |
tree | 9edf45daa4b29b0f6fc6ae702a53cf7944a82f1b | |
parent | 56f99ea19b5ae71cfdc0bd147cba372da3b63c44 (diff) |
target-arm: Report unimplemented opcodes (LOG_UNIMP)
These unimplemented opcodes are handled like illegal opcodes, but
they are used in existing code. We should at least report when they
are executed.
Signed-off-by: Stefan Weil <sw@weilnetz.de>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
-rw-r--r-- | target-arm/translate.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/target-arm/translate.c b/target-arm/translate.c index d1e8538142..92d9f1637f 100644 --- a/target-arm/translate.c +++ b/target-arm/translate.c @@ -6715,6 +6715,7 @@ static void disas_arm_insn(CPUARMState * env, DisasContext *s) /* setend */ if (((insn >> 9) & 1) != s->bswap_code) { /* Dynamic endianness switching not implemented. */ + qemu_log_mask(LOG_UNIMP, "arm: unimplemented setend\n"); goto illegal_op; } return; @@ -8740,6 +8741,8 @@ static int disas_thumb2_insn(CPUARMState *env, DisasContext *s, uint16_t insn_hw if (insn & (1 << 26)) { /* Secure monitor call (v6Z) */ + qemu_log_mask(LOG_UNIMP, + "arm: unimplemented secure monitor call\n"); goto illegal_op; /* not implemented. */ } else { op = (insn >> 20) & 7; @@ -9779,6 +9782,7 @@ static void disas_thumb_insn(CPUARMState *env, DisasContext *s) ARCH(6); if (((insn >> 3) & 1) != s->bswap_code) { /* Dynamic endianness switching not implemented. */ + qemu_log_mask(LOG_UNIMP, "arm: unimplemented setend\n"); goto illegal_op; } break; |