All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Alex Bennée" <alex.bennee@linaro.org>
Subject: [PATCH v3 11/29] translator: Use cpu_ld*_code instead of open-coding
Date: Sun, 29 Dec 2019 10:11:06 +1100	[thread overview]
Message-ID: <20191228231124.18307-12-richard.henderson@linaro.org> (raw)
In-Reply-To: <20191228231124.18307-1-richard.henderson@linaro.org>

The DO_LOAD macros replicate the distinction already performed
by the cpu_ldst.h functions.  Use them.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 include/exec/cpu_ldst.h   | 11 ---------
 include/exec/translator.h | 48 +++++++++++----------------------------
 2 files changed, 13 insertions(+), 46 deletions(-)

diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h
index cf8af36dbc..399ff6c3da 100644
--- a/include/exec/cpu_ldst.h
+++ b/include/exec/cpu_ldst.h
@@ -129,11 +129,6 @@ static inline void clear_helper_retaddr(void)
 #include "exec/cpu_ldst_useronly_template.h"
 #undef MEMSUFFIX
 
-/*
- * Code access is deprecated in favour of translator_ld* functions
- * (see translator.h). However there are still users that need to
- * converted so for now these stay.
- */
 #define MEMSUFFIX _code
 #define CODE_ACCESS
 #define DATA_SIZE 1
@@ -455,12 +450,6 @@ void cpu_stq_mmuidx_ra(CPUArchState *env, abi_ptr addr, uint64_t val,
 #undef CPU_MMU_INDEX
 #undef MEMSUFFIX
 
-/*
- * Code access is deprecated in favour of translator_ld* functions
- * (see translator.h). However there are still users that need to
- * converted so for now these stay.
- */
-
 #define CPU_MMU_INDEX (cpu_mmu_index(env, true))
 #define MEMSUFFIX _code
 #define SOFTMMU_CODE_ACCESS
diff --git a/include/exec/translator.h b/include/exec/translator.h
index 459dd72aab..638e1529c5 100644
--- a/include/exec/translator.h
+++ b/include/exec/translator.h
@@ -148,41 +148,19 @@ void translator_loop_temp_check(DisasContextBase *db);
 /*
  * Translator Load Functions
  *
- * These are intended to replace the old cpu_ld*_code functions and
- * are mandatory for front-ends that have been migrated to the common
- * translator_loop. These functions are only intended to be called
- * from the translation stage and should not be called from helper
- * functions. Those functions should be converted to encode the
- * relevant information at translation time.
+ * These are intended to replace the direct usage of the cpu_ld*_code
+ * functions and are mandatory for front-ends that have been migrated
+ * to the common translator_loop. These functions are only intended
+ * to be called from the translation stage and should not be called
+ * from helper functions. Those functions should be converted to encode
+ * the relevant information at translation time.
  */
 
-#ifdef CONFIG_USER_ONLY
-
-#define DO_LOAD(type, name, shift)               \
-    do {                                         \
-        set_helper_retaddr(1);                   \
-        ret = name ## _p(g2h(pc));               \
-        clear_helper_retaddr();                  \
-    } while (0)
-
-#else
-
-#define DO_LOAD(type, name, shift)                          \
-    do {                                                    \
-        int mmu_idx = cpu_mmu_index(env, true);             \
-        TCGMemOpIdx oi = make_memop_idx(shift, mmu_idx);    \
-        ret = helper_ret_ ## name ## _cmmu(env, pc, oi, 0); \
-    } while (0)
-
-#endif
-
-#define GEN_TRANSLATOR_LD(fullname, name, type, shift, swap_fn)         \
+#define GEN_TRANSLATOR_LD(fullname, type, load_fn, swap_fn)             \
     static inline type                                                  \
     fullname ## _swap(CPUArchState *env, abi_ptr pc, bool do_swap)      \
     {                                                                   \
-        type ret;                                                       \
-        DO_LOAD(type, name, shift);                                     \
-                                                                        \
+        type ret = load_fn(env, pc);                                    \
         if (do_swap) {                                                  \
             ret = swap_fn(ret);                                         \
         }                                                               \
@@ -195,11 +173,11 @@ void translator_loop_temp_check(DisasContextBase *db);
         return fullname ## _swap(env, pc, false);                       \
     }
 
-GEN_TRANSLATOR_LD(translator_ldub, ldub, uint8_t, 0, /* no swap */ )
-GEN_TRANSLATOR_LD(translator_ldsw, ldsw, int16_t, 1, bswap16)
-GEN_TRANSLATOR_LD(translator_lduw, lduw, uint16_t, 1, bswap16)
-GEN_TRANSLATOR_LD(translator_ldl, ldl, uint32_t, 2, bswap32)
-GEN_TRANSLATOR_LD(translator_ldq, ldq, uint64_t, 3, bswap64)
+GEN_TRANSLATOR_LD(translator_ldub, uint8_t, cpu_ldub_code, /* no swap */)
+GEN_TRANSLATOR_LD(translator_ldsw, int16_t, cpu_ldsw_code, bswap16)
+GEN_TRANSLATOR_LD(translator_lduw, uint16_t, cpu_lduw_code, bswap16)
+GEN_TRANSLATOR_LD(translator_ldl, uint32_t, cpu_ldl_code, bswap32)
+GEN_TRANSLATOR_LD(translator_ldq, uint64_t, cpu_ldq_code, bswap64)
 #undef GEN_TRANSLATOR_LD
 
 #endif  /* EXEC__TRANSLATOR_H */
-- 
2.20.1



  parent reply	other threads:[~2019-12-28 23:22 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-28 23:10 [PATCH v3 00/29] cputlb: Remove support for MMU_MODE*_SUFFIX Richard Henderson
2019-12-28 23:10 ` [PATCH v3 01/29] target/xtensa: Use probe_access for itlb_hit_test Richard Henderson
2019-12-28 23:10 ` [PATCH v3 02/29] cputlb: Use trace_mem_get_info instead of trace_mem_build_info Richard Henderson
2019-12-28 23:10 ` [PATCH v3 03/29] trace: Remove trace_mem_build_info_no_se_[bl]e Richard Henderson
2019-12-28 23:10 ` [PATCH v3 04/29] target/s390x: Include tcg.h in mem_helper.c Richard Henderson
2019-12-28 23:11 ` [PATCH v3 05/29] target/arm: Include tcg.h in sve_helper.c Richard Henderson
2019-12-28 23:11 ` [PATCH v3 06/29] accel/tcg: Include tcg.h in tcg-runtime.c Richard Henderson
2019-12-28 23:11 ` [PATCH v3 07/29] linux-user: Include tcg.h in syscall.c Richard Henderson
2019-12-29 23:31   ` Philippe Mathieu-Daudé
2019-12-28 23:11 ` [PATCH v3 08/29] linux-user: Include trace-root.h in syscall-trace.h Richard Henderson
2019-12-29 23:52   ` Philippe Mathieu-Daudé
2019-12-28 23:11 ` [PATCH v3 09/29] plugins: Include trace/mem.h in api.c Richard Henderson
2020-01-03  6:22   ` Philippe Mathieu-Daudé
2020-01-03 21:59     ` Richard Henderson
2020-01-04 11:52       ` Philippe Mathieu-Daudé
2019-12-28 23:11 ` [PATCH v3 10/29] cputlb: Move body of cpu_ldst_template.h out of line Richard Henderson
2019-12-28 23:11 ` Richard Henderson [this message]
2019-12-28 23:11 ` [PATCH v3 12/29] cputlb: Rename helper_ret_ld*_cmmu to cpu_ld*_code Richard Henderson
2019-12-28 23:11 ` [PATCH v3 13/29] cputlb: Provide cpu_(ld, st}*_mmuidx_ra for user-only Richard Henderson
2019-12-29 15:20   ` Aleksandar Markovic
2019-12-28 23:11 ` [PATCH v3 14/29] target/i386: Use cpu_*_mmuidx_ra instead of templates Richard Henderson
2019-12-28 23:11 ` [PATCH v3 15/29] cputlb: Expand cpu_ldst_useronly_template.h in user-exec.c Richard Henderson
2019-12-28 23:11 ` [PATCH v3 16/29] target/nios2: Remove MMU_MODE{0,1}_SUFFIX Richard Henderson
2019-12-28 23:11 ` [PATCH v3 17/29] target/alpha: " Richard Henderson
2019-12-28 23:11 ` [PATCH v3 18/29] target/cris: " Richard Henderson
2019-12-28 23:11 ` [PATCH v3 19/29] target/i386: Remove MMU_MODE{0,1,2}_SUFFIX Richard Henderson
2019-12-28 23:11 ` [PATCH v3 20/29] target/microblaze: " Richard Henderson
2019-12-28 23:11 ` [PATCH v3 21/29] target/sh4: Remove MMU_MODE{0,1}_SUFFIX Richard Henderson
2019-12-28 23:11 ` [PATCH v3 22/29] target/unicore32: " Richard Henderson
2019-12-28 23:11 ` [PATCH v3 23/29] target/xtensa: Remove MMU_MODE{0,1,2,3}_SUFFIX Richard Henderson
2019-12-28 23:11 ` [PATCH v3 24/29] target/m68k: Use cpu_*_mmuidx_ra instead of MMU_MODE{0, 1}_SUFFIX Richard Henderson
2019-12-28 23:11 ` [PATCH v3 25/29] target/mips: Use cpu_*_mmuidx_ra instead of MMU_MODE*_SUFFIX Richard Henderson
2019-12-28 23:11 ` [PATCH v3 26/29] target/s390x: " Richard Henderson
2019-12-28 23:11 ` [PATCH v3 27/29] target/ppc: " Richard Henderson
2019-12-28 23:11 ` [PATCH v3 28/29] cputlb: Remove support for MMU_MODE*_SUFFIX Richard Henderson
2019-12-28 23:11 ` [PATCH v3 29/29] cputlb: Expand cpu_ldst_template.h in cputlb.c Richard Henderson
2020-01-04 14:40 ` [PATCH v3 00/29] cputlb: Remove support for MMU_MODE*_SUFFIX Philippe Mathieu-Daudé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191228231124.18307-12-richard.henderson@linaro.org \
    --to=richard.henderson@linaro.org \
    --cc=alex.bennee@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.