mirror of https://github.com/xqemu/xqemu.git
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>
This commit is contained in:
parent
56f99ea19b
commit
e0c270d946
|
@ -6715,6 +6715,7 @@ static void disas_arm_insn(CPUARMState * env, DisasContext *s)
|
||||||
/* setend */
|
/* setend */
|
||||||
if (((insn >> 9) & 1) != s->bswap_code) {
|
if (((insn >> 9) & 1) != s->bswap_code) {
|
||||||
/* Dynamic endianness switching not implemented. */
|
/* Dynamic endianness switching not implemented. */
|
||||||
|
qemu_log_mask(LOG_UNIMP, "arm: unimplemented setend\n");
|
||||||
goto illegal_op;
|
goto illegal_op;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -8740,6 +8741,8 @@ static int disas_thumb2_insn(CPUARMState *env, DisasContext *s, uint16_t insn_hw
|
||||||
|
|
||||||
if (insn & (1 << 26)) {
|
if (insn & (1 << 26)) {
|
||||||
/* Secure monitor call (v6Z) */
|
/* Secure monitor call (v6Z) */
|
||||||
|
qemu_log_mask(LOG_UNIMP,
|
||||||
|
"arm: unimplemented secure monitor call\n");
|
||||||
goto illegal_op; /* not implemented. */
|
goto illegal_op; /* not implemented. */
|
||||||
} else {
|
} else {
|
||||||
op = (insn >> 20) & 7;
|
op = (insn >> 20) & 7;
|
||||||
|
@ -9779,6 +9782,7 @@ static void disas_thumb_insn(CPUARMState *env, DisasContext *s)
|
||||||
ARCH(6);
|
ARCH(6);
|
||||||
if (((insn >> 3) & 1) != s->bswap_code) {
|
if (((insn >> 3) & 1) != s->bswap_code) {
|
||||||
/* Dynamic endianness switching not implemented. */
|
/* Dynamic endianness switching not implemented. */
|
||||||
|
qemu_log_mask(LOG_UNIMP, "arm: unimplemented setend\n");
|
||||||
goto illegal_op;
|
goto illegal_op;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue