* mips-tdep.c (mips_pc_is_mips16): Reverse the order of checks
authorMaciej W. Rozycki <macro@linux-mips.org>
Tue, 6 Dec 2011 23:19:43 +0000 (23:19 +0000)
committerMaciej W. Rozycki <macro@linux-mips.org>
Tue, 6 Dec 2011 23:19:43 +0000 (23:19 +0000)
performed to determine whether an address refers to standard
MIPS or MIPS16 code.
(mips16_next_pc): Use mips_pc_is_mips16 instead of
is_mips16_addr.

gdb/ChangeLog
gdb/mips-tdep.c

index cd9507a..03ab880 100644 (file)
@@ -1,3 +1,11 @@
+2011-12-06  Maciej W. Rozycki  <macro@codesourcery.com>
+
+       * mips-tdep.c (mips_pc_is_mips16): Reverse the order of checks
+       performed to determine whether an address refers to standard
+       MIPS or MIPS16 code.
+       (mips16_next_pc): Use mips_pc_is_mips16 instead of
+       is_mips16_addr.
+
 2011-12-06  Pedro Alves  <pedro@codesourcery.com>
 
        * breakpoint.c (breakpoint_restore_shadows): Rename to ...
index 7e74bc4..2e23836 100644 (file)
@@ -989,18 +989,15 @@ mips_pc_is_mips16 (CORE_ADDR memaddr)
 {
   struct minimal_symbol *sym;
 
-  /* If bit 0 of the address is set, assume this is a MIPS16 address.  */
-  if (is_mips16_addr (memaddr))
-    return 1;
-
-  /* A flag indicating that this is a MIPS16 function is stored by elfread.c in
-     the high bit of the info field.  Use this to decide if the function is
-     MIPS16 or normal MIPS.  */
+  /* A flag indicating that this is a MIPS16 function is stored by
+     elfread.c in the high bit of the info field.  Use this to decide
+     if the function is MIPS16 or normal MIPS.  Otherwise if bit 0 of
+     the address is set, assume this is a MIPS16 address.  */
   sym = lookup_minimal_symbol_by_pc (memaddr);
   if (sym)
     return msymbol_is_special (sym);
   else
-    return 0;
+    return is_mips16_addr (memaddr);
 }
 
 /* MIPS believes that the PC has a sign extended value.  Perhaps the
@@ -1579,7 +1576,7 @@ mips16_next_pc (struct frame_info *frame, CORE_ADDR pc)
 static CORE_ADDR
 mips_next_pc (struct frame_info *frame, CORE_ADDR pc)
 {
-  if (is_mips16_addr (pc))
+  if (mips_pc_is_mips16 (pc))
     return mips16_next_pc (frame, pc);
   else
     return mips32_next_pc (frame, pc);