[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 5/8] target-ppc: Bug Fix: mullwo
From: |
Tom Musta |
Subject: |
[Qemu-ppc] [PATCH 5/8] target-ppc: Bug Fix: mullwo |
Date: |
Mon, 11 Aug 2014 14:23:26 -0500 |
On 64-bit implementations, the mullwo result is the 64 bit product of
the signed 32 bit operands. Fix the implementation to properly deposit
the upper 32 bits into the target register.
Signed-off-by: Tom Musta <address@hidden>
---
target-ppc/translate.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index 41a5aea..4904665 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -1148,11 +1148,20 @@ static void gen_mullwo(DisasContext *ctx)
{
TCGv_i32 t0 = tcg_temp_new_i32();
TCGv_i32 t1 = tcg_temp_new_i32();
+#if defined(TARGET_PPC64)
+ TCGv_i64 t2 = tcg_temp_new_i64();
+#endif
tcg_gen_trunc_tl_i32(t0, cpu_gpr[rA(ctx->opcode)]);
tcg_gen_trunc_tl_i32(t1, cpu_gpr[rB(ctx->opcode)]);
tcg_gen_muls2_i32(t0, t1, t0, t1);
tcg_gen_ext_i32_tl(cpu_gpr[rD(ctx->opcode)], t0);
+#if defined(TARGET_PPC64)
+ tcg_gen_ext_i32_tl(t2, t1);
+ tcg_gen_deposit_i64(cpu_gpr[rD(ctx->opcode)],
+ cpu_gpr[rD(ctx->opcode)], t2, 32, 32);
+ tcg_temp_free(t2);
+#endif
tcg_gen_sari_i32(t0, t0, 31);
tcg_gen_setcond_i32(TCG_COND_NE, t0, t0, t1);
--
1.7.1
- [Qemu-ppc] [PATCH 1/8] target-ppc: Bug Fix: rlwinm, (continued)
- [Qemu-ppc] [PATCH 1/8] target-ppc: Bug Fix: rlwinm, Tom Musta, 2014/08/11
- [Qemu-ppc] [PATCH 2/8] target-ppc: Bug Fix: rlwnm, Tom Musta, 2014/08/11
- [Qemu-ppc] [PATCH 3/8] target-ppc: Bug Fix: rlwimi, Tom Musta, 2014/08/11
- [Qemu-ppc] [PATCH 4/8] target-ppc: Bug Fix: mullw, Tom Musta, 2014/08/11
- [Qemu-ppc] [PATCH 5/8] target-ppc: Bug Fix: mullwo,
Tom Musta <=
- [Qemu-ppc] [PATCH 6/8] target-ppc: Bug Fix: mulldo OV Detection, Tom Musta, 2014/08/11
- [Qemu-ppc] [PATCH 7/8] target-ppc: Bug Fix: srawi, Tom Musta, 2014/08/11
- [Qemu-ppc] [PATCH 8/8] target-ppc: Bug Fix: srad, Tom Musta, 2014/08/11
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 0/8] target-ppc: Bug Fixes for 64 Bit FXU Instructions, David Gibson, 2014/08/11