Message ID | 20250311040838.3937136-4-pierrick.bouvier@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | make system memory API available for common code | expand |
On 3/10/25 21:08, Pierrick Bouvier wrote: > They are now accessible through exec/memory.h instead, and we make sure > all variants are available for common or target dependent code. > > Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> > --- > include/exec/cpu-all.h | 12 ------------ > include/exec/memory_ldst.h.inc | 4 ---- > 2 files changed, 16 deletions(-) > > diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h > index e56c064d46f..0e8205818a4 100644 > --- a/include/exec/cpu-all.h > +++ b/include/exec/cpu-all.h > @@ -44,18 +44,6 @@ > > #include "exec/hwaddr.h" > > -#define SUFFIX > -#define ARG1 as > -#define ARG1_DECL AddressSpace *as > -#define TARGET_ENDIANNESS > -#include "exec/memory_ldst.h.inc" > - > -#define SUFFIX _cached_slow > -#define ARG1 cache > -#define ARG1_DECL MemoryRegionCache *cache > -#define TARGET_ENDIANNESS > -#include "exec/memory_ldst.h.inc" > - > static inline void stl_phys_notdirty(AddressSpace *as, hwaddr addr, uint32_t val) > { > address_space_stl_notdirty(as, addr, val, > diff --git a/include/exec/memory_ldst.h.inc b/include/exec/memory_ldst.h.inc > index 92ad74e9560..7270235c600 100644 > --- a/include/exec/memory_ldst.h.inc > +++ b/include/exec/memory_ldst.h.inc > @@ -19,7 +19,6 @@ > * License along with this library; if not, see <http://www.gnu.org/licenses/>. > */ > > -#ifdef TARGET_ENDIANNESS > uint16_t glue(address_space_lduw, SUFFIX)(ARG1_DECL, > hwaddr addr, MemTxAttrs attrs, MemTxResult *result); > uint32_t glue(address_space_ldl, SUFFIX)(ARG1_DECL, > @@ -34,7 +33,6 @@ void glue(address_space_stl, SUFFIX)(ARG1_DECL, > hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result); > void glue(address_space_stq, SUFFIX)(ARG1_DECL, > hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); > -#else > uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, > hwaddr addr, MemTxAttrs attrs, MemTxResult *result); > uint16_t glue(address_space_lduw_le, SUFFIX)(ARG1_DECL, > @@ -63,9 +61,7 @@ void glue(address_space_stq_le, SUFFIX)(ARG1_DECL, > hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); > void glue(address_space_stq_be, SUFFIX)(ARG1_DECL, > hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); > -#endif > > #undef ARG1_DECL > #undef ARG1 > #undef SUFFIX > -#undef TARGET_ENDIANNESS Just to track last Richard answer, Posted on v1: On 3/10/25 17:04, Pierrick Bouvier wrote: > From what I understand, non endian versions are simply passing DEVICE_NATIVE_ENDIAN as a > parameter for address_space_ldl_internal, which will thus match the target endianness. > > So what is the risk for common code to call this? You're right. I failed to look at the current implementation to see that it would already work. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
On 3/10/25 21:08, Pierrick Bouvier wrote: > They are now accessible through exec/memory.h instead, and we make sure > all variants are available for common or target dependent code. > > Signed-off-by: Pierrick Bouvier<pierrick.bouvier@linaro.org> > --- > include/exec/cpu-all.h | 12 ------------ > include/exec/memory_ldst.h.inc | 4 ---- > 2 files changed, 16 deletions(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h index e56c064d46f..0e8205818a4 100644 --- a/include/exec/cpu-all.h +++ b/include/exec/cpu-all.h @@ -44,18 +44,6 @@ #include "exec/hwaddr.h" -#define SUFFIX -#define ARG1 as -#define ARG1_DECL AddressSpace *as -#define TARGET_ENDIANNESS -#include "exec/memory_ldst.h.inc" - -#define SUFFIX _cached_slow -#define ARG1 cache -#define ARG1_DECL MemoryRegionCache *cache -#define TARGET_ENDIANNESS -#include "exec/memory_ldst.h.inc" - static inline void stl_phys_notdirty(AddressSpace *as, hwaddr addr, uint32_t val) { address_space_stl_notdirty(as, addr, val, diff --git a/include/exec/memory_ldst.h.inc b/include/exec/memory_ldst.h.inc index 92ad74e9560..7270235c600 100644 --- a/include/exec/memory_ldst.h.inc +++ b/include/exec/memory_ldst.h.inc @@ -19,7 +19,6 @@ * License along with this library; if not, see <http://www.gnu.org/licenses/>. */ -#ifdef TARGET_ENDIANNESS uint16_t glue(address_space_lduw, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint32_t glue(address_space_ldl, SUFFIX)(ARG1_DECL, @@ -34,7 +33,6 @@ void glue(address_space_stl, SUFFIX)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stq, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); -#else uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint16_t glue(address_space_lduw_le, SUFFIX)(ARG1_DECL, @@ -63,9 +61,7 @@ void glue(address_space_stq_le, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stq_be, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); -#endif #undef ARG1_DECL #undef ARG1 #undef SUFFIX -#undef TARGET_ENDIANNESS
They are now accessible through exec/memory.h instead, and we make sure all variants are available for common or target dependent code. Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> --- include/exec/cpu-all.h | 12 ------------ include/exec/memory_ldst.h.inc | 4 ---- 2 files changed, 16 deletions(-)