From: "Alex Bennée" <alex.bennee@linaro.org>
To: qemu-devel@nongnu.org
Subject: Re: [PATCH v2 03/28] trace: Remove trace_mem_build_info_no_se_[bl]e
Date: Fri, 20 Dec 2019 16:38:02 +0000 [thread overview]
Message-ID: <8736dfdkb9.fsf@linaro.org> (raw)
In-Reply-To: <20191216221158.29572-4-richard.henderson@linaro.org>
Richard Henderson <richard.henderson@linaro.org> writes:
> It is easy for the atomic helpers to use trace_mem_build_info
> directly, without resorting to symbol pasting. For this usage,
> we cannot use trace_mem_get_info, because the MemOp does not
> support 16-byte accesses.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
> accel/tcg/atomic_template.h | 67 +++++++++++++------------------------
> trace/mem-internal.h | 17 ----------
> 2 files changed, 24 insertions(+), 60 deletions(-)
>
> diff --git a/accel/tcg/atomic_template.h b/accel/tcg/atomic_template.h
> index 837676231f..26969487d6 100644
> --- a/accel/tcg/atomic_template.h
> +++ b/accel/tcg/atomic_template.h
> @@ -64,13 +64,10 @@
> the ATOMIC_NAME macro, and redefined below. */
> #if DATA_SIZE == 1
> # define END
> -# define MEND _be /* either le or be would be fine */
> #elif defined(HOST_WORDS_BIGENDIAN)
> # define END _be
> -# define MEND _be
> #else
> # define END _le
> -# define MEND _le
> #endif
>
> ABI_TYPE ATOMIC_NAME(cmpxchg)(CPUArchState *env, target_ulong addr,
> @@ -79,8 +76,8 @@ ABI_TYPE ATOMIC_NAME(cmpxchg)(CPUArchState *env, target_ulong addr,
> ATOMIC_MMU_DECLS;
> DATA_TYPE *haddr = ATOMIC_MMU_LOOKUP;
> DATA_TYPE ret;
> - uint16_t info = glue(trace_mem_build_info_no_se, MEND)(SHIFT, false,
> - ATOMIC_MMU_IDX);
> + uint16_t info = trace_mem_build_info(SHIFT, false, 0, false,
What is MEND meant to be? Shouldn't we use the appropriate MO_TE instead
of 0 for these helpers?
> + ATOMIC_MMU_IDX);
>
> atomic_trace_rmw_pre(env, addr, info);
> #if DATA_SIZE == 16
> @@ -99,8 +96,8 @@ ABI_TYPE ATOMIC_NAME(ld)(CPUArchState *env, target_ulong addr EXTRA_ARGS)
> {
> ATOMIC_MMU_DECLS;
> DATA_TYPE val, *haddr = ATOMIC_MMU_LOOKUP;
> - uint16_t info = glue(trace_mem_build_info_no_se, MEND)(SHIFT, false,
> - ATOMIC_MMU_IDX);
> + uint16_t info = trace_mem_build_info(SHIFT, false, 0, false,
> + ATOMIC_MMU_IDX);
>
> atomic_trace_ld_pre(env, addr, info);
> val = atomic16_read(haddr);
> @@ -114,8 +111,8 @@ void ATOMIC_NAME(st)(CPUArchState *env, target_ulong addr,
> {
> ATOMIC_MMU_DECLS;
> DATA_TYPE *haddr = ATOMIC_MMU_LOOKUP;
> - uint16_t info = glue(trace_mem_build_info_no_se, MEND)(SHIFT, true,
> - ATOMIC_MMU_IDX);
> + uint16_t info = trace_mem_build_info(SHIFT, false, 0, true,
> + ATOMIC_MMU_IDX);
>
> atomic_trace_st_pre(env, addr, info);
> atomic16_set(haddr, val);
> @@ -130,8 +127,8 @@ ABI_TYPE ATOMIC_NAME(xchg)(CPUArchState *env, target_ulong addr,
> ATOMIC_MMU_DECLS;
> DATA_TYPE *haddr = ATOMIC_MMU_LOOKUP;
> DATA_TYPE ret;
> - uint16_t info = glue(trace_mem_build_info_no_se, MEND)(SHIFT, false,
> - ATOMIC_MMU_IDX);
> + uint16_t info = trace_mem_build_info(SHIFT, false, 0, false,
> + ATOMIC_MMU_IDX);
>
> atomic_trace_rmw_pre(env, addr, info);
> ret = atomic_xchg__nocheck(haddr, val);
> @@ -147,10 +144,8 @@ ABI_TYPE ATOMIC_NAME(X)(CPUArchState *env, target_ulong addr, \
> ATOMIC_MMU_DECLS; \
> DATA_TYPE *haddr = ATOMIC_MMU_LOOKUP; \
> DATA_TYPE ret; \
> - uint16_t info = glue(trace_mem_build_info_no_se, MEND)(SHIFT, \
> - false, \
> - ATOMIC_MMU_IDX); \
> - \
> + uint16_t info = trace_mem_build_info(SHIFT, false, 0, false, \
> + ATOMIC_MMU_IDX); \
> atomic_trace_rmw_pre(env, addr, info); \
> ret = atomic_##X(haddr, val); \
> ATOMIC_MMU_CLEANUP; \
> @@ -183,10 +178,8 @@ ABI_TYPE ATOMIC_NAME(X)(CPUArchState *env, target_ulong addr, \
> ATOMIC_MMU_DECLS; \
> XDATA_TYPE *haddr = ATOMIC_MMU_LOOKUP; \
> XDATA_TYPE cmp, old, new, val = xval; \
> - uint16_t info = glue(trace_mem_build_info_no_se, MEND)(SHIFT, \
> - false, \
> - ATOMIC_MMU_IDX); \
> - \
> + uint16_t info = trace_mem_build_info(SHIFT, false, 0, false, \
> + ATOMIC_MMU_IDX); \
> atomic_trace_rmw_pre(env, addr, info); \
> smp_mb(); \
> cmp = atomic_read__nocheck(haddr); \
> @@ -213,7 +206,6 @@ GEN_ATOMIC_HELPER_FN(umax_fetch, MAX, DATA_TYPE, new)
> #endif /* DATA SIZE >= 16 */
>
> #undef END
> -#undef MEND
>
> #if DATA_SIZE > 1
>
> @@ -221,10 +213,8 @@ GEN_ATOMIC_HELPER_FN(umax_fetch, MAX, DATA_TYPE, new)
> within the ATOMIC_NAME macro. */
> #ifdef HOST_WORDS_BIGENDIAN
> # define END _le
> -# define MEND _le
> #else
> # define END _be
> -# define MEND _be
> #endif
>
> ABI_TYPE ATOMIC_NAME(cmpxchg)(CPUArchState *env, target_ulong addr,
> @@ -233,9 +223,8 @@ ABI_TYPE ATOMIC_NAME(cmpxchg)(CPUArchState *env, target_ulong addr,
> ATOMIC_MMU_DECLS;
> DATA_TYPE *haddr = ATOMIC_MMU_LOOKUP;
> DATA_TYPE ret;
> - uint16_t info = glue(trace_mem_build_info_no_se, MEND)(SHIFT,
> - false,
> - ATOMIC_MMU_IDX);
> + uint16_t info = trace_mem_build_info(SHIFT, false, MO_BSWAP, false,
> + ATOMIC_MMU_IDX);
These are fine with MO_BSWAP. So otherwise:
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
--
Alex Bennée
next prev parent reply other threads:[~2019-12-20 16:38 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-16 22:11 [PATCH v2 00/28] cputlb: Remove support for MMU_MODE*_SUFFIX Richard Henderson
2019-12-16 22:11 ` [PATCH v2 01/28] target/xtensa: Use probe_access for itlb_hit_test Richard Henderson
2019-12-17 3:51 ` Philippe Mathieu-Daudé
2019-12-20 14:15 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 02/28] cputlb: Use trace_mem_get_info instead of trace_mem_build_info Richard Henderson
2019-12-17 3:59 ` Philippe Mathieu-Daudé
2019-12-20 15:04 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 03/28] trace: Remove trace_mem_build_info_no_se_[bl]e Richard Henderson
2019-12-20 16:38 ` Alex Bennée [this message]
2019-12-28 20:48 ` Richard Henderson
2019-12-16 22:11 ` [PATCH v2 04/28] cputlb: Move body of cpu_ldst_template.h out of line Richard Henderson
2019-12-20 17:07 ` Alex Bennée
2019-12-20 18:33 ` Alex Bennée
2019-12-20 18:36 ` Alex Bennée
2019-12-28 20:50 ` Richard Henderson
2019-12-16 22:11 ` [PATCH v2 05/28] translator: Use cpu_ld*_code instead of open-coding Richard Henderson
2019-12-20 17:12 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 06/28] cputlb: Rename helper_ret_ld*_cmmu to cpu_ld*_code Richard Henderson
2019-12-20 17:25 ` Alex Bennée
2019-12-28 20:58 ` Richard Henderson
2019-12-16 22:11 ` [PATCH v2 07/28] cputlb: Provide cpu_(ld, st}*_mmuidx_ra for user-only Richard Henderson
2019-12-20 17:36 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 08/28] target/i386: Use cpu_*_mmuidx_ra instead of templates Richard Henderson
2019-12-20 17:42 ` Alex Bennée
2019-12-28 21:02 ` Richard Henderson
2019-12-16 22:11 ` [PATCH v2 09/28] target/s390x: Include tcg.h in mem_helper.c Richard Henderson
2019-12-20 17:43 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 10/28] target/arm: Include tcg.h in sve_helper.c Richard Henderson
2019-12-20 17:43 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 11/28] accel/tcg: Include tcg.h in tcg-runtime.c Richard Henderson
2019-12-16 22:11 ` [PATCH v2 12/28] linux-user: Include tcg.h in syscall.c Richard Henderson
2019-12-20 17:43 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 13/28] linux-user: Include trace-root.h in syscall-trace.h Richard Henderson
2019-12-20 17:49 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 14/28] cputlb: Expand cpu_ldst_useronly_template.h in user-exec.c Richard Henderson
2019-12-20 17:59 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 15/28] target/nios2: Remove MMU_MODE{0,1}_SUFFIX Richard Henderson
2019-12-20 18:02 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 16/28] target/alpha: " Richard Henderson
2019-12-20 18:02 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 17/28] target/cris: " Richard Henderson
2019-12-20 18:02 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 18/28] target/i386: Remove MMU_MODE{0,1,2}_SUFFIX Richard Henderson
2019-12-20 18:02 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 19/28] target/microblaze: " Richard Henderson
2019-12-20 18:03 ` [PATCH v2 19/28] target/microblaze: Remove MMU_MODE{0, 1, 2}_SUFFIX Alex Bennée
2019-12-16 22:11 ` [PATCH v2 20/28] target/sh4: Remove MMU_MODE{0,1}_SUFFIX Richard Henderson
2019-12-20 18:03 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 21/28] target/unicore32: " Richard Henderson
2019-12-20 18:03 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 22/28] target/xtensa: Remove MMU_MODE{0,1,2,3}_SUFFIX Richard Henderson
2019-12-20 19:30 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 23/28] target/m68k: Use cpu_*_mmuidx_ra instead of MMU_MODE{0, 1}_SUFFIX Richard Henderson
2019-12-20 19:34 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 24/28] target/mips: Use cpu_*_mmuidx_ra instead of MMU_MODE*_SUFFIX Richard Henderson
2019-12-20 19:37 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 25/28] target/s390x: " Richard Henderson
2019-12-20 19:39 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 26/28] target/ppc: " Richard Henderson
2019-12-20 19:51 ` Alex Bennée
2019-12-28 21:18 ` Richard Henderson
2019-12-29 8:40 ` David Gibson
2019-12-16 22:11 ` [PATCH v2 27/28] cputlb: Remove support for MMU_MODE*_SUFFIX Richard Henderson
2019-12-20 19:52 ` Alex Bennée
2019-12-16 22:11 ` [PATCH v2 28/28] cputlb: Expand cpu_ldst_template.h in cputlb.c Richard Henderson
2019-12-20 19:53 ` Alex Bennée
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=8736dfdkb9.fsf@linaro.org \
--to=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.