diff options
author | Tom Musta | 2014-08-25 21:25:42 +0200 |
---|---|---|
committer | Alexander Graf | 2014-09-08 12:50:53 +0200 |
commit | 03039e5ef0b92cb3ec89ff2caa5b57fa6bf12a88 (patch) | |
tree | cfa54b36e9a3f3aa781fd91019f15a3887c58a0f /target-ppc | |
parent | target-ppc: Optimize rlwnm MB=0 ME=31 (diff) | |
download | qemu-03039e5ef0b92cb3ec89ff2caa5b57fa6bf12a88.tar.gz qemu-03039e5ef0b92cb3ec89ff2caa5b57fa6bf12a88.tar.xz qemu-03039e5ef0b92cb3ec89ff2caa5b57fa6bf12a88.zip |
target-ppc: Clean Up mullw
Eliminate the unecessary ext32s TCG operation and make the multiplication
operation explicitly 32 bit.
Signed-off-by: Tom Musta <tommusta@gmail.com>
Suggested-by: Richard Henderson <rth@twiddle.net>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'target-ppc')
-rw-r--r-- | target-ppc/translate.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/target-ppc/translate.c b/target-ppc/translate.c index 57cb381447..ced295f079 100644 --- a/target-ppc/translate.c +++ b/target-ppc/translate.c @@ -1138,9 +1138,8 @@ static void gen_mullw(DisasContext *ctx) tcg_temp_free(t0); tcg_temp_free(t1); #else - tcg_gen_mul_tl(cpu_gpr[rD(ctx->opcode)], cpu_gpr[rA(ctx->opcode)], - cpu_gpr[rB(ctx->opcode)]); - tcg_gen_ext32s_tl(cpu_gpr[rD(ctx->opcode)], cpu_gpr[rD(ctx->opcode)]); + tcg_gen_mul_i32(cpu_gpr[rD(ctx->opcode)], cpu_gpr[rA(ctx->opcode)], + cpu_gpr[rB(ctx->opcode)]); #endif if (unlikely(Rc(ctx->opcode) != 0)) gen_set_Rc0(ctx, cpu_gpr[rD(ctx->opcode)]); |