diff options
Diffstat (limited to 'target-sh4/op_helper.c')
-rw-r--r-- | target-sh4/op_helper.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/target-sh4/op_helper.c b/target-sh4/op_helper.c index b299576651..40547911cd 100644 --- a/target-sh4/op_helper.c +++ b/target-sh4/op_helper.c @@ -22,18 +22,16 @@ #include "dyngen-exec.h" #include "helper.h" -static void cpu_restore_state_from_retaddr(void *retaddr) +static void cpu_restore_state_from_retaddr(uintptr_t retaddr) { TranslationBlock *tb; - unsigned long pc; if (retaddr) { - pc = (unsigned long) retaddr; - tb = tb_find_pc(pc); + 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, pc); + cpu_restore_state(tb, env, retaddr); } } } @@ -55,10 +53,10 @@ static void cpu_restore_state_from_retaddr(void *retaddr) #define SHIFT 3 #include "softmmu_template.h" -void tlb_fill(CPUState *env1, target_ulong addr, int is_write, int mmu_idx, - void *retaddr) +void tlb_fill(CPUSH4State *env1, target_ulong addr, int is_write, int mmu_idx, + uintptr_t retaddr) { - CPUState *saved_env; + CPUSH4State *saved_env; int ret; saved_env = env; @@ -84,7 +82,7 @@ void helper_ldtlb(void) #endif } -static inline void raise_exception(int index, void *retaddr) +static inline void raise_exception(int index, uintptr_t retaddr) { env->exception_index = index; cpu_restore_state_from_retaddr(retaddr); @@ -447,7 +445,7 @@ void helper_ld_fpscr(uint32_t val) set_flush_to_zero((val & FPSCR_DN) != 0, &env->fp_status); } -static void update_fpscr(void *retaddr) +static void update_fpscr(uintptr_t retaddr) { int xcpt, cause, enable; |