MIPS: Respect the "set mips compression" command
authorMaciej W. Rozycki <macro@codesourcery.com>
Fri, 25 Jul 2014 17:57:06 +0000 (18:57 +0100)
committerMaciej W. Rozycki <macro@codesourcery.com>
Fri, 25 Jul 2014 17:57:06 +0000 (18:57 +0100)
This fixes gdbarch matching, making sure one for the opposite compressed
ISA variation is not chosen.  That in turn makes "set mips compression"
work; right now the setting sticks to the initial value, either inferred
from the ELF header of the binary first loaded or the default value if
no binary has been used.  This only affects debugging with no symbol
table available or no binary chosen at all, as otherwise symbol
annotations determine the compressed ISA variation.

* mips-tdep.c (mips_gdbarch_init): Also check the compressed ISA
variation in gdbarch matching.

gdb/ChangeLog
gdb/mips-tdep.c

index 47205a1cbb00e3ead335d750d3d336fbcee68efd..a73b37f25aab630356b4291064b66a951e0672d4 100644 (file)
@@ -1,3 +1,8 @@
+2014-07-25  Maciej W. Rozycki  <macro@codesourcery.com>
+
+       * mips-tdep.c (mips_gdbarch_init): Also check the compressed ISA
+       variation in gdbarch matching.
+
 2014-07-25  Tom Tromey  <tromey@redhat.com>
 
        * exec.c (using_exec_ops): Remove.
index c3e8e77d9389573f247a27a86824aff1657d943d..9a530a8055c6ec45778e156d2ef447bdb09db113 100644 (file)
@@ -8296,12 +8296,14 @@ mips_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
        arches != NULL;
        arches = gdbarch_list_lookup_by_info (arches->next, &info))
     {
-      /* MIPS needs to be pedantic about which ABI the object is
-         using.  */
+      /* MIPS needs to be pedantic about which ABI and the compressed
+         ISA variation the object is using.  */
       if (gdbarch_tdep (arches->gdbarch)->elf_flags != elf_flags)
        continue;
       if (gdbarch_tdep (arches->gdbarch)->mips_abi != mips_abi)
        continue;
+      if (gdbarch_tdep (arches->gdbarch)->mips_isa != mips_isa)
+       continue;
       /* Need to be pedantic about which register virtual size is
          used.  */
       if (gdbarch_tdep (arches->gdbarch)->mips64_transfers_32bit_regs_p