All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: "Emilio G. Cota" <cota@braap.org>
Cc: qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
	Peter Crosthwaite <crosthwaite.peter@gmail.com>,
	Richard Henderson <rth@twiddle.net>,
	Eduardo Habkost <ehabkost@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v3 01/13] target/i386: move cpu_cc_srcT to DisasContext
Date: Thu, 13 Sep 2018 15:21:50 +0100	[thread overview]
Message-ID: <87efdxbhq9.fsf@linaro.org> (raw)
In-Reply-To: <20180911202823.21657-2-cota@braap.org>


Emilio G. Cota <cota@braap.org> writes:

> Signed-off-by: Emilio G. Cota <cota@braap.org>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

> ---
>  target/i386/translate.c | 32 ++++++++++++++++++--------------
>  1 file changed, 18 insertions(+), 14 deletions(-)
>
> diff --git a/target/i386/translate.c b/target/i386/translate.c
> index 1f9d1d9b24..e9f512472e 100644
> --- a/target/i386/translate.c
> +++ b/target/i386/translate.c
> @@ -73,7 +73,7 @@
>
>  /* global register indexes */
>  static TCGv cpu_A0;
> -static TCGv cpu_cc_dst, cpu_cc_src, cpu_cc_src2, cpu_cc_srcT;
> +static TCGv cpu_cc_dst, cpu_cc_src, cpu_cc_src2;
>  static TCGv_i32 cpu_cc_op;
>  static TCGv cpu_regs[CPU_NB_REGS];
>  static TCGv cpu_seg_base[6];
> @@ -135,6 +135,10 @@ typedef struct DisasContext {
>      int cpuid_ext3_features;
>      int cpuid_7_0_ebx_features;
>      int cpuid_xsave_features;
> +
> +    /* TCG local temps */
> +    TCGv cc_srcT;
> +
>      sigjmp_buf jmpbuf;
>  } DisasContext;
>
> @@ -244,7 +248,7 @@ static void set_cc_op(DisasContext *s, CCOp op)
>          tcg_gen_discard_tl(cpu_cc_src2);
>      }
>      if (dead & USES_CC_SRCT) {
> -        tcg_gen_discard_tl(cpu_cc_srcT);
> +        tcg_gen_discard_tl(s->cc_srcT);
>      }
>
>      if (op == CC_OP_DYNAMIC) {
> @@ -667,11 +671,11 @@ static inline void gen_op_testl_T0_T1_cc(void)
>      tcg_gen_and_tl(cpu_cc_dst, cpu_T0, cpu_T1);
>  }
>
> -static void gen_op_update_neg_cc(void)
> +static void gen_op_update_neg_cc(DisasContext *s)
>  {
>      tcg_gen_mov_tl(cpu_cc_dst, cpu_T0);
>      tcg_gen_neg_tl(cpu_cc_src, cpu_T0);
> -    tcg_gen_movi_tl(cpu_cc_srcT, 0);
> +    tcg_gen_movi_tl(s->cc_srcT, 0);
>  }
>
>  /* compute all eflags to cc_src */
> @@ -742,7 +746,7 @@ static CCPrepare gen_prepare_eflags_c(DisasContext *s, TCGv reg)
>          t1 = gen_ext_tl(cpu_tmp0, cpu_cc_src, size, false);
>          /* If no temporary was used, be careful not to alias t1 and t0.  */
>          t0 = t1 == cpu_cc_src ? cpu_tmp0 : reg;
> -        tcg_gen_mov_tl(t0, cpu_cc_srcT);
> +        tcg_gen_mov_tl(t0, s->cc_srcT);
>          gen_extu(size, t0);
>          goto add_sub;
>
> @@ -899,7 +903,7 @@ static CCPrepare gen_prepare_cc(DisasContext *s, int b, TCGv reg)
>          size = s->cc_op - CC_OP_SUBB;
>          switch (jcc_op) {
>          case JCC_BE:
> -            tcg_gen_mov_tl(cpu_tmp4, cpu_cc_srcT);
> +            tcg_gen_mov_tl(cpu_tmp4, s->cc_srcT);
>              gen_extu(size, cpu_tmp4);
>              t0 = gen_ext_tl(cpu_tmp0, cpu_cc_src, size, false);
>              cc = (CCPrepare) { .cond = TCG_COND_LEU, .reg = cpu_tmp4,
> @@ -912,7 +916,7 @@ static CCPrepare gen_prepare_cc(DisasContext *s, int b, TCGv reg)
>          case JCC_LE:
>              cond = TCG_COND_LE;
>          fast_jcc_l:
> -            tcg_gen_mov_tl(cpu_tmp4, cpu_cc_srcT);
> +            tcg_gen_mov_tl(cpu_tmp4, s->cc_srcT);
>              gen_exts(size, cpu_tmp4);
>              t0 = gen_ext_tl(cpu_tmp0, cpu_cc_src, size, true);
>              cc = (CCPrepare) { .cond = cond, .reg = cpu_tmp4,
> @@ -1309,11 +1313,11 @@ static void gen_op(DisasContext *s1, int op, TCGMemOp ot, int d)
>      case OP_SUBL:
>          if (s1->prefix & PREFIX_LOCK) {
>              tcg_gen_neg_tl(cpu_T0, cpu_T1);
> -            tcg_gen_atomic_fetch_add_tl(cpu_cc_srcT, cpu_A0, cpu_T0,
> +            tcg_gen_atomic_fetch_add_tl(s1->cc_srcT, cpu_A0, cpu_T0,
>                                          s1->mem_index, ot | MO_LE);
> -            tcg_gen_sub_tl(cpu_T0, cpu_cc_srcT, cpu_T1);
> +            tcg_gen_sub_tl(cpu_T0, s1->cc_srcT, cpu_T1);
>          } else {
> -            tcg_gen_mov_tl(cpu_cc_srcT, cpu_T0);
> +            tcg_gen_mov_tl(s1->cc_srcT, cpu_T0);
>              tcg_gen_sub_tl(cpu_T0, cpu_T0, cpu_T1);
>              gen_op_st_rm_T0_A0(s1, ot, d);
>          }
> @@ -1356,7 +1360,7 @@ static void gen_op(DisasContext *s1, int op, TCGMemOp ot, int d)
>          break;
>      case OP_CMPL:
>          tcg_gen_mov_tl(cpu_cc_src, cpu_T1);
> -        tcg_gen_mov_tl(cpu_cc_srcT, cpu_T0);
> +        tcg_gen_mov_tl(s1->cc_srcT, cpu_T0);
>          tcg_gen_sub_tl(cpu_cc_dst, cpu_T0, cpu_T1);
>          set_cc_op(s1, CC_OP_SUBB + ot);
>          break;
> @@ -4823,7 +4827,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)
>                      gen_op_mov_reg_v(ot, rm, cpu_T0);
>                  }
>              }
> -            gen_op_update_neg_cc();
> +            gen_op_update_neg_cc(s);
>              set_cc_op(s, CC_OP_SUBB + ot);
>              break;
>          case 4: /* mul */
> @@ -5283,7 +5287,7 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)
>                  }
>              }
>              tcg_gen_mov_tl(cpu_cc_src, oldv);
> -            tcg_gen_mov_tl(cpu_cc_srcT, cmpv);
> +            tcg_gen_mov_tl(s->cc_srcT, cmpv);
>              tcg_gen_sub_tl(cpu_cc_dst, cmpv, oldv);
>              set_cc_op(s, CC_OP_SUBB + ot);
>              tcg_temp_free(oldv);
> @@ -8463,7 +8467,7 @@ static void i386_tr_init_disas_context(DisasContextBase *dcbase, CPUState *cpu)
>      cpu_tmp4 = tcg_temp_new();
>      cpu_ptr0 = tcg_temp_new_ptr();
>      cpu_ptr1 = tcg_temp_new_ptr();
> -    cpu_cc_srcT = tcg_temp_local_new();
> +    dc->cc_srcT = tcg_temp_local_new();
>  }
>
>  static void i386_tr_tb_start(DisasContextBase *db, CPUState *cpu)


--
Alex Bennée

  parent reply	other threads:[~2018-09-13 14:22 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-11 20:28 [Qemu-devel] [PATCH v3 00/13] i386 + x86_64 mttcg Emilio G. Cota
2018-09-11 20:28 ` [Qemu-devel] [PATCH v3 01/13] target/i386: move cpu_cc_srcT to DisasContext Emilio G. Cota
2018-09-11 20:44   ` Richard Henderson
2018-09-13 14:21   ` Alex Bennée [this message]
2018-09-11 20:28 ` [Qemu-devel] [PATCH v3 02/13] target/i386: move cpu_A0 " Emilio G. Cota
2018-09-11 20:45   ` Richard Henderson
2018-09-13 14:23   ` Alex Bennée
2018-09-11 20:28 ` [Qemu-devel] [PATCH v3 03/13] target/i386: move cpu_T0 " Emilio G. Cota
2018-09-11 20:47   ` Richard Henderson
2018-09-13 14:25   ` Alex Bennée
2018-09-11 20:28 ` [Qemu-devel] [PATCH v3 04/13] target/i386: move cpu_T1 " Emilio G. Cota
2018-09-11 20:48   ` Richard Henderson
2018-09-13 14:26   ` Alex Bennée
2018-09-11 20:28 ` [Qemu-devel] [PATCH v3 05/13] target/i386: move cpu_tmp0 " Emilio G. Cota
2018-09-11 20:51   ` Richard Henderson
2018-09-11 20:28 ` [Qemu-devel] [PATCH v3 06/13] target/i386: move cpu_tmp4 " Emilio G. Cota
2018-09-11 20:52   ` Richard Henderson
2018-09-11 20:28 ` [Qemu-devel] [PATCH v3 07/13] target/i386: move cpu_ptr0 " Emilio G. Cota
2018-09-11 20:53   ` Richard Henderson
2018-09-11 20:28 ` [Qemu-devel] [PATCH v3 08/13] target/i386: move cpu_ptr1 " Emilio G. Cota
2018-09-11 20:54   ` Richard Henderson
2018-09-11 20:28 ` [Qemu-devel] [PATCH v3 09/13] target/i386: move cpu_tmp2_i32 " Emilio G. Cota
2018-09-11 20:55   ` Richard Henderson
2018-09-11 20:28 ` [Qemu-devel] [PATCH v3 10/13] target/i386: move cpu_tmp3_i32 " Emilio G. Cota
2018-09-11 20:56   ` Richard Henderson
2018-09-11 20:28 ` [Qemu-devel] [PATCH v3 11/13] target/i386: move cpu_tmp1_i64 " Emilio G. Cota
2018-09-11 20:57   ` Richard Henderson
2018-09-11 20:28 ` [Qemu-devel] [PATCH v3 12/13] target/i386: move x86_64_hregs " Emilio G. Cota
2018-09-11 20:58   ` Richard Henderson
2018-09-13 14:31   ` Alex Bennée
2018-09-11 20:28 ` [Qemu-devel] [PATCH v3 13/13] configure: enable mttcg for i386 and x86_64 Emilio G. Cota
2018-09-12 12:46 ` [Qemu-devel] [PATCH v3 00/13] i386 + x86_64 mttcg Paolo Bonzini

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=87efdxbhq9.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=cota@braap.org \
    --cc=crosthwaite.peter@gmail.com \
    --cc=ehabkost@redhat.com \
    --cc=pbonzini@redhat.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.