PR28959, obdump doesn't disassemble mftb instruction
authorAlan Modra <amodra@gmail.com>
Sun, 13 Mar 2022 12:24:25 +0000 (22:54 +1030)
committerAlan Modra <amodra@gmail.com>
Sun, 13 Mar 2022 22:37:18 +0000 (09:07 +1030)
Without a -M cpu option given, powerpc objdump defaults currently to
-Mpower10 but -Many is also given.  Commit 1ff6a3b8e562 regressed
-Many disassembly of instructions that are encoded differently
depending on cpu, such as mftb which has pre- and post-power4
encodings.

PR 28959
* ppc-dis.c (lookup_powerpc): Revert 2021-05-28 change.  Instead
only look at deprecated PPC_OPCODE_RAW bit when -Many.

opcodes/ppc-dis.c

index 07f4e34a65770cf23ddb1244a5f1084e77a15639..38ddeca26231b81ef12c73c6096a6fa60a47f6ed 100644 (file)
@@ -598,8 +598,9 @@ lookup_powerpc (uint64_t insn, ppc_cpu_t dialect)
 
       if ((insn & opcode->mask) != opcode->opcode
          || ((dialect & PPC_OPCODE_ANY) == 0
-             && (opcode->flags & dialect) == 0)
-         || (opcode->deprecated & dialect) != 0)
+             && ((opcode->flags & dialect) == 0
+                 || (opcode->deprecated & dialect) != 0))
+         || (opcode->deprecated & dialect & PPC_OPCODE_RAW) != 0)
        continue;
 
       /* Check validity of operands.  */