Merge pull request #29 from MerryMage/master

arm/translate: Do not tracecode when in an IT block
This commit is contained in:
LC 2021-02-07 16:05:14 -05:00 committed by GitHub
commit e5725839b9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 3 deletions

View file

@ -10151,9 +10151,11 @@ static void thumb_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu)
// Unicorn: trace this instruction on request
const uint32_t insn_size = is_16bit ? 2 : 4;
if (HOOK_EXISTS_BOUNDED(dc->uc, UC_HOOK_CODE, dc->base.pc_next - insn_size)) {
gen_uc_tracecode(tcg_ctx, insn_size, UC_HOOK_CODE_IDX, dc->uc, dc->base.pc_next - insn_size);
// the callback might want to stop emulation immediately
check_exit_request(tcg_ctx);
if (!dc->condexec_mask) {
gen_uc_tracecode(tcg_ctx, insn_size, UC_HOOK_CODE_IDX, dc->uc, dc->base.pc_next - insn_size);
// the callback might want to stop emulation immediately
check_exit_request(tcg_ctx);
}
}
if (is_16bit) {

View file

@ -9,6 +9,7 @@
#include "unicorn.h"
#include "unicorn_common.h"
#include "uc_priv.h"
#include "exec/helper-proto.h"
const int ARM_REGS_STORAGE_SIZE = offsetof(CPUARMState, tlb_table);