target/arm/translate: Subtract PC value properly for thumb tracecode calls

This commit is contained in:
Lioncash 2019-04-18 05:44:48 -04:00
parent b9d1002609
commit 5d6ddec7fb
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7

View file

@ -12614,11 +12614,11 @@ static void disas_thumb_insn(DisasContext *s, uint32_t insn)
case 0xe800: case 0xe800:
case 0xf000: case 0xf000:
case 0xf800: case 0xf800:
gen_uc_tracecode(tcg_ctx, 4, UC_HOOK_CODE_IDX, s->uc, s->pc); gen_uc_tracecode(tcg_ctx, 4, UC_HOOK_CODE_IDX, s->uc, s->pc - 4);
break; break;
// Thumb: 16-bit // Thumb: 16-bit
default: default:
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 - 2);
break; break;
} }
// the callback might want to stop emulation immediately // the callback might want to stop emulation immediately