[gdb] Enable some more print_one_insn selftests
authorTom de Vries <tdevries@suse.de>
Mon, 6 Jun 2022 17:27:46 +0000 (19:27 +0200)
committerTom de Vries <tdevries@suse.de>
Mon, 6 Jun 2022 17:27:46 +0000 (19:27 +0200)
In print_one_insn_test we have this cluster of skipped tests:
...
    case bfd_arch_ia64:
    case bfd_arch_mep:
    case bfd_arch_mips:
    case bfd_arch_tic6x:
    case bfd_arch_xtensa:
      return;
...

Enable some of these, and document in more detail why they're enabled or
skipped.

Likewise, document bfd_arch_or1k because it's an odd case.

Tested on x86_64-linux.

gdb/disasm-selftests.c

index 266745d01c7840d1d1447a8d79f24b80ba9405a7..4f5667bc4e293eeb07a8cb2204f28479cb8bd527 100644 (file)
@@ -50,11 +50,29 @@ print_one_insn_test (struct gdbarch *gdbarch)
       len = sizeof (arm_insn);
       break;
     case bfd_arch_ia64:
+      /* We get:
+        internal-error: gdbarch_sw_breakpoint_from_kind:
+        Assertion `gdbarch->sw_breakpoint_from_kind != NULL' failed.  */
+      return;
     case bfd_arch_mep:
+      /* Disassembles as '*unknown*' insn, then len self-check fails.  */
+      return;
     case bfd_arch_mips:
+      if (gdbarch_bfd_arch_info (gdbarch)->mach == bfd_mach_mips16)
+       /* Disassembles insn, but len self-check fails.  */
+       return;
+      goto generic_case;
     case bfd_arch_tic6x:
+      /* Disassembles as '<undefined instruction 0x56454314>' insn, but len
+        self-check passes, so let's allow it.  */
+      goto generic_case;
     case bfd_arch_xtensa:
+      /* Disassembles insn, but len self-check fails.  */
       return;
+    case bfd_arch_or1k:
+      /* Disassembles as '*unknown*' insn, but len self-check passes, so let's
+        allow it.  */
+      goto generic_case;
     case bfd_arch_s390:
       /* nopr %r7 */
       static const gdb_byte s390_insn[] = {0x07, 0x07};