* [Qemu-devel] [PATCH] target-microblaze: Use setcond for pcmp*
@ 2015-09-02 21:46 Richard Henderson
2015-09-03 11:09 ` Edgar E. Iglesias
0 siblings, 1 reply; 3+ messages in thread
From: Richard Henderson @ 2015-09-02 21:46 UTC (permalink / raw)
To: qemu-devel; +Cc: edgar.iglesias
Signed-off-by: Richard Henderson <rth@twiddle.net>
---
This was originally posted back in February. I failed to keep
any reply, if any, that may have been given. There's no change
to the code after updating to mainline.
r~
---
target-microblaze/translate.c | 23 ++++-------------------
1 file changed, 4 insertions(+), 19 deletions(-)
diff --git a/target-microblaze/translate.c b/target-microblaze/translate.c
index 47ac180..d4d9a8a 100644
--- a/target-microblaze/translate.c
+++ b/target-microblaze/translate.c
@@ -313,7 +313,6 @@ static void dec_sub(DisasContext *dc)
static void dec_pattern(DisasContext *dc)
{
unsigned int mode;
- TCGLabel *l1;
if ((dc->tb_flags & MSR_EE_FLAG)
&& (dc->cpu->env.pvr.regs[2] & PVR2_ILL_OPCODE_EXC_MASK)
@@ -333,29 +332,15 @@ static void dec_pattern(DisasContext *dc)
case 2:
LOG_DIS("pcmpeq r%d r%d r%d\n", dc->rd, dc->ra, dc->rb);
if (dc->rd) {
- TCGv t0 = tcg_temp_local_new();
- l1 = gen_new_label();
- tcg_gen_movi_tl(t0, 1);
- tcg_gen_brcond_tl(TCG_COND_EQ,
- cpu_R[dc->ra], cpu_R[dc->rb], l1);
- tcg_gen_movi_tl(t0, 0);
- gen_set_label(l1);
- tcg_gen_mov_tl(cpu_R[dc->rd], t0);
- tcg_temp_free(t0);
+ tcg_gen_setcond_tl(TCG_COND_EQ, cpu_R[dc->rd],
+ cpu_R[dc->ra], cpu_R[dc->rb]);
}
break;
case 3:
LOG_DIS("pcmpne r%d r%d r%d\n", dc->rd, dc->ra, dc->rb);
- l1 = gen_new_label();
if (dc->rd) {
- TCGv t0 = tcg_temp_local_new();
- tcg_gen_movi_tl(t0, 1);
- tcg_gen_brcond_tl(TCG_COND_NE,
- cpu_R[dc->ra], cpu_R[dc->rb], l1);
- tcg_gen_movi_tl(t0, 0);
- gen_set_label(l1);
- tcg_gen_mov_tl(cpu_R[dc->rd], t0);
- tcg_temp_free(t0);
+ tcg_gen_setcond_tl(TCG_COND_NE, cpu_R[dc->rd],
+ cpu_R[dc->ra], cpu_R[dc->rb]);
}
break;
default:
--
2.4.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] target-microblaze: Use setcond for pcmp*
2015-09-02 21:46 [Qemu-devel] [PATCH] target-microblaze: Use setcond for pcmp* Richard Henderson
@ 2015-09-03 11:09 ` Edgar E. Iglesias
0 siblings, 0 replies; 3+ messages in thread
From: Edgar E. Iglesias @ 2015-09-03 11:09 UTC (permalink / raw)
To: Richard Henderson; +Cc: qemu-devel
On Wed, Sep 02, 2015 at 02:46:01PM -0700, Richard Henderson wrote:
> Signed-off-by: Richard Henderson <rth@twiddle.net>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
I've added this to my MB queue, thanks.
Cheers,
Edgar
> ---
> This was originally posted back in February. I failed to keep
> any reply, if any, that may have been given. There's no change
> to the code after updating to mainline.
>
>
> r~
> ---
> target-microblaze/translate.c | 23 ++++-------------------
> 1 file changed, 4 insertions(+), 19 deletions(-)
>
> diff --git a/target-microblaze/translate.c b/target-microblaze/translate.c
> index 47ac180..d4d9a8a 100644
> --- a/target-microblaze/translate.c
> +++ b/target-microblaze/translate.c
> @@ -313,7 +313,6 @@ static void dec_sub(DisasContext *dc)
> static void dec_pattern(DisasContext *dc)
> {
> unsigned int mode;
> - TCGLabel *l1;
>
> if ((dc->tb_flags & MSR_EE_FLAG)
> && (dc->cpu->env.pvr.regs[2] & PVR2_ILL_OPCODE_EXC_MASK)
> @@ -333,29 +332,15 @@ static void dec_pattern(DisasContext *dc)
> case 2:
> LOG_DIS("pcmpeq r%d r%d r%d\n", dc->rd, dc->ra, dc->rb);
> if (dc->rd) {
> - TCGv t0 = tcg_temp_local_new();
> - l1 = gen_new_label();
> - tcg_gen_movi_tl(t0, 1);
> - tcg_gen_brcond_tl(TCG_COND_EQ,
> - cpu_R[dc->ra], cpu_R[dc->rb], l1);
> - tcg_gen_movi_tl(t0, 0);
> - gen_set_label(l1);
> - tcg_gen_mov_tl(cpu_R[dc->rd], t0);
> - tcg_temp_free(t0);
> + tcg_gen_setcond_tl(TCG_COND_EQ, cpu_R[dc->rd],
> + cpu_R[dc->ra], cpu_R[dc->rb]);
> }
> break;
> case 3:
> LOG_DIS("pcmpne r%d r%d r%d\n", dc->rd, dc->ra, dc->rb);
> - l1 = gen_new_label();
> if (dc->rd) {
> - TCGv t0 = tcg_temp_local_new();
> - tcg_gen_movi_tl(t0, 1);
> - tcg_gen_brcond_tl(TCG_COND_NE,
> - cpu_R[dc->ra], cpu_R[dc->rb], l1);
> - tcg_gen_movi_tl(t0, 0);
> - gen_set_label(l1);
> - tcg_gen_mov_tl(cpu_R[dc->rd], t0);
> - tcg_temp_free(t0);
> + tcg_gen_setcond_tl(TCG_COND_NE, cpu_R[dc->rd],
> + cpu_R[dc->ra], cpu_R[dc->rb]);
> }
> break;
> default:
> --
> 2.4.3
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Qemu-devel] [PATCH] target-microblaze: Use setcond for pcmp*
@ 2015-02-19 21:48 Richard Henderson
0 siblings, 0 replies; 3+ messages in thread
From: Richard Henderson @ 2015-02-19 21:48 UTC (permalink / raw)
To: qemu-devel; +Cc: edgar.iglesias
Signed-off-by: Richard Henderson <rth@twiddle.net>
---
target-microblaze/translate.c | 23 ++++-------------------
1 file changed, 4 insertions(+), 19 deletions(-)
---
Note that this is relative to an outstanding TCG patch set.
The full tree is at
git://github.com/rth7680/qemu.git mb-movcond
r~
---
diff --git a/target-microblaze/translate.c b/target-microblaze/translate.c
index 4068946..f3e9912 100644
--- a/target-microblaze/translate.c
+++ b/target-microblaze/translate.c
@@ -313,7 +313,6 @@ static void dec_sub(DisasContext *dc)
static void dec_pattern(DisasContext *dc)
{
unsigned int mode;
- TCGLabel *l1;
if ((dc->tb_flags & MSR_EE_FLAG)
&& (dc->cpu->env.pvr.regs[2] & PVR2_ILL_OPCODE_EXC_MASK)
@@ -333,29 +332,15 @@ static void dec_pattern(DisasContext *dc)
case 2:
LOG_DIS("pcmpeq r%d r%d r%d\n", dc->rd, dc->ra, dc->rb);
if (dc->rd) {
- TCGv t0 = tcg_temp_local_new();
- l1 = gen_new_label();
- tcg_gen_movi_tl(t0, 1);
- tcg_gen_brcond_tl(TCG_COND_EQ,
- cpu_R[dc->ra], cpu_R[dc->rb], l1);
- tcg_gen_movi_tl(t0, 0);
- gen_set_label(l1);
- tcg_gen_mov_tl(cpu_R[dc->rd], t0);
- tcg_temp_free(t0);
+ tcg_gen_setcond_tl(TCG_COND_EQ, cpu_R[dc->rd],
+ cpu_R[dc->ra], cpu_R[dc->rb]);
}
break;
case 3:
LOG_DIS("pcmpne r%d r%d r%d\n", dc->rd, dc->ra, dc->rb);
- l1 = gen_new_label();
if (dc->rd) {
- TCGv t0 = tcg_temp_local_new();
- tcg_gen_movi_tl(t0, 1);
- tcg_gen_brcond_tl(TCG_COND_NE,
- cpu_R[dc->ra], cpu_R[dc->rb], l1);
- tcg_gen_movi_tl(t0, 0);
- gen_set_label(l1);
- tcg_gen_mov_tl(cpu_R[dc->rd], t0);
- tcg_temp_free(t0);
+ tcg_gen_setcond_tl(TCG_COND_NE, cpu_R[dc->rd],
+ cpu_R[dc->ra], cpu_R[dc->rb]);
}
break;
default:
--
2.1.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-09-03 11:09 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-02 21:46 [Qemu-devel] [PATCH] target-microblaze: Use setcond for pcmp* Richard Henderson
2015-09-03 11:09 ` Edgar E. Iglesias
-- strict thread matches above, loose matches on Subject: below --
2015-02-19 21:48 Richard Henderson
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.