[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 07/19] ppc: Fix xsmaddmdp and friends
From: |
David Gibson |
Subject: |
[Qemu-devel] [PULL 07/19] ppc: Fix xsmaddmdp and friends |
Date: |
Thu, 29 Aug 2019 16:08:15 +1000 |
From: "Paul A. Clarke" <address@hidden>
A class of instructions of the form:
op Target,A,B
which operate like:
Target = Target * A + B
have a bit set which distinguishes them from instructions that operate as:
Target = Target * B + A
This bit is not being checked properly (using PPC_BIT macro), so all
instructions in this class are operating incorrectly as the second form
above. The bit was being checked as if it were part of a 64-bit
instruction opcode, rather than a proper 32-bit opcode. Fix by using the
macro (PPC_BIT32) which treats the opcode as a 32-bit quantity.
Fixes: c9f4e4d8b632 ("target/ppc: improve VSX_FMADD with new
GEN_VSX_HELPER_VSX_MADD macro")
Signed-off-by: Paul A. Clarke <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Tested-by: Laurent Vivier <address@hidden>
Signed-off-by: David Gibson <address@hidden>
---
target/ppc/translate/vsx-impl.inc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/ppc/translate/vsx-impl.inc.c
b/target/ppc/translate/vsx-impl.inc.c
index 3922686ad6..8287e272f5 100644
--- a/target/ppc/translate/vsx-impl.inc.c
+++ b/target/ppc/translate/vsx-impl.inc.c
@@ -1308,7 +1308,7 @@ static void gen_##name(DisasContext *ctx)
\
} \
xt = gen_vsr_ptr(xT(ctx->opcode)); \
xa = gen_vsr_ptr(xA(ctx->opcode)); \
- if (ctx->opcode & PPC_BIT(25)) { \
+ if (ctx->opcode & PPC_BIT32(25)) { \
/* \
* AxT + B \
*/ \
--
2.21.0
- [Qemu-devel] [PULL 00/19] ppc-for-4.2 queue 20190829, David Gibson, 2019/08/29
- [Qemu-devel] [PULL 03/19] ppc/pnv: add more dummy XSCOM addresses for the P9 CAPP, David Gibson, 2019/08/29
- [Qemu-devel] [PULL 05/19] ppc/pnv: Introduce PowerNV machines with fixed CPU models, David Gibson, 2019/08/29
- [Qemu-devel] [PULL 01/19] ppc/pnv: Set default ram size to 1.75GB, David Gibson, 2019/08/29
- [Qemu-devel] [PULL 07/19] ppc: Fix xsmaddmdp and friends,
David Gibson <=
- [Qemu-devel] [PULL 06/19] tests/boot-serial-test: add support for all the PowerNV machines, David Gibson, 2019/08/29
- [Qemu-devel] [PULL 11/19] target/ppc: Set float_tininess_before_rounding at cpu reset, David Gibson, 2019/08/29
- [Qemu-devel] [PULL 04/19] ppc/pnv: Generate phandle for the "interrupt-parent" property, David Gibson, 2019/08/29
- [Qemu-devel] [PULL 08/19] ppc: Fix xscvdpspn for SNAN, David Gibson, 2019/08/29
- [Qemu-devel] [PULL 10/19] pseries: Fix compat_pvr on reset, David Gibson, 2019/08/29
- [Qemu-devel] [PULL 09/19] spapr_pci: remove all child functions in function zero unplug, David Gibson, 2019/08/29
- [Qemu-devel] [PULL 12/19] target/ppc: Fix do_float_check_status vs inexact, David Gibson, 2019/08/29
- [Qemu-devel] [PULL 13/19] target/ppc: Refactor emulation of vmrgew and vmrgow instructions, David Gibson, 2019/08/29
- [Qemu-devel] [PULL 18/19] spapr/pci: Convert types to QEMU coding style, David Gibson, 2019/08/29
- [Qemu-devel] [PULL 14/19] pseries: Update SLOF firmware image, David Gibson, 2019/08/29