qemu-devel.nongnu.org archive mirror
 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 04/13] target-alpha: Implement cvtql inline Richard Henderson
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 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).