Richard Henderson <richard.hender...@linaro.org> writes: > These expand inline to the *_mmuidx_ra api with > a lookup of the target's cpu_mmu_index(). > > Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
This is where my re-based bisect broke. Fixed by moving cpu.h modified target/ppc/tcg-excp_helper.c @@ -19,6 +19,7 @@ #include "qemu/osdep.h" #include "qemu/main-loop.h" #include "qemu/log.h" +#include "cpu.h" #include "exec/cpu_ldst.h" #include "exec/exec-all.h" #include "exec/helper-proto.h" @@ -27,7 +28,6 @@ #include "helper_regs.h" #include "hw/ppc/ppc.h" #include "internal.h" -#include "cpu.h" #include "trace.h" > --- > include/exec/cpu_ldst.h | 144 +++++++++++++++++++++++++++++------- > accel/tcg/ldst_common.c.inc | 108 --------------------------- > 2 files changed, 118 insertions(+), 134 deletions(-) > > diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h > index b33755169e..963c538176 100644 > --- a/include/exec/cpu_ldst.h > +++ b/include/exec/cpu_ldst.h > @@ -84,17 +84,6 @@ int cpu_ldsw_le_data(CPUArchState *env, abi_ptr ptr); > uint32_t cpu_ldl_le_data(CPUArchState *env, abi_ptr ptr); > uint64_t cpu_ldq_le_data(CPUArchState *env, abi_ptr ptr); > > -uint32_t cpu_ldub_data_ra(CPUArchState *env, abi_ptr ptr, uintptr_t ra); > -int cpu_ldsb_data_ra(CPUArchState *env, abi_ptr ptr, uintptr_t ra); > -uint32_t cpu_lduw_be_data_ra(CPUArchState *env, abi_ptr ptr, uintptr_t ra); > -int cpu_ldsw_be_data_ra(CPUArchState *env, abi_ptr ptr, uintptr_t ra); > -uint32_t cpu_ldl_be_data_ra(CPUArchState *env, abi_ptr ptr, uintptr_t ra); > -uint64_t cpu_ldq_be_data_ra(CPUArchState *env, abi_ptr ptr, uintptr_t ra); > -uint32_t cpu_lduw_le_data_ra(CPUArchState *env, abi_ptr ptr, uintptr_t ra); > -int cpu_ldsw_le_data_ra(CPUArchState *env, abi_ptr ptr, uintptr_t ra); > -uint32_t cpu_ldl_le_data_ra(CPUArchState *env, abi_ptr ptr, uintptr_t ra); > -uint64_t cpu_ldq_le_data_ra(CPUArchState *env, abi_ptr ptr, uintptr_t ra); > - > void cpu_stb_data(CPUArchState *env, abi_ptr ptr, uint32_t val); > void cpu_stw_be_data(CPUArchState *env, abi_ptr ptr, uint32_t val); > void cpu_stl_be_data(CPUArchState *env, abi_ptr ptr, uint32_t val); > @@ -103,21 +92,6 @@ void cpu_stw_le_data(CPUArchState *env, abi_ptr ptr, > uint32_t val); > void cpu_stl_le_data(CPUArchState *env, abi_ptr ptr, uint32_t val); > void cpu_stq_le_data(CPUArchState *env, abi_ptr ptr, uint64_t val); > > -void cpu_stb_data_ra(CPUArchState *env, abi_ptr ptr, > - uint32_t val, uintptr_t ra); > -void cpu_stw_be_data_ra(CPUArchState *env, abi_ptr ptr, > - uint32_t val, uintptr_t ra); > -void cpu_stl_be_data_ra(CPUArchState *env, abi_ptr ptr, > - uint32_t val, uintptr_t ra); > -void cpu_stq_be_data_ra(CPUArchState *env, abi_ptr ptr, > - uint64_t val, uintptr_t ra); > -void cpu_stw_le_data_ra(CPUArchState *env, abi_ptr ptr, > - uint32_t val, uintptr_t ra); > -void cpu_stl_le_data_ra(CPUArchState *env, abi_ptr ptr, > - uint32_t val, uintptr_t ra); > -void cpu_stq_le_data_ra(CPUArchState *env, abi_ptr ptr, > - uint64_t val, uintptr_t ra); > - > static inline uint32_t > cpu_ldub_mmuidx_ra(CPUArchState *env, abi_ptr addr, int mmu_idx, uintptr_t > ra) > { > @@ -249,6 +223,124 @@ cpu_stq_le_mmuidx_ra(CPUArchState *env, abi_ptr addr, > uint64_t val, > cpu_stq_mmu(env, addr, val, oi, ra); > } > > +/*--------------------------*/ > + > +static inline uint32_t > +cpu_ldub_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > +{ > + int mmu_index = cpu_mmu_index(env_cpu(env), false); > + return cpu_ldub_mmuidx_ra(env, addr, mmu_index, ra); > +} > + > +static inline int > +cpu_ldsb_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > +{ > + return (int8_t)cpu_ldub_data_ra(env, addr, ra); > +} > + > +static inline uint32_t > +cpu_lduw_be_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > +{ > + int mmu_index = cpu_mmu_index(env_cpu(env), false); > + return cpu_lduw_be_mmuidx_ra(env, addr, mmu_index, ra); > +} > + > +static inline int > +cpu_ldsw_be_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > +{ > + return (int16_t)cpu_lduw_be_data_ra(env, addr, ra); > +} > + > +static inline uint32_t > +cpu_ldl_be_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > +{ > + int mmu_index = cpu_mmu_index(env_cpu(env), false); > + return cpu_ldl_be_mmuidx_ra(env, addr, mmu_index, ra); > +} > + > +static inline uint64_t > +cpu_ldq_be_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > +{ > + int mmu_index = cpu_mmu_index(env_cpu(env), false); > + return cpu_ldq_be_mmuidx_ra(env, addr, mmu_index, ra); > +} > + > +static inline uint32_t > +cpu_lduw_le_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > +{ > + int mmu_index = cpu_mmu_index(env_cpu(env), false); > + return cpu_lduw_le_mmuidx_ra(env, addr, mmu_index, ra); > +} > + > +static inline int > +cpu_ldsw_le_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > +{ > + return (int16_t)cpu_lduw_le_data_ra(env, addr, ra); > +} > + > +static inline uint32_t > +cpu_ldl_le_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > +{ > + int mmu_index = cpu_mmu_index(env_cpu(env), false); > + return cpu_ldl_le_mmuidx_ra(env, addr, mmu_index, ra); > +} > + > +static inline uint64_t > +cpu_ldq_le_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > +{ > + int mmu_index = cpu_mmu_index(env_cpu(env), false); > + return cpu_ldq_le_mmuidx_ra(env, addr, mmu_index, ra); > +} > + > +static inline void > +cpu_stb_data_ra(CPUArchState *env, abi_ptr addr, uint32_t val, uintptr_t ra) > +{ > + int mmu_index = cpu_mmu_index(env_cpu(env), false); > + cpu_stb_mmuidx_ra(env, addr, val, mmu_index, ra); > +} > + > +static inline void > +cpu_stw_be_data_ra(CPUArchState *env, abi_ptr addr, uint32_t val, uintptr_t > ra) > +{ > + int mmu_index = cpu_mmu_index(env_cpu(env), false); > + cpu_stw_be_mmuidx_ra(env, addr, val, mmu_index, ra); > +} > + > +static inline void > +cpu_stl_be_data_ra(CPUArchState *env, abi_ptr addr, uint32_t val, uintptr_t > ra) > +{ > + int mmu_index = cpu_mmu_index(env_cpu(env), false); > + cpu_stl_be_mmuidx_ra(env, addr, val, mmu_index, ra); > +} > + > +static inline void > +cpu_stq_be_data_ra(CPUArchState *env, abi_ptr addr, uint64_t val, uintptr_t > ra) > +{ > + int mmu_index = cpu_mmu_index(env_cpu(env), false); > + cpu_stq_be_mmuidx_ra(env, addr, val, mmu_index, ra); > +} > + > +static inline void > +cpu_stw_le_data_ra(CPUArchState *env, abi_ptr addr, uint32_t val, uintptr_t > ra) > +{ > + int mmu_index = cpu_mmu_index(env_cpu(env), false); > + cpu_stw_le_mmuidx_ra(env, addr, val, mmu_index, ra); > +} > + > +static inline void > +cpu_stl_le_data_ra(CPUArchState *env, abi_ptr addr, uint32_t val, uintptr_t > ra) > +{ > + int mmu_index = cpu_mmu_index(env_cpu(env), false); > + cpu_stl_le_mmuidx_ra(env, addr, val, mmu_index, ra); > +} > + > +static inline void > +cpu_stq_le_data_ra(CPUArchState *env, abi_ptr addr, uint64_t val, uintptr_t > ra) > +{ > + int mmu_index = cpu_mmu_index(env_cpu(env), false); > + cpu_stq_le_mmuidx_ra(env, addr, val, mmu_index, ra); > +} > + > #if TARGET_BIG_ENDIAN > # define cpu_lduw_data cpu_lduw_be_data > # define cpu_ldsw_data cpu_ldsw_be_data > diff --git a/accel/tcg/ldst_common.c.inc b/accel/tcg/ldst_common.c.inc > index 99a56df3fb..2f203290db 100644 > --- a/accel/tcg/ldst_common.c.inc > +++ b/accel/tcg/ldst_common.c.inc > @@ -248,114 +248,6 @@ void cpu_st16_mmu(CPUArchState *env, vaddr addr, Int128 > val, > * Wrappers of the above > */ > > -uint32_t cpu_ldub_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > -{ > - int mmu_index = cpu_mmu_index(env_cpu(env), false); > - return cpu_ldub_mmuidx_ra(env, addr, mmu_index, ra); > -} > - > -int cpu_ldsb_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > -{ > - return (int8_t)cpu_ldub_data_ra(env, addr, ra); > -} > - > -uint32_t cpu_lduw_be_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > -{ > - int mmu_index = cpu_mmu_index(env_cpu(env), false); > - return cpu_lduw_be_mmuidx_ra(env, addr, mmu_index, ra); > -} > - > -int cpu_ldsw_be_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > -{ > - return (int16_t)cpu_lduw_be_data_ra(env, addr, ra); > -} > - > -uint32_t cpu_ldl_be_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > -{ > - int mmu_index = cpu_mmu_index(env_cpu(env), false); > - return cpu_ldl_be_mmuidx_ra(env, addr, mmu_index, ra); > -} > - > -uint64_t cpu_ldq_be_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > -{ > - int mmu_index = cpu_mmu_index(env_cpu(env), false); > - return cpu_ldq_be_mmuidx_ra(env, addr, mmu_index, ra); > -} > - > -uint32_t cpu_lduw_le_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > -{ > - int mmu_index = cpu_mmu_index(env_cpu(env), false); > - return cpu_lduw_le_mmuidx_ra(env, addr, mmu_index, ra); > -} > - > -int cpu_ldsw_le_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > -{ > - return (int16_t)cpu_lduw_le_data_ra(env, addr, ra); > -} > - > -uint32_t cpu_ldl_le_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > -{ > - int mmu_index = cpu_mmu_index(env_cpu(env), false); > - return cpu_ldl_le_mmuidx_ra(env, addr, mmu_index, ra); > -} > - > -uint64_t cpu_ldq_le_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra) > -{ > - int mmu_index = cpu_mmu_index(env_cpu(env), false); > - return cpu_ldq_le_mmuidx_ra(env, addr, mmu_index, ra); > -} > - > -void cpu_stb_data_ra(CPUArchState *env, abi_ptr addr, > - uint32_t val, uintptr_t ra) > -{ > - int mmu_index = cpu_mmu_index(env_cpu(env), false); > - cpu_stb_mmuidx_ra(env, addr, val, mmu_index, ra); > -} > - > -void cpu_stw_be_data_ra(CPUArchState *env, abi_ptr addr, > - uint32_t val, uintptr_t ra) > -{ > - int mmu_index = cpu_mmu_index(env_cpu(env), false); > - cpu_stw_be_mmuidx_ra(env, addr, val, mmu_index, ra); > -} > - > -void cpu_stl_be_data_ra(CPUArchState *env, abi_ptr addr, > - uint32_t val, uintptr_t ra) > -{ > - int mmu_index = cpu_mmu_index(env_cpu(env), false); > - cpu_stl_be_mmuidx_ra(env, addr, val, mmu_index, ra); > -} > - > -void cpu_stq_be_data_ra(CPUArchState *env, abi_ptr addr, > - uint64_t val, uintptr_t ra) > -{ > - int mmu_index = cpu_mmu_index(env_cpu(env), false); > - cpu_stq_be_mmuidx_ra(env, addr, val, mmu_index, ra); > -} > - > -void cpu_stw_le_data_ra(CPUArchState *env, abi_ptr addr, > - uint32_t val, uintptr_t ra) > -{ > - int mmu_index = cpu_mmu_index(env_cpu(env), false); > - cpu_stw_le_mmuidx_ra(env, addr, val, mmu_index, ra); > -} > - > -void cpu_stl_le_data_ra(CPUArchState *env, abi_ptr addr, > - uint32_t val, uintptr_t ra) > -{ > - int mmu_index = cpu_mmu_index(env_cpu(env), false); > - cpu_stl_le_mmuidx_ra(env, addr, val, mmu_index, ra); > -} > - > -void cpu_stq_le_data_ra(CPUArchState *env, abi_ptr addr, > - uint64_t val, uintptr_t ra) > -{ > - int mmu_index = cpu_mmu_index(env_cpu(env), false); > - cpu_stq_le_mmuidx_ra(env, addr, val, mmu_index, ra); > -} > - > -/*--------------------------*/ > - > uint32_t cpu_ldub_data(CPUArchState *env, abi_ptr addr) > { > return cpu_ldub_data_ra(env, addr, 0); -- Alex Bennée Virtualisation Tech Lead @ Linaro