target-ppc: Fix popcntb Opcode Bug
PATCH 1/1 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 <[email protected]>
--- target-ppc/translate.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
target-ppc/translate.c +1 -1
@@ -9880,7 +9880,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)
Signature · 1 line
1.7.1