diff options
author | Blue Swirl | 2012-12-04 21:16:07 +0100 |
---|---|---|
committer | Blue Swirl | 2012-12-16 09:35:24 +0100 |
commit | a8a826a3c3b8c8a1c4def0e9e22b46e78e6163a0 (patch) | |
tree | 4477f11f1fdb1a5f1ad2914d1ebbf86e4c2df435 /target-i386 | |
parent | exec: move TB handling to translate-all.c (diff) | |
download | qemu-a8a826a3c3b8c8a1c4def0e9e22b46e78e6163a0.tar.gz qemu-a8a826a3c3b8c8a1c4def0e9e22b46e78e6163a0.tar.xz qemu-a8a826a3c3b8c8a1c4def0e9e22b46e78e6163a0.zip |
exec: refactor cpu_restore_state
Refactor common code around calls to cpu_restore_state().
tb_find_pc() has now no external users, make it static.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'target-i386')
-rw-r--r-- | target-i386/helper.c | 5 | ||||
-rw-r--r-- | target-i386/mem_helper.c | 8 |
2 files changed, 2 insertions, 11 deletions
diff --git a/target-i386/helper.c b/target-i386/helper.c index bf206cfa97..00341c5233 100644 --- a/target-i386/helper.c +++ b/target-i386/helper.c @@ -1196,15 +1196,12 @@ void cpu_x86_inject_mce(Monitor *mon, X86CPU *cpu, int bank, void cpu_report_tpr_access(CPUX86State *env, TPRAccess access) { - TranslationBlock *tb; - if (kvm_enabled()) { env->tpr_access_type = access; cpu_interrupt(env, CPU_INTERRUPT_TPR); } else { - tb = tb_find_pc(env->mem_io_pc); - cpu_restore_state(tb, env, env->mem_io_pc); + cpu_restore_state(env, env->mem_io_pc); apic_handle_tpr_access_report(env->apic_state, env->eip, access); } diff --git a/target-i386/mem_helper.c b/target-i386/mem_helper.c index 7f99c7cfe3..d0be77b1ed 100644 --- a/target-i386/mem_helper.c +++ b/target-i386/mem_helper.c @@ -135,19 +135,13 @@ void helper_boundl(CPUX86State *env, target_ulong a0, int v) void tlb_fill(CPUX86State *env, target_ulong addr, int is_write, int mmu_idx, uintptr_t retaddr) { - TranslationBlock *tb; int ret; ret = cpu_x86_handle_mmu_fault(env, addr, is_write, mmu_idx); if (ret) { if (retaddr) { /* now we have a real cpu fault */ - tb = tb_find_pc(retaddr); - if (tb) { - /* the PC is inside the translated code. It means that we have - a virtual CPU fault */ - cpu_restore_state(tb, env, retaddr); - } + cpu_restore_state(env, retaddr); } raise_exception_err(env, env->exception_index, env->error_code); } |