mirror of
https://github.com/qemu/qemu.git
synced 2026-02-04 05:35:39 +00:00
system/memory: Directly call address_space_ldst[M]_internal() helper
Inline internal address_space_ld/st[L,D,Q] helpers, directly calling address_space_ldst[M]_internal(). Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20260109165058.59144-14-philmd@linaro.org>
This commit is contained in:
@@ -57,22 +57,6 @@ uint64_t glue(address_space_ldm_internal, SUFFIX)(ARG1_DECL, MemOp mop,
|
||||
return val;
|
||||
}
|
||||
|
||||
/* warning: addr must be aligned */
|
||||
static inline uint32_t glue(address_space_ldl_internal, SUFFIX)(ARG1_DECL,
|
||||
MemOp mop, hwaddr addr, MemTxAttrs attrs, MemTxResult *result)
|
||||
{
|
||||
return glue(address_space_ldm_internal, SUFFIX)(ARG1, mop | MO_32, addr,
|
||||
attrs, result);
|
||||
}
|
||||
|
||||
/* warning: addr must be aligned */
|
||||
static inline uint64_t glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL,
|
||||
MemOp mop, hwaddr addr, MemTxAttrs attrs, MemTxResult *result)
|
||||
{
|
||||
return glue(address_space_ldm_internal, SUFFIX)(ARG1, mop | MO_64, addr,
|
||||
attrs, result);
|
||||
}
|
||||
|
||||
uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwaddr addr,
|
||||
MemTxAttrs attrs, MemTxResult *result)
|
||||
{
|
||||
@@ -80,14 +64,6 @@ uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwaddr addr,
|
||||
attrs, result);
|
||||
}
|
||||
|
||||
/* warning: addr must be aligned */
|
||||
static inline uint16_t glue(address_space_lduw_internal, SUFFIX)(ARG1_DECL,
|
||||
MemOp mop, hwaddr addr, MemTxAttrs attrs, MemTxResult *result)
|
||||
{
|
||||
return glue(address_space_ldm_internal, SUFFIX)(ARG1, mop | MO_16, addr,
|
||||
attrs, result);
|
||||
}
|
||||
|
||||
/* warning: addr must be aligned */
|
||||
static inline
|
||||
void glue(address_space_stm_internal, SUFFIX)(ARG1_DECL, MemOp mop,
|
||||
@@ -122,14 +98,6 @@ void glue(address_space_stm_internal, SUFFIX)(ARG1_DECL, MemOp mop,
|
||||
RCU_READ_UNLOCK();
|
||||
}
|
||||
|
||||
/* warning: addr must be aligned */
|
||||
static inline void glue(address_space_stl_internal, SUFFIX)(ARG1_DECL,
|
||||
MemOp mop, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result)
|
||||
{
|
||||
glue(address_space_stm_internal, SUFFIX)(ARG1, mop | MO_32, addr, val,
|
||||
attrs, result);
|
||||
}
|
||||
|
||||
void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val,
|
||||
MemTxAttrs attrs, MemTxResult *result)
|
||||
{
|
||||
@@ -137,21 +105,6 @@ void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val,
|
||||
attrs, result);
|
||||
}
|
||||
|
||||
/* warning: addr must be aligned */
|
||||
static inline void glue(address_space_stw_internal, SUFFIX)(ARG1_DECL,
|
||||
MemOp mop, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result)
|
||||
{
|
||||
glue(address_space_stm_internal, SUFFIX)(ARG1, mop | MO_16, addr, val,
|
||||
attrs, result);
|
||||
}
|
||||
|
||||
static inline void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL,
|
||||
MemOp mop, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result)
|
||||
{
|
||||
glue(address_space_stm_internal, SUFFIX)(ARG1, mop | MO_64, addr, val,
|
||||
attrs, result);
|
||||
}
|
||||
|
||||
#define ENDIANNESS
|
||||
#define MO_ENDIAN (target_big_endian() ? MO_BE : MO_LE)
|
||||
#include "memory_ldst_endian.c.inc"
|
||||
|
||||
@@ -22,42 +22,42 @@
|
||||
uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr,
|
||||
MemTxAttrs attrs, MemTxResult *result)
|
||||
{
|
||||
return ADDRESS_SPACE_LD_INTERNAL(uw)(ARG1, MO_ENDIAN,
|
||||
return ADDRESS_SPACE_LD_INTERNAL(m)(ARG1, MO_ENDIAN | MO_16,
|
||||
addr, attrs, result);
|
||||
}
|
||||
|
||||
uint32_t ADDRESS_SPACE_LD(l)(ARG1_DECL, hwaddr addr,
|
||||
MemTxAttrs attrs, MemTxResult *result)
|
||||
{
|
||||
return ADDRESS_SPACE_LD_INTERNAL(l)(ARG1, MO_ENDIAN,
|
||||
return ADDRESS_SPACE_LD_INTERNAL(m)(ARG1, MO_ENDIAN | MO_32,
|
||||
addr, attrs, result);
|
||||
}
|
||||
|
||||
uint64_t ADDRESS_SPACE_LD(q)(ARG1_DECL, hwaddr addr,
|
||||
MemTxAttrs attrs, MemTxResult *result)
|
||||
{
|
||||
return ADDRESS_SPACE_LD_INTERNAL(q)(ARG1, MO_ENDIAN,
|
||||
return ADDRESS_SPACE_LD_INTERNAL(m)(ARG1, MO_ENDIAN | MO_64,
|
||||
addr, attrs, result);
|
||||
}
|
||||
|
||||
void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val,
|
||||
MemTxAttrs attrs, MemTxResult *result)
|
||||
{
|
||||
ADDRESS_SPACE_ST_INTERNAL(w)(ARG1, MO_ENDIAN,
|
||||
ADDRESS_SPACE_ST_INTERNAL(m)(ARG1, MO_ENDIAN | MO_16,
|
||||
addr, val, attrs, result);
|
||||
}
|
||||
|
||||
void ADDRESS_SPACE_ST(l)(ARG1_DECL, hwaddr addr, uint32_t val,
|
||||
MemTxAttrs attrs, MemTxResult *result)
|
||||
{
|
||||
ADDRESS_SPACE_ST_INTERNAL(l)(ARG1, MO_ENDIAN,
|
||||
ADDRESS_SPACE_ST_INTERNAL(m)(ARG1, MO_ENDIAN | MO_32,
|
||||
addr, val, attrs, result);
|
||||
}
|
||||
|
||||
void ADDRESS_SPACE_ST(q)(ARG1_DECL, hwaddr addr, uint64_t val,
|
||||
MemTxAttrs attrs, MemTxResult *result)
|
||||
{
|
||||
ADDRESS_SPACE_ST_INTERNAL(q)(ARG1, MO_ENDIAN,
|
||||
ADDRESS_SPACE_ST_INTERNAL(m)(ARG1, MO_ENDIAN | MO_64,
|
||||
addr, val, attrs, result);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user