diff options
author | Richard Henderson <rth@twiddle.net> | 2016-11-22 12:38:46 +0000 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2017-01-10 08:06:11 -0800 |
commit | 8d8dd793da13ab052890150fbcae9f506d0077f3 (patch) | |
tree | 57415cd5cdffb8fe619a1dfe30c476c46197774d /disas/ppc.c | |
parent | f7749a3317fe02be9c57f4413d185c2ff643d634 (diff) | |
download | qemu-8d8dd793da13ab052890150fbcae9f506d0077f3.zip qemu-8d8dd793da13ab052890150fbcae9f506d0077f3.tar.gz qemu-8d8dd793da13ab052890150fbcae9f506d0077f3.tar.bz2 |
disas/ppc: Handle popcnt and cnttz
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'disas/ppc.c')
-rw-r--r-- | disas/ppc.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/disas/ppc.c b/disas/ppc.c index bd05623..ed7e0d0 100644 --- a/disas/ppc.c +++ b/disas/ppc.c @@ -1955,6 +1955,9 @@ extract_tbr (unsigned long insn, #define POWER4 PPC_OPCODE_POWER4 #define POWER5 PPC_OPCODE_POWER5 #define POWER6 PPC_OPCODE_POWER6 +/* Documentation purposes only; we don't actually check the isa for disas. */ +#define POWER7 PPC_OPCODE_POWER6 +#define POWER9 PPC_OPCODE_POWER6 #define CELL PPC_OPCODE_CELL #define PPC32 PPC_OPCODE_32 | PPC_OPCODE_PPC #define PPC64 PPC_OPCODE_64 | PPC_OPCODE_PPC @@ -3589,6 +3592,13 @@ const struct powerpc_opcode powerpc_opcodes[] = { { "lbzux", X(31,119), X_MASK, COM, { RT, RAL, RB } }, { "popcntb", X(31,122), XRB_MASK, POWER5, { RA, RS } }, +{ "popcntw", X(31,378), XRB_MASK, POWER7, { RA, RS } }, +{ "popcntd", X(31,506), XRB_MASK, POWER7, { RA, RS } }, + +{ "cnttzw", XRC(31,538,0), XRB_MASK, POWER9, { RA, RS } }, +{ "cnttzw.", XRC(31,538,1), XRB_MASK, POWER9, { RA, RS } }, +{ "cnttzd", XRC(31,570,0), XRB_MASK, POWER9, { RA, RS } }, +{ "cnttzd.", XRC(31,570,1), XRB_MASK, POWER9, { RA, RS } }, { "not", XRC(31,124,0), X_MASK, COM, { RA, RS, RBS } }, { "nor", XRC(31,124,0), X_MASK, COM, { RA, RS, RB } }, |