On 17/2/25 00:10, Richard Henderson wrote:
Signed-off-by: Richard Henderson <[email protected]>
---
include/tcg/tcg-opc.h | 19 +++++-------
tcg/optimize.c | 27 ++++++++---------
tcg/tcg-op.c | 24 +++++++--------
tcg/tcg.c | 64 ++++++++++++++--------------------------
tcg/tci.c | 43 +++++++++++----------------
tcg/tci/tcg-target.c.inc | 28 +++++++-----------
6 files changed, 83 insertions(+), 122 deletions(-)
static void tcg_out_ld(TCGContext *s, TCGType type, TCGReg val, TCGReg base,
intptr_t offset)
{
- switch (type) {
- case TCG_TYPE_I32:
- tcg_out_ldst(s, INDEX_op_ld_i32, val, base, offset);
- break;
-#if TCG_TARGET_REG_BITS == 64
- case TCG_TYPE_I64:
- tcg_out_ldst(s, INDEX_op_ld_i64, val, base, offset);
- break;
-#endif
- default:
- g_assert_not_reached();
+ TCGOpcode op = INDEX_op_ld;
+
+ if (TCG_TARGET_REG_BITS == 64 && type == TCG_TYPE_I32) {
+ op = INDEX_op_ld32u;
}
+ tcg_out_ldst(s, op, val, base, offset);
}
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>