Am 05.08.2013 20:07, schrieb Richard Henderson: > Instead of using a branch-call-branch sequence, arrange for a > call-branch sequence, using the ARM's conditional call insn. > This reduces the size of the slow-path within the TB, and makes > the GETPC_EXT implementation identical for TCG and not-TCG. > > Signed-off-by: Richard Henderson <r...@twiddle.net> > --- > include/exec/exec-all.h | 23 +---- > tcg/arm/tcg-target.c | 269 > +++++++++++++++++++++++------------------------- > 2 files changed, 133 insertions(+), 159 deletions(-) > > diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h > index b70028a..b3402a1 100644 > --- a/include/exec/exec-all.h > +++ b/include/exec/exec-all.h [...] > @@ -1087,17 +1091,44 @@ static inline void tcg_out_goto_label(TCGContext *s, > int cond, int label_index) > > #include "exec/softmmu_defs.h" > > +static uint32_t arm_ldbu_mmu(CPUState *env, target_ulong addr, int idx) > +{ > + return (uint8_t)helper_ret_ldb_mmu(env, addr, idx, GETPC()); > +} > + > +static uint32_t arm_ldbs_mmu(CPUState *env, target_ulong addr, int idx) > +{ > + return (int8_t)helper_ret_ldb_mmu(env, addr, idx, GETPC()); > +} > + > +static uint32_t arm_ldwu_mmu(CPUState *env, target_ulong addr, int idx) > +{ > + return (uint16_t)helper_ret_ldw_mmu(env, addr, idx, GETPC()); > +} > + > +static uint32_t arm_ldws_mmu(CPUState *env, target_ulong addr, int idx) > +{ > + return (int16_t)helper_ret_ldw_mmu(env, addr, idx, GETPC()); > +}
Either CPUState *cpu or CPUArchState *env. I assume you meant the latter when passing it to a helper? Andreas -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg