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-alpha | |
| 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-alpha')
| -rw-r--r-- | target-alpha/helper.c | 14 | ||||
| -rw-r--r-- | target-alpha/mem_helper.c | 8 |
2 files changed, 9 insertions, 13 deletions
diff --git a/target-alpha/helper.c b/target-alpha/helper.c index d9d7f75b58..2430f70aca 100644 --- a/target-alpha/helper.c +++ b/target-alpha/helper.c @@ -494,16 +494,6 @@ void cpu_dump_state (CPUAlphaState *env, FILE *f, fprintf_function cpu_fprintf, cpu_fprintf(f, "\n"); } -void do_restore_state(CPUAlphaState *env, uintptr_t retaddr) -{ - if (retaddr) { - TranslationBlock *tb = tb_find_pc(retaddr); - if (tb) { - cpu_restore_state(tb, env, retaddr); - } - } -} - /* This should only be called from translate, via gen_excp. We expect that ENV->PC has already been updated. */ void QEMU_NORETURN helper_excp(CPUAlphaState *env, int excp, int error) @@ -519,7 +509,9 @@ void QEMU_NORETURN dynamic_excp(CPUAlphaState *env, uintptr_t retaddr, { env->exception_index = excp; env->error_code = error; - do_restore_state(env, retaddr); + if (retaddr) { + cpu_restore_state(env, retaddr); + } cpu_loop_exit(env); } diff --git a/target-alpha/mem_helper.c b/target-alpha/mem_helper.c index 617836cc6c..64b33f6518 100644 --- a/target-alpha/mem_helper.c +++ b/target-alpha/mem_helper.c @@ -94,7 +94,9 @@ static void do_unaligned_access(CPUAlphaState *env, target_ulong addr, uint64_t pc; uint32_t insn; - do_restore_state(env, retaddr); + if (retaddr) { + cpu_restore_state(env, retaddr); + } pc = env->pc; insn = cpu_ldl_code(env, pc); @@ -143,7 +145,9 @@ void tlb_fill(CPUAlphaState *env, target_ulong addr, int is_write, ret = cpu_alpha_handle_mmu_fault(env, addr, is_write, mmu_idx); if (unlikely(ret != 0)) { - do_restore_state(env, retaddr); + if (retaddr) { + cpu_restore_state(env, retaddr); + } /* Exception index and error code are already set */ cpu_loop_exit(env); } |
