On 17/2/25 00:10, Richard Henderson wrote:
Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
  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é <phi...@linaro.org>


Reply via email to