tcg: Add flags argument to bswap opcodes
commit587195bd5905deefe90242bbd210b9bba76ca093
authorRichard Henderson <richard.henderson@linaro.org>
Sun, 13 Jun 2021 04:32:27 +0000 (12 21:32 -0700)
committerRichard Henderson <richard.henderson@linaro.org>
Tue, 29 Jun 2021 17:04:57 +0000 (29 10:04 -0700)
treeca7d75039083a054dd3cb1ad99a61a96499131ff
parent4f862f79ca497f68d147520e847f86d69eec950b
tcg: Add flags argument to bswap opcodes

This will eventually simplify front-end usage, and will allow
backends to unset TCG_TARGET_HAS_MEMORY_BSWAP without loss of
optimization.

The argument is added during expansion, not currently exposed to the
front end translators.  The backends currently only support a flags
value of either TCG_BSWAP_IZ, or (TCG_BSWAP_IZ | TCG_BSWAP_OZ),
since they all require zero top bytes and leave them that way.
At the existing call sites we pass in (TCG_BSWAP_IZ | TCG_BSWAP_OZ),
except for the flags-ignored cases of a 32-bit swap of a 32-bit
value and or a 64-bit swap of a 64-bit value, where we pass 0.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
include/tcg/tcg-opc.h
include/tcg/tcg.h
tcg/README
tcg/tcg-op.c
tcg/tcg.c