All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aurelien Jarno <aurelien@aurel32.net>
To: Richard Henderson <rth@twiddle.net>
Cc: Max Filippov <jcmvbkbc@gmail.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 8/8] tcg: Sanity check goto_tb input
Date: Sat, 22 Sep 2012 21:52:11 +0200	[thread overview]
Message-ID: <20120922195211.GA32702@ohm.aurel32.net> (raw)
In-Reply-To: <1348273096-1495-9-git-send-email-rth@twiddle.net>

On Fri, Sep 21, 2012 at 05:18:16PM -0700, Richard Henderson wrote:
> Checking that we don't try for idx != [01] is trivial.  Checking
> that we don't issue more than one of any index requires a tad
> more data and some ifdefs protecting that new variable.
> 
> Signed-off-by: Richard Henderson <rth@twiddle.net>
> Cc: Max Filippov <jcmvbkbc@gmail.com>
> ---
>  tcg/tcg-op.h | 11 +++++++++--
>  tcg/tcg.c    |  4 ++++
>  tcg/tcg.h    |  1 +
>  3 files changed, 14 insertions(+), 2 deletions(-)
> 
> diff --git a/tcg/tcg-op.h b/tcg/tcg-op.h
> index ecb1ac3..9bfed48 100644
> --- a/tcg/tcg-op.h
> +++ b/tcg/tcg-op.h
> @@ -2275,8 +2275,15 @@ static inline void tcg_gen_exit_tb(tcg_target_long val)
>      tcg_gen_op1i(INDEX_op_exit_tb, val);
>  }
>  
> -static inline void tcg_gen_goto_tb(int idx)
> -{
> +static inline void tcg_gen_goto_tb(unsigned idx)
> +{
> +    /* We only support two chained exits.  */
> +    tcg_debug_assert(idx <= 1);
> +#ifdef CONFIG_DEBUG_TCG
> +    /* Verify that we havn't seen this numbered exit before.  */
> +    tcg_debug_assert((tcg_ctx.goto_tb_issue_mask & (1 << idx)) == 0);
> +    tcg_ctx.goto_tb_issue_mask |= 1 << idx;
> +#endif
>      tcg_gen_op1i(INDEX_op_goto_tb, idx);
>  }
>  
> diff --git a/tcg/tcg.c b/tcg/tcg.c
> index bb9c995..a703e1e 100644
> --- a/tcg/tcg.c
> +++ b/tcg/tcg.c
> @@ -299,6 +299,10 @@ void tcg_func_start(TCGContext *s)
>      s->nb_labels = 0;
>      s->current_frame_offset = s->frame_start;
>  
> +#ifdef CONFIG_DEBUG_TCG
> +    s->goto_tb_issue_mask = 0;
> +#endif
> +
>      gen_opc_ptr = gen_opc_buf;
>      gen_opparam_ptr = gen_opparam_buf;
>  }
> diff --git a/tcg/tcg.h b/tcg/tcg.h
> index 4501c15..af7464a 100644
> --- a/tcg/tcg.h
> +++ b/tcg/tcg.h
> @@ -390,6 +390,7 @@ struct TCGContext {
>  
>  #ifdef CONFIG_DEBUG_TCG
>      int temps_in_use;
> +    int goto_tb_issue_mask;
>  #endif
>  };
>  

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
aurelien@aurel32.net                 http://www.aurel32.net

  parent reply	other threads:[~2012-09-22 19:52 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-22  0:18 [Qemu-devel] [PATCH 0/8] Misc tcg improvements Richard Henderson
2012-09-22  0:18 ` [Qemu-devel] [PATCH 1/8] tcg: Adjust descriptions of *cond opcodes Richard Henderson
2012-09-22 10:16   ` malc
2012-09-22 19:51   ` Aurelien Jarno
2012-09-22  0:18 ` [Qemu-devel] [PATCH 2/8] tcg: Emit ANDI as EXTU for appropriate constants Richard Henderson
2012-09-22 19:52   ` Aurelien Jarno
2012-09-22  0:18 ` [Qemu-devel] [PATCH 3/8] tcg: Optimize initial inputs for ori_i64 Richard Henderson
2012-09-22 19:52   ` Aurelien Jarno
2012-09-22  0:18 ` [Qemu-devel] [PATCH 4/8] tcg: Emit XORI as NOT for appropriate constants Richard Henderson
2012-09-22 19:52   ` Aurelien Jarno
2012-09-22  0:18 ` [Qemu-devel] [PATCH 5/8] tcg: Implement concat*_i64 with deposit_i64 Richard Henderson
2012-09-22 19:52   ` Aurelien Jarno
2012-09-24 15:38     ` Richard Henderson
2012-09-22  0:18 ` [Qemu-devel] [PATCH 6/8] tcg: Add tcg_debug_assert Richard Henderson
2012-09-22 19:52   ` Aurelien Jarno
2012-09-22  0:18 ` [Qemu-devel] [PATCH 7/8] tcg: Sanity check deposit inputs Richard Henderson
2012-09-22 19:52   ` Aurelien Jarno
2012-09-22  0:18 ` [Qemu-devel] [PATCH 8/8] tcg: Sanity check goto_tb input Richard Henderson
2012-09-22 13:06   ` Max Filippov
2012-09-22 19:52   ` Aurelien Jarno [this message]
2012-09-25 22:48 ` [Qemu-devel] [PATCH 0/8] Misc tcg improvements Aurelien Jarno

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=20120922195211.GA32702@ohm.aurel32.net \
    --to=aurelien@aurel32.net \
    --cc=jcmvbkbc@gmail.com \
    --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.