qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 13/16] tcg: Export temp_idx


From: Richard Henderson
Subject: Re: [Qemu-devel] [PATCH 13/16] tcg: Export temp_idx
Date: Tue, 27 Jun 2017 09:43:35 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0

On 06/27/2017 02:46 AM, Alex Bennée wrote:

Richard Henderson <address@hidden> writes:

At the same time, drop the TCGContext argument and use tcg_ctx instead.

Signed-off-by: Richard Henderson <address@hidden>
---
  tcg/tcg.c | 15 ++++-----------
  tcg/tcg.h |  7 ++++++-
  2 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/tcg/tcg.c b/tcg/tcg.c
index f8d96fa..26931a7 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -473,13 +473,6 @@ void tcg_func_start(TCGContext *s)
      s->be = tcg_malloc(sizeof(TCGBackendData));
  }

-static inline int temp_idx(TCGContext *s, TCGTemp *ts)
-{
-    ptrdiff_t n = ts - s->temps;
-    tcg_debug_assert(n >= 0 && n < s->nb_temps);
-    return n;
-}
-
  static inline TCGTemp *tcg_temp_alloc(TCGContext *s)
  {
      int n = s->nb_temps++;
@@ -516,7 +509,7 @@ static int tcg_global_reg_new_internal(TCGContext *s, 
TCGType type,
      ts->name = name;
      tcg_regset_set_reg(s->reserved_regs, reg);

-    return temp_idx(s, ts);
+    return temp_idx(ts);
  }

  void tcg_set_frame(TCGContext *s, TCGReg reg, intptr_t start, intptr_t size)
@@ -605,7 +598,7 @@ int tcg_global_mem_new_internal(TCGType type, TCGv_ptr base,
          ts->mem_offset = offset;
          ts->name = name;
      }
-    return temp_idx(s, ts);
+    return temp_idx(ts);
  }

  static int tcg_temp_new_internal(TCGType type, int temp_local)
@@ -645,7 +638,7 @@ static int tcg_temp_new_internal(TCGType type, int 
temp_local)
              ts->temp_allocated = 1;
              ts->temp_local = temp_local;
          }
-        idx = temp_idx(s, ts);
+        idx = temp_idx(ts);
      }

  #if defined(CONFIG_DEBUG_TCG)
@@ -963,7 +956,7 @@ static void tcg_reg_alloc_start(TCGContext *s)
  static char *tcg_get_arg_str_ptr(TCGContext *s, char *buf, int buf_size,
                                   TCGTemp *ts)
  {
-    int idx = temp_idx(s, ts);
+    int idx = temp_idx(ts);

      if (ts->temp_global) {
          pstrcpy(buf, buf_size, ts->name);
diff --git a/tcg/tcg.h b/tcg/tcg.h
index 4f69d0c..b75a745 100644
--- a/tcg/tcg.h
+++ b/tcg/tcg.h
@@ -733,13 +733,18 @@ struct TCGContext {
  extern TCGContext tcg_ctx;
  extern bool parallel_cpus;

-static inline TCGArg temp_arg(TCGTemp *ts)
+static inline size_t temp_idx(TCGTemp *ts)
  {
      ptrdiff_t n = ts - tcg_ctx.temps;
      tcg_debug_assert(n >= 0 && n < tcg_ctx.nb_temps);
      return n;
  }

+static inline TCGArg temp_arg(TCGTemp *ts)
+{
+    return temp_idx(ts);
+}

I'm confused at the dropping of TCGArg in favour of size_t only for
temp_arg to implicitly cast it back. Was this meant to be part of
another patch?

It was meant to keep the types logical. When talking about an "arg" use TCGArg; when talking about an index (or idx) use size_t (or quite often int, where this hasn't been cleaned up).

You'll see from the last patch that temp_arg no longer calls temp_idx.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]