mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-17 21:26:13 -07:00
bswap: Add new stn_*_p() and ldn_*_p() memory access functions
There's a common pattern in QEMU where a function needs to perform a data load or store of an N byte integer in a particular endianness. At the moment this is handled by doing a switch() on the size and calling the appropriate ld*_p or st*_p function for each size. Provide a new family of functions ldn_*_p() and stn_*_p() which take the size as an argument and do the switch() themselves. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20180611171007.4165-2-peter.maydell@linaro.org
This commit is contained in:
parent
2948f0cde3
commit
afa4f6653d
3 changed files with 71 additions and 0 deletions
|
|
@ -133,6 +133,8 @@ static inline void tswap64s(uint64_t *s)
|
|||
#define stq_p(p, v) stq_be_p(p, v)
|
||||
#define stfl_p(p, v) stfl_be_p(p, v)
|
||||
#define stfq_p(p, v) stfq_be_p(p, v)
|
||||
#define ldn_p(p, sz) ldn_be_p(p, sz)
|
||||
#define stn_p(p, sz, v) stn_be_p(p, sz, v)
|
||||
#else
|
||||
#define lduw_p(p) lduw_le_p(p)
|
||||
#define ldsw_p(p) ldsw_le_p(p)
|
||||
|
|
@ -145,6 +147,8 @@ static inline void tswap64s(uint64_t *s)
|
|||
#define stq_p(p, v) stq_le_p(p, v)
|
||||
#define stfl_p(p, v) stfl_le_p(p, v)
|
||||
#define stfq_p(p, v) stfq_le_p(p, v)
|
||||
#define ldn_p(p, sz) ldn_le_p(p, sz)
|
||||
#define stn_p(p, sz, v) stn_le_p(p, sz, v)
|
||||
#endif
|
||||
|
||||
/* MMU memory access macros */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue