Revision 20503968 target-microblaze/op_helper.c

b/target-microblaze/op_helper.c
44 44
   from generated code or from helper.c) */
45 45
/* XXX: fix it to restore all registers */
46 46
void tlb_fill(CPUMBState *env1, target_ulong addr, int is_write, int mmu_idx,
47
              void *retaddr)
47
              uintptr_t retaddr)
48 48
{
49 49
    TranslationBlock *tb;
50 50
    CPUMBState *saved_env;
51
    unsigned long pc;
52 51
    int ret;
53 52

  
54 53
    saved_env = env;
......
58 57
    if (unlikely(ret)) {
59 58
        if (retaddr) {
60 59
            /* now we have a real cpu fault */
61
            pc = (unsigned long)retaddr;
62
            tb = tb_find_pc(pc);
60
            tb = tb_find_pc(retaddr);
63 61
            if (tb) {
64 62
                /* the PC is inside the translated code. It means that we have
65 63
                   a virtual CPU fault */
66
                cpu_restore_state(tb, env, pc);
64
                cpu_restore_state(tb, env, retaddr);
67 65
            }
68 66
        }
69 67
        cpu_loop_exit(env);

Also available in: Unified diff