Co-authored-by: Rami Ali <flowergrass@users.noreply.github.com>
This commit is contained in:
@ -10434,6 +10434,8 @@ static void disas_thumb_insn(CPUARMState *env, DisasContext *s) // qq
|
|||||||
// Unicorn: trace this instruction on request
|
// Unicorn: trace this instruction on request
|
||||||
if (HOOK_EXISTS_BOUNDED(s->uc, UC_HOOK_CODE, s->pc)) {
|
if (HOOK_EXISTS_BOUNDED(s->uc, UC_HOOK_CODE, s->pc)) {
|
||||||
// determine instruction size (Thumb/Thumb2)
|
// determine instruction size (Thumb/Thumb2)
|
||||||
|
// avoid terminating inside ITE clause
|
||||||
|
if (s->condexec_mask == 0) {
|
||||||
switch(insn & 0xf800) {
|
switch(insn & 0xf800) {
|
||||||
// Thumb2: 32-bit
|
// Thumb2: 32-bit
|
||||||
case 0xe800:
|
case 0xe800:
|
||||||
@ -10443,9 +10445,13 @@ static void disas_thumb_insn(CPUARMState *env, DisasContext *s) // qq
|
|||||||
break;
|
break;
|
||||||
// Thumb: 16-bit
|
// Thumb: 16-bit
|
||||||
default:
|
default:
|
||||||
|
// avoid terminating at an IT instruction
|
||||||
|
if (!((insn & 0xff00) == 0xbf00)) {
|
||||||
gen_uc_tracecode(tcg_ctx, 2, UC_HOOK_CODE_IDX, s->uc, s->pc);
|
gen_uc_tracecode(tcg_ctx, 2, UC_HOOK_CODE_IDX, s->uc, s->pc);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// the callback might want to stop emulation immediately
|
// the callback might want to stop emulation immediately
|
||||||
check_exit_request(tcg_ctx);
|
check_exit_request(tcg_ctx);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user