summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Musta <tommusta@gmail.com>2014-05-14 12:14:42 -0500
committerAlexander Graf <agraf@suse.de>2014-06-16 13:24:38 +0200
commit6ab39b1bd3474aab57e10cc90377b9a3b94a72d4 (patch)
treeed6a6026cc4777d48d1f646178508496868c827c
parent00d4f525ec8d9394c4e86e36f01ac68d30128dd6 (diff)
downloadhqemu-6ab39b1bd3474aab57e10cc90377b9a3b94a72d4.zip
hqemu-6ab39b1bd3474aab57e10cc90377b9a3b94a72d4.tar.gz
target-ppc: Fix popcntb Opcode Bug
The popcntb instruction is erroneously encoded with opcode extension (opc1,opc2) = (0x03,0x03). Bits 21-30 of popcntb are 122 = 0b00011-0b11010 and therefore this should be encoded as (opc1,opc2) = (0x1A, 0x03). Signed-off-by: Tom Musta <tommusta@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
-rw-r--r--target-ppc/translate.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index a240283..3086ec5 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -10124,7 +10124,7 @@ GEN_HANDLER(ori, 0x18, 0xFF, 0xFF, 0x00000000, PPC_INTEGER),
GEN_HANDLER(oris, 0x19, 0xFF, 0xFF, 0x00000000, PPC_INTEGER),
GEN_HANDLER(xori, 0x1A, 0xFF, 0xFF, 0x00000000, PPC_INTEGER),
GEN_HANDLER(xoris, 0x1B, 0xFF, 0xFF, 0x00000000, PPC_INTEGER),
-GEN_HANDLER(popcntb, 0x1F, 0x03, 0x03, 0x0000F801, PPC_POPCNTB),
+GEN_HANDLER(popcntb, 0x1F, 0x1A, 0x03, 0x0000F801, PPC_POPCNTB),
GEN_HANDLER(popcntw, 0x1F, 0x1A, 0x0b, 0x0000F801, PPC_POPCNTWD),
GEN_HANDLER_E(prtyw, 0x1F, 0x1A, 0x04, 0x0000F801, PPC_NONE, PPC2_ISA205),
#if defined(TARGET_PPC64)
OpenPOWER on IntegriCloud