Revision e87b7cb0

b/exec-all.h
77 77

  
78 78
void gen_intermediate_code(CPUState *env, struct TranslationBlock *tb);
79 79
void gen_intermediate_code_pc(CPUState *env, struct TranslationBlock *tb);
80
void gen_pc_load(CPUState *env, struct TranslationBlock *tb,
81
                 unsigned long searched_pc, int pc_pos, void *puc);
80
void restore_state_to_opc(CPUState *env, struct TranslationBlock *tb,
81
                          int pc_pos);
82 82

  
83 83
void cpu_gen_init(void);
84 84
int cpu_gen_code(CPUState *env, struct TranslationBlock *tb,
b/target-alpha/translate.c
3367 3367
    return env;
3368 3368
}
3369 3369

  
3370
void gen_pc_load(CPUState *env, TranslationBlock *tb,
3371
                unsigned long searched_pc, int pc_pos, void *puc)
3370
void restore_state_to_opc(CPUState *env, TranslationBlock *tb, int pc_pos)
3372 3371
{
3373 3372
    env->pc = gen_opc_pc[pc_pos];
3374 3373
}
b/target-arm/translate.c
9551 9551
     * This is handled in the same way as restoration of the
9552 9552
     * PC in these situations: we will be called again with search_pc=1
9553 9553
     * and generate a mapping of the condexec bits for each PC in
9554
     * gen_opc_condexec_bits[]. gen_pc_load[] then uses this to restore
9555
     * the condexec bits.
9554
     * gen_opc_condexec_bits[]. restore_state_to_opc() then uses
9555
     * this to restore the condexec bits.
9556 9556
     *
9557 9557
     * Note that there are no instructions which can read the condexec
9558 9558
     * bits, and none which can write non-static values to them, so
......
9817 9817
#endif
9818 9818
}
9819 9819

  
9820
void gen_pc_load(CPUState *env, TranslationBlock *tb,
9821
                unsigned long searched_pc, int pc_pos, void *puc)
9820
void restore_state_to_opc(CPUState *env, TranslationBlock *tb, int pc_pos)
9822 9821
{
9823 9822
    env->regs[15] = gen_opc_pc[pc_pos];
9824 9823
    env->condexec_bits = gen_opc_condexec_bits[pc_pos];
b/target-cris/translate.c
3604 3604
#endif
3605 3605
}
3606 3606

  
3607
void gen_pc_load(CPUState *env, struct TranslationBlock *tb,
3608
                 unsigned long searched_pc, int pc_pos, void *puc)
3607
void restore_state_to_opc(CPUState *env, TranslationBlock *tb, int pc_pos)
3609 3608
{
3610 3609
	env->pc = gen_opc_pc[pc_pos];
3611 3610
}
b/target-i386/translate.c
7890 7890
    gen_intermediate_code_internal(env, tb, 1);
7891 7891
}
7892 7892

  
7893
void gen_pc_load(CPUState *env, TranslationBlock *tb,
7894
                unsigned long searched_pc, int pc_pos, void *puc)
7893
void restore_state_to_opc(CPUState *env, TranslationBlock *tb, int pc_pos)
7895 7894
{
7896 7895
    int cc_op;
7897 7896
#ifdef DEBUG_DISAS
......
7903 7902
                qemu_log("0x%04x: " TARGET_FMT_lx "\n", i, gen_opc_pc[i]);
7904 7903
            }
7905 7904
        }
7906
        qemu_log("spc=0x%08lx pc_pos=0x%x eip=" TARGET_FMT_lx " cs_base=%x\n",
7907
                searched_pc, pc_pos, gen_opc_pc[pc_pos] - tb->cs_base,
7905
        qemu_log("pc_pos=0x%x eip=" TARGET_FMT_lx " cs_base=%x\n",
7906
                pc_pos, gen_opc_pc[pc_pos] - tb->cs_base,
7908 7907
                (uint32_t)tb->cs_base);
7909 7908
    }
7910 7909
#endif
b/target-lm32/translate.c
1212 1212
    cpu_fprintf(f, "\n\n");
1213 1213
}
1214 1214

  
1215
void gen_pc_load(CPUState *env, struct TranslationBlock *tb,
1216
                 unsigned long searched_pc, int pc_pos, void *puc)
1215
void restore_state_to_opc(CPUState *env, TranslationBlock *tb, int pc_pos)
1217 1216
{
1218 1217
    env->pc = gen_opc_pc[pc_pos];
1219 1218
}
b/target-m68k/translate.c
3113 3113
    cpu_fprintf (f, "FPRESULT = %12g\n", *(double *)&env->fp_result);
3114 3114
}
3115 3115

  
3116
void gen_pc_load(CPUState *env, TranslationBlock *tb,
3117
                unsigned long searched_pc, int pc_pos, void *puc)
3116
void restore_state_to_opc(CPUState *env, TranslationBlock *tb, int pc_pos)
3118 3117
{
3119 3118
    env->pc = gen_opc_pc[pc_pos];
3120 3119
}
b/target-microblaze/translate.c
1940 1940
#endif
1941 1941
}
1942 1942

  
1943
void gen_pc_load(CPUState *env, struct TranslationBlock *tb,
1944
                 unsigned long searched_pc, int pc_pos, void *puc)
1943
void restore_state_to_opc(CPUState *env, TranslationBlock *tb, int pc_pos)
1945 1944
{
1946 1945
    env->sregs[SR_PC] = gen_opc_pc[pc_pos];
1947 1946
}
b/target-mips/translate.c
12737 12737
    env->exception_index = EXCP_NONE;
12738 12738
}
12739 12739

  
12740
void gen_pc_load(CPUState *env, TranslationBlock *tb,
12741
                unsigned long searched_pc, int pc_pos, void *puc)
12740
void restore_state_to_opc(CPUState *env, TranslationBlock *tb, int pc_pos)
12742 12741
{
12743 12742
    env->active_tc.PC = gen_opc_pc[pc_pos];
12744 12743
    env->hflags &= ~MIPS_HFLAG_BMASK;
b/target-ppc/translate.c
9367 9367
    gen_intermediate_code_internal(env, tb, 1);
9368 9368
}
9369 9369

  
9370
void gen_pc_load(CPUState *env, TranslationBlock *tb,
9371
                unsigned long searched_pc, int pc_pos, void *puc)
9370
void restore_state_to_opc(CPUState *env, TranslationBlock *tb, int pc_pos)
9372 9371
{
9373 9372
    env->nip = gen_opc_pc[pc_pos];
9374 9373
}
b/target-s390x/translate.c
54 54
{
55 55
}
56 56

  
57
void gen_pc_load(CPUState *env, TranslationBlock *tb,
58
                unsigned long searched_pc, int pc_pos, void *puc)
57
void restore_state_to_opc(CPUState *env, TranslationBlock *tb, int pc_pos)
59 58
{
60 59
    env->psw.addr = gen_opc_pc[pc_pos];
61 60
}
b/target-sh4/translate.c
2069 2069
    gen_intermediate_code_internal(env, tb, 1);
2070 2070
}
2071 2071

  
2072
void gen_pc_load(CPUState *env, TranslationBlock *tb,
2073
                unsigned long searched_pc, int pc_pos, void *puc)
2072
void restore_state_to_opc(CPUState *env, TranslationBlock *tb, int pc_pos)
2074 2073
{
2075 2074
    env->pc = gen_opc_pc[pc_pos];
2076 2075
    env->flags = gen_opc_hflags[pc_pos];
b/target-sparc/translate.c
5080 5080
    }
5081 5081
}
5082 5082

  
5083
void gen_pc_load(CPUState *env, TranslationBlock *tb,
5084
                unsigned long searched_pc, int pc_pos, void *puc)
5083
void restore_state_to_opc(CPUState *env, TranslationBlock *tb, int pc_pos)
5085 5084
{
5086 5085
    target_ulong npc;
5087 5086
    env->pc = gen_opc_pc[pc_pos];
b/target-unicore32/translate.c
2098 2098
#endif
2099 2099
}
2100 2100

  
2101
void gen_pc_load(CPUState *env, TranslationBlock *tb,
2102
        unsigned long searched_pc, int pc_pos, void *puc)
2101
void restore_state_to_opc(CPUState *env, TranslationBlock *tb, int pc_pos)
2103 2102
{
2104 2103
    env->regs[31] = gen_opc_pc[pc_pos];
2105 2104
}
b/translate-all.c
157 157
        j--;
158 158
    env->icount_decr.u16.low -= gen_opc_icount[j];
159 159

  
160
    gen_pc_load(env, tb, searched_pc, j, puc);
160
    restore_state_to_opc(env, tb, j);
161 161

  
162 162
#ifdef CONFIG_PROFILER
163 163
    s->restore_time += profile_getclock() - ti;

Also available in: Unified diff