qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/3] tcg: Push merged memop+mmu_idx parameter to


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH 2/3] tcg: Push merged memop+mmu_idx parameter to softmmu routines
Date: Wed, 13 May 2015 21:54:35 +0100

On 13 May 2015 at 20:09, Richard Henderson <address@hidden> wrote:
> The extra information is not yet used but it is now available.
> This requires minor changes through all of the tcg backends.
>
> Signed-off-by: Richard Henderson <address@hidden>
> ---
>  softmmu_template.h       | 50 
> +++++++++++++++++++++++++++---------------------
>  tcg/aarch64/tcg-target.c | 35 +++++++++++++++++----------------
>  tcg/arm/tcg-target.c     | 27 +++++++++++++-------------
>  tcg/i386/tcg-target.c    | 37 +++++++++++++++++------------------
>  tcg/ia64/tcg-target.c    |  4 ++--
>  tcg/mips/tcg-target.c    | 26 ++++++++++++-------------
>  tcg/ppc/tcg-target.c     | 26 ++++++++++++-------------
>  tcg/s390/tcg-target.c    | 23 +++++++++++-----------
>  tcg/sparc/tcg-target.c   |  6 +++---
>  tcg/tcg-be-ldst.h        |  3 +--
>  tcg/tcg.h                | 38 ++++++++++++++++++------------------
>  tci.c                    | 47 ++++++++++++++++++++++-----------------------
>  12 files changed, 163 insertions(+), 159 deletions(-)
>
> diff --git a/softmmu_template.h b/softmmu_template.h
> index 16b0852..2935657 100644
> --- a/softmmu_template.h
> +++ b/softmmu_template.h
> @@ -168,10 +168,11 @@ static inline DATA_TYPE glue(io_read, 
> SUFFIX)(CPUArchState *env,
>  #ifdef SOFTMMU_CODE_ACCESS
>  static __attribute__((unused))
>  #endif
> -WORD_TYPE helper_le_ld_name(CPUArchState *env, target_ulong addr, int 
> mmu_idx,
> -                            uintptr_t retaddr)
> +WORD_TYPE helper_le_ld_name(CPUArchState *env, target_ulong addr,
> +                            TCGMemOpIdx oi, uintptr_t retaddr)
>  {
> -    int index = (addr >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1);
> +    size_t mmu_idx = get_mmuidx(oi);

We don't seem to be very consistent about what type we're using for
mmu_idx. In the TCG backends changed in patch 1 (and in the
prototype of this helper which we've just removed) we used 'int';
in the return type of get_mmuidx() we use 'unsigned'; and here we're
using size_t...

> diff --git a/tci.c b/tci.c
> index 28292b3..a14717d 100644
> --- a/tci.c
> +++ b/tci.c
> @@ -420,35 +420,34 @@ static bool tci_compare64(uint64_t u0, uint64_t u1, 
> TCGCond condition)
>  }
>
>  #ifdef CONFIG_SOFTMMU
> -# define mmuidx          tci_read_i(&tb_ptr)
>  # define qemu_ld_ub \
> -    helper_ret_ldub_mmu(env, taddr, mmuidx, (uintptr_t)tb_ptr)
> +    helper_ret_ldub_mmu(env, taddr, oi, (uintptr_t)tb_ptr)

Ah, this unbreaks the tci interpreter that patch 1 broke :-)

-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]