All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aurelien Jarno <aurelien@aurel32.net>
To: Richard Henderson <rth@twiddle.net>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 07/13] target-alpha: Use non-inverted arguments to gen_{f}cmov.
Date: Sat, 10 Apr 2010 03:05:54 +0200	[thread overview]
Message-ID: <20100410010554.GZ21042@volta.aurel32.net> (raw)
In-Reply-To: <e511d23024605a6805a73bd4a57e9fd9cd0b111d.1270680209.git.rth@twiddle.net>

On Tue, Mar 16, 2010 at 02:44:44PM -0700, Richard Henderson wrote:
> The inverted conditions as argument to the function looks wrong
> at a glance inside translate_one.  Since we have an easy function
> to produce the inversion now, use it.

Thanks, applied.

> Signed-off-by: Richard Henderson <rth@twiddle.net>
> ---
>  target-alpha/translate.c |   37 +++++++++++++++++++------------------
>  1 files changed, 19 insertions(+), 18 deletions(-)
> 
> diff --git a/target-alpha/translate.c b/target-alpha/translate.c
> index adeff0a..ea651c4 100644
> --- a/target-alpha/translate.c
> +++ b/target-alpha/translate.c
> @@ -394,9 +394,10 @@ static void gen_fbcond(DisasContext *ctx, TCGCond cond, int ra, int32_t disp)
>      gen_bcond_pcload(ctx, disp, lab_true);
>  }
>  
> -static inline void gen_cmov(TCGCond inv_cond, int ra, int rb, int rc,
> -                            int islit, uint8_t lit, int mask)
> +static void gen_cmov(TCGCond cond, int ra, int rb, int rc,
> +		     int islit, uint8_t lit, int mask)
>  {
> +    TCGCond inv_cond = tcg_invert_cond(cond);
>      int l1;
>  
>      if (unlikely(rc == 31))
> @@ -426,7 +427,7 @@ static inline void gen_cmov(TCGCond inv_cond, int ra, int rb, int rc,
>      gen_set_label(l1);
>  }
>  
> -static void gen_fcmov(TCGCond inv_cond, int ra, int rb, int rc)
> +static void gen_fcmov(TCGCond cond, int ra, int rb, int rc)
>  {
>      TCGv va = cpu_fir[ra];
>      int l1;
> @@ -439,7 +440,7 @@ static void gen_fcmov(TCGCond inv_cond, int ra, int rb, int rc)
>      }
>  
>      l1 = gen_new_label();
> -    gen_fbcond_internal(inv_cond, va, l1);
> +    gen_fbcond_internal(tcg_invert_cond(cond), va, l1);
>  
>      if (rb != 31)
>          tcg_gen_mov_i64(cpu_fir[rc], cpu_fir[rb]);
> @@ -1767,11 +1768,11 @@ static inline int translate_one(DisasContext *ctx, uint32_t insn)
>              break;
>          case 0x14:
>              /* CMOVLBS */
> -            gen_cmov(TCG_COND_EQ, ra, rb, rc, islit, lit, 1);
> +            gen_cmov(TCG_COND_NE, ra, rb, rc, islit, lit, 1);
>              break;
>          case 0x16:
>              /* CMOVLBC */
> -            gen_cmov(TCG_COND_NE, ra, rb, rc, islit, lit, 1);
> +            gen_cmov(TCG_COND_EQ, ra, rb, rc, islit, lit, 1);
>              break;
>          case 0x20:
>              /* BIS */
> @@ -1791,11 +1792,11 @@ static inline int translate_one(DisasContext *ctx, uint32_t insn)
>              break;
>          case 0x24:
>              /* CMOVEQ */
> -            gen_cmov(TCG_COND_NE, ra, rb, rc, islit, lit, 0);
> +            gen_cmov(TCG_COND_EQ, ra, rb, rc, islit, lit, 0);
>              break;
>          case 0x26:
>              /* CMOVNE */
> -            gen_cmov(TCG_COND_EQ, ra, rb, rc, islit, lit, 0);
> +            gen_cmov(TCG_COND_NE, ra, rb, rc, islit, lit, 0);
>              break;
>          case 0x28:
>              /* ORNOT */
> @@ -1831,11 +1832,11 @@ static inline int translate_one(DisasContext *ctx, uint32_t insn)
>              break;
>          case 0x44:
>              /* CMOVLT */
> -            gen_cmov(TCG_COND_GE, ra, rb, rc, islit, lit, 0);
> +            gen_cmov(TCG_COND_LT, ra, rb, rc, islit, lit, 0);
>              break;
>          case 0x46:
>              /* CMOVGE */
> -            gen_cmov(TCG_COND_LT, ra, rb, rc, islit, lit, 0);
> +            gen_cmov(TCG_COND_GE, ra, rb, rc, islit, lit, 0);
>              break;
>          case 0x48:
>              /* EQV */
> @@ -1875,11 +1876,11 @@ static inline int translate_one(DisasContext *ctx, uint32_t insn)
>              break;
>          case 0x64:
>              /* CMOVLE */
> -            gen_cmov(TCG_COND_GT, ra, rb, rc, islit, lit, 0);
> +            gen_cmov(TCG_COND_LE, ra, rb, rc, islit, lit, 0);
>              break;
>          case 0x66:
>              /* CMOVGT */
> -            gen_cmov(TCG_COND_LE, ra, rb, rc, islit, lit, 0);
> +            gen_cmov(TCG_COND_GT, ra, rb, rc, islit, lit, 0);
>              break;
>          case 0x6C:
>              /* IMPLVER */
> @@ -2353,27 +2354,27 @@ static inline int translate_one(DisasContext *ctx, uint32_t insn)
>              break;
>          case 0x02A:
>              /* FCMOVEQ */
> -            gen_fcmov(TCG_COND_NE, ra, rb, rc);
> +            gen_fcmov(TCG_COND_EQ, ra, rb, rc);
>              break;
>          case 0x02B:
>              /* FCMOVNE */
> -            gen_fcmov(TCG_COND_EQ, ra, rb, rc);
> +            gen_fcmov(TCG_COND_NE, ra, rb, rc);
>              break;
>          case 0x02C:
>              /* FCMOVLT */
> -            gen_fcmov(TCG_COND_GE, ra, rb, rc);
> +            gen_fcmov(TCG_COND_LT, ra, rb, rc);
>              break;
>          case 0x02D:
>              /* FCMOVGE */
> -            gen_fcmov(TCG_COND_LT, ra, rb, rc);
> +            gen_fcmov(TCG_COND_GE, ra, rb, rc);
>              break;
>          case 0x02E:
>              /* FCMOVLE */
> -            gen_fcmov(TCG_COND_GT, ra, rb, rc);
> +            gen_fcmov(TCG_COND_LE, ra, rb, rc);
>              break;
>          case 0x02F:
>              /* FCMOVGT */
> -            gen_fcmov(TCG_COND_LE, ra, rb, rc);
> +            gen_fcmov(TCG_COND_GT, ra, rb, rc);
>              break;
>          case 0x030:
>              /* CVTQL */
> -- 
> 1.6.6.1
> 
> 
> 
> 

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

  reply	other threads:[~2010-04-10  1:14 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-07 22:43 [Qemu-devel] [PATCH 00/13] target-alpha improvements, version 4 Richard Henderson
2010-03-25  0:13 ` [Qemu-devel] [PATCH 10/13] target-alpha: Enable NPTL Richard Henderson
2010-04-10  0:54   ` Aurelien Jarno
2010-03-29 17:48 ` [Qemu-devel] [PATCH 09/13] target-alpha: Update commentary for opcode 0x1A Richard Henderson
2010-04-07 17:17 ` [Qemu-devel] [PATCH 05/13] target-alpha: Implement cvtlq inline Richard Henderson
2010-04-07 20:32 ` [Qemu-devel] [PATCH 11/13] target-alpha: Indicate NORETURN status when raising exception Richard Henderson
2010-04-07 22:42 ` [Qemu-devel] [PATCH 12/13] target-alpha: Fix load-locked/store-conditional Richard Henderson
2010-04-07 22:42 ` [Qemu-devel] [PATCH 13/13] target-alpha: Implement RPCC Richard Henderson
2010-04-10  1:09   ` Aurelien Jarno
2010-04-07 22:49 ` [Qemu-devel] [PATCH 02/13] target-alpha: Implement cpys{, n, e} inline Richard Henderson
2010-04-10  0:39   ` Aurelien Jarno
2010-04-07 22:49 ` [Qemu-devel] [PATCH 04/13] target-alpha: Implement cvtql inline Richard Henderson
2010-04-07 22:49 ` [Qemu-devel] [PATCH 06/13] target-alpha: Use setcond for int comparisons Richard Henderson
2010-04-10  1:05   ` Aurelien Jarno
2010-04-07 22:49 ` [Qemu-devel] [PATCH 01/13] target-alpha: Add flags markups to helpers.h Richard Henderson
2010-04-10  1:05   ` Aurelien Jarno
2010-04-07 22:49 ` [Qemu-devel] [PATCH 03/13] target-alpha: Implement rs/rc properly Richard Henderson
2010-04-10  0:44   ` Aurelien Jarno
2010-04-07 22:49 ` [Qemu-devel] [PATCH 07/13] target-alpha: Use non-inverted arguments to gen_{f}cmov Richard Henderson
2010-04-10  1:05   ` Aurelien Jarno [this message]
2010-04-07 22:49 ` [Qemu-devel] [PATCH 08/13] target-alpha: Emit goto_tb opcodes Richard Henderson
2010-04-12 23:23 ` [Qemu-devel] [PATCH 00/10] target-alpha improvments, version 5 Richard Henderson
2010-03-29 17:48   ` [Qemu-devel] [PATCH 05/10] target-alpha: Update commentary for opcode 0x1A Richard Henderson
2010-04-07 17:17   ` [Qemu-devel] [PATCH 03/10] target-alpha: Implement cvtlq inline Richard Henderson
2010-04-07 20:32   ` [Qemu-devel] [PATCH 07/10] target-alpha: Indicate NORETURN status when raising exception Richard Henderson
2010-04-07 22:42   ` [Qemu-devel] [PATCH 08/10] target-alpha: Fix load-locked/store-conditional Richard Henderson
2010-04-12 23:12   ` [Qemu-devel] [PATCH 01/10] target-alpha: Implement cpys{, n, e} inline Richard Henderson
2010-04-12 23:14   ` [Qemu-devel] [PATCH 02/10] target-alpha: Implement rs/rc properly Richard Henderson
2010-04-12 23:17   ` [Qemu-devel] [PATCH 06/10] target-alpha: Enable NPTL Richard Henderson
2010-04-12 23:18   ` [Qemu-devel] [PATCH 09/10] target-alpha: Implement RPCC Richard Henderson
2010-04-12 23:19   ` [Qemu-devel] [PATCH 10/10] Implement cpu_get_real_ticks for Alpha Richard Henderson
2010-04-12 23:26   ` [Qemu-devel] [PATCH 04/10] target-alpha: Emit goto_tb opcodes Richard Henderson

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=20100410010554.GZ21042@volta.aurel32.net \
    --to=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.