Message ID | 20250313034524.3069690-7-richard.henderson@linaro.org |
---|---|
State | New |
Headers | show |
Series | accel/tcg, codebase: Build once patches | expand |
Richard Henderson <richard.henderson@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.henderson@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);
On 3/12/25 20:44, Richard Henderson wrote: > These expand inline to the *_mmuidx_ra api with > a lookup of the target's cpu_mmu_index(). > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > 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); Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
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);
These expand inline to the *_mmuidx_ra api with a lookup of the target's cpu_mmu_index(). Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- include/exec/cpu_ldst.h | 144 +++++++++++++++++++++++++++++------- accel/tcg/ldst_common.c.inc | 108 --------------------------- 2 files changed, 118 insertions(+), 134 deletions(-)