qemu/tcg: fix UC_HOOK_MEM_READ on aarch64. (#2028)
* qemu/tcg: fix UC_HOOK_MEM_READ on aarch64. Directly jump into the slow path when there is any hookmem enabled. This fixes #1908. Signed-off-by: Glenn Baker <glenn.baker@gmx.com> * qemu/tcg: fix UC_HOOK_MEM_READ on ppc64. Directly jump into the slow path when there is any hookmem enabled. Signed-off-by: Glenn Baker <glenn.baker@gmx.com> * qemu/tcg: check for UC_HOOK_MEM_READ_AFTER. Use has_hookmem() helper to determine wether "slow-path" TLB read is needed. Add this helper to x86 architecture as well so that to check for all hookmem. Signed-off-by: Glenn Baker <glenn.baker@gmx.com> * qemu/tcg: factor out has_hookmem(). It's the same implementation for all architectures, so factor out has_hookmem() into tcg_uc_has_hookmem(). Signed-off-by: Glenn Baker <glenn.baker@gmx.com> --------- Signed-off-by: Glenn Baker <glenn.baker@gmx.com>
This commit is contained in:
@@ -1578,4 +1578,11 @@ struct jit_code_entry {
|
||||
void uc_del_inline_hook(uc_engine *uc, struct hook *hk);
|
||||
void uc_add_inline_hook(uc_engine *uc, struct hook *hk, void** args, int args_len);
|
||||
|
||||
static inline bool tcg_uc_has_hookmem(TCGContext *s)
|
||||
{
|
||||
return HOOK_EXISTS(s->uc, UC_HOOK_MEM_READ) ||
|
||||
HOOK_EXISTS(s->uc, UC_HOOK_MEM_READ_AFTER) ||
|
||||
HOOK_EXISTS(s->uc, UC_HOOK_MEM_WRITE);
|
||||
}
|
||||
|
||||
#endif /* TCG_H */
|
||||
|
||||
Reference in New Issue
Block a user