mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:17 +00:00
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>
71 lines
2.3 KiB
C++
71 lines
2.3 KiB
C++
/*
|
|
* Physical memory access endian templates
|
|
*
|
|
* Copyright (c) 2003 Fabrice Bellard
|
|
* Copyright (c) 2015 Linaro, Inc.
|
|
* Copyright (c) 2016 Red Hat, Inc.
|
|
* Copyright (c) 2025 Linaro Ltd.
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
|
*/
|
|
|
|
#define ADDRESS_SPACE_LD(size) \
|
|
glue(glue(address_space_ld, size), glue(ENDIANNESS, SUFFIX))
|
|
#define ADDRESS_SPACE_LD_INTERNAL(size) \
|
|
glue(glue(address_space_ld, size), glue(_internal, SUFFIX))
|
|
|
|
#define ADDRESS_SPACE_ST(size) \
|
|
glue(glue(address_space_st, size), glue(ENDIANNESS, SUFFIX))
|
|
#define ADDRESS_SPACE_ST_INTERNAL(size) \
|
|
glue(glue(address_space_st, size), glue(_internal, SUFFIX))
|
|
|
|
uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr,
|
|
MemTxAttrs attrs, MemTxResult *result)
|
|
{
|
|
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(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(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(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(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(m)(ARG1, MO_ENDIAN | MO_64,
|
|
addr, val, attrs, result);
|
|
}
|
|
|
|
#undef ADDRESS_SPACE_LD
|
|
#undef ADDRESS_SPACE_LD_INTERNAL
|
|
#undef ADDRESS_SPACE_ST
|
|
#undef ADDRESS_SPACE_ST_INTERNAL
|
|
|
|
#undef ENDIANNESS
|
|
#undef MO_ENDIAN
|