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
>
>

Reply via email to