All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Richard Henderson <rth@twiddle.net>
Cc: qemu-devel@nongnu.org, aurelien@aurel32.net
Subject: Re: [Qemu-devel] [PATCH 08/10] tcg: Save flags and computed sizemask in TCGHelperInfo
Date: Tue, 13 May 2014 10:38:29 +0100	[thread overview]
Message-ID: <87y4y66msq.fsf@linaro.org> (raw)
In-Reply-To: <1399938424-6703-9-git-send-email-rth@twiddle.net>


Richard Henderson <rth@twiddle.net> writes:

> Signed-off-by: Richard Henderson <rth@twiddle.net>
> ---
<snip>
> +#define DEF_HELPER_FLAGS_0(NAME, FLAGS, ret) \
> +  { .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \
> +    .sizemask = dh_sizemask(ret, 0) },
> +
> +#define DEF_HELPER_FLAGS_1(NAME, FLAGS, ret, t1) \
> +  { .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \
> +    .sizemask = dh_sizemask(ret, 0) | dh_sizemask(t1, 1) },
> +
> +#define DEF_HELPER_FLAGS_2(NAME, FLAGS, ret, t1, t2) \
> +  { .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \
> +    .sizemask = dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \
> +    | dh_sizemask(t2, 2) },
> +
> +#define DEF_HELPER_FLAGS_3(NAME, FLAGS, ret, t1, t2, t3) \
> +  { .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \
> +    .sizemask = dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \
> +    | dh_sizemask(t2, 2) | dh_sizemask(t3, 3) },
> +
> +#define DEF_HELPER_FLAGS_4(NAME, FLAGS, ret, t1, t2, t3, t4) \
> +  { .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \
> +    .sizemask = dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \
> +    | dh_sizemask(t2, 2) | dh_sizemask(t3, 3) | dh_sizemask(t4, 4) },
> +
> +#define DEF_HELPER_FLAGS_5(NAME, FLAGS, ret, t1, t2, t3, t4, t5) \
> +  { .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \
> +    .sizemask = dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \
> +    | dh_sizemask(t2, 2) | dh_sizemask(t3, 3) | dh_sizemask(t4, 4) \
> +    | dh_sizemask(t5, 5) },

I'll come back to this when I understand the sizemask stuff better.
>  
>  #include "helper.h"
>  #include "tcg-runtime.h"
> diff --git a/tcg/tcg.c b/tcg/tcg.c
> index 3bbf982..d71a9bf 100644
> --- a/tcg/tcg.c
> +++ b/tcg/tcg.c
> @@ -310,6 +310,8 @@ void tcg_pool_reset(TCGContext *s)
>  typedef struct TCGHelperInfo {
>      void *func;
>      const char *name;
> +    unsigned flags;
> +    unsigned sizemask;
>  } TCGHelperInfo;
>  
>  #include "exec/helper-proto.h"
> @@ -696,6 +698,11 @@ void tcg_gen_callN(TCGContext *s, void *func, unsigned int flags,
>      int real_args;
>      int nb_rets;
>      TCGArg *nparam;
> +    TCGHelperInfo *info;
> +
> +    info = g_hash_table_lookup(s->helpers, (gpointer)func);
> +    assert(info != NULL);
> +    assert(info->sizemask == sizemask);

I assume g_assert vs assert is purely cosmetic? QEMU seems inconsistent
at best about this :-/

>  
>  #if defined(__sparc__) && !defined(__arch64__) \
>      && !defined(CONFIG_TCG_INTERPRETER)

-- 
Alex Bennée

  reply	other threads:[~2014-05-13  9:38 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-12 23:46 [Qemu-devel] [PATCH 00/10] tcg cleanup and optimization Richard Henderson
2014-05-12 23:46 ` [Qemu-devel] [PATCH 01/10] tcg: Optimize brcond2 and setcond2 ne/eq Richard Henderson
2014-05-12 23:46 ` [Qemu-devel] [PATCH 02/10] tcg: Invert the inclusion of helper.h Richard Henderson
2014-05-13  9:10   ` Alex Bennée
2014-05-12 23:46 ` [Qemu-devel] [PATCH 03/10] tcg: Push tcg-runtime routines into exec/helper-* Richard Henderson
2014-05-13  9:20   ` Alex Bennée
2014-05-13 13:39     ` Richard Henderson
2014-05-12 23:46 ` [Qemu-devel] [PATCH 04/10] tcg: Use helper-gen.h in tcg-op.h Richard Henderson
2014-05-13  9:34   ` Alex Bennée
2014-05-13 13:44     ` Richard Henderson
2014-05-12 23:46 ` [Qemu-devel] [PATCH 05/10] tcg: Inline tcg_gen_helperN Richard Henderson
2014-05-13  9:34   ` Alex Bennée
2014-05-12 23:47 ` [Qemu-devel] [PATCH 06/10] tcg: Move side effects out of dh_sizemask Richard Henderson
2014-05-12 23:47 ` [Qemu-devel] [PATCH 07/10] tcg: Register the helper info struct rather than the name Richard Henderson
2014-05-13  9:36   ` Alex Bennée
2014-05-12 23:47 ` [Qemu-devel] [PATCH 08/10] tcg: Save flags and computed sizemask in TCGHelperInfo Richard Henderson
2014-05-13  9:38   ` Alex Bennée [this message]
2014-05-13 13:54     ` Richard Henderson
2014-05-12 23:47 ` [Qemu-devel] [PATCH 09/10] tcg: Remove sizemask and flags arguments to tcg_gen_callN Richard Henderson
2014-05-12 23:47 ` [Qemu-devel] [PATCH 10/10] tcg: Move size effects out of dh_arg Richard Henderson
2014-05-13  9:42   ` 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=87y4y66msq.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=aurelien@aurel32.net \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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.