On Tue, May 6, 2014 at 4:08 PM, Edgar E. Iglesias <edgar.igles...@gmail.com> wrote: > From: "Edgar E. Iglesias" <edgar.igles...@xilinx.com> > > Maps a given EL to the corresponding MMU index. > > Signed-off-by: Edgar E. Iglesias <edgar.igles...@xilinx.com> > --- > target-arm/cpu.h | 21 ++++++++++++++++++++- > target-arm/translate-a64.c | 8 ++------ > 2 files changed, 22 insertions(+), 7 deletions(-) > > diff --git a/target-arm/cpu.h b/target-arm/cpu.h > index ff86250..938f389 100644 > --- a/target-arm/cpu.h > +++ b/target-arm/cpu.h > @@ -1086,9 +1086,28 @@ static inline CPUARMState *cpu_init(const char > *cpu_model) > #define MMU_MODE0_SUFFIX _kernel > #define MMU_MODE1_SUFFIX _user > #define MMU_USER_IDX 1
Blank line here. Otherwise: Reviewed-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com> > +static inline int arm_el_to_mmu_idx(int current_el) > +{ > +#ifdef CONFIG_USER_ONLY > + return MMU_USER_IDX; > +#else > + switch (current_el) { > + case 0: > + return MMU_USER_IDX; > + case 1: > + return 0; > + default: > + /* Unsupported EL. */ > + assert(0); > + return 0; > + } > +#endif > +} > + > static inline int cpu_mmu_index (CPUARMState *env) > { > - return arm_current_pl(env) ? 0 : 1; > + int cur_el = arm_current_pl(env); > + return arm_el_to_mmu_idx(cur_el); > } > > #include "exec/cpu-all.h" > diff --git a/target-arm/translate-a64.c b/target-arm/translate-a64.c > index 4f8246f..8523e76 100644 > --- a/target-arm/translate-a64.c > +++ b/target-arm/translate-a64.c > @@ -164,13 +164,9 @@ void aarch64_cpu_dump_state(CPUState *cs, FILE *f, > } > } > > -static int get_mem_index(DisasContext *s) > +static inline int get_mem_index(DisasContext *s) > { > -#ifdef CONFIG_USER_ONLY > - return 1; > -#else > - return s->user; > -#endif > + return arm_el_to_mmu_idx(s->current_pl); > } > > void gen_a64_set_pc_im(uint64_t val) > -- > 1.8.3.2 > >