* gas/mips/mips.exp (run_dump_test_arch): Check for the presence
[deliverable/binutils-gdb.git] / gdb / arm-tdep.c
index 19b9c851d615bbdc99804156811af67df5b73467..2df96cd0e62ff766a87e307a966ad44b12a4e11b 100644 (file)
@@ -124,7 +124,8 @@ static const char *arm_mode_strings[] =
   {
     "auto",
     "arm",
-    "thumb"
+    "thumb",
+    NULL
   };
 
 static const char *arm_fallback_mode_string = "auto";
@@ -536,6 +537,9 @@ thumb_instruction_changes_pc (unsigned short inst)
   if ((inst & 0xff00) == 0x4700)       /* bx REG, blx REG */
     return 1;
 
+  if ((inst & 0xff87) == 0x4687)       /* mov pc, REG */
+    return 1;
+
   if ((inst & 0xf500) == 0xb100)       /* CBNZ or CBZ.  */
     return 1;
 
@@ -3571,6 +3575,15 @@ thumb_get_next_pc_raw (struct frame_info *frame, CORE_ADDR pc, int insert_bkpt)
       else
        nextpc = get_frame_register_unsigned (frame, bits (inst1, 3, 6));
     }
+  else if ((inst1 & 0xff87) == 0x4687) /* mov pc, REG */
+    {
+      if (bits (inst1, 3, 6) == 0x0f)
+       nextpc = pc_val;
+      else
+       nextpc = get_frame_register_unsigned (frame, bits (inst1, 3, 6));
+
+      nextpc = MAKE_THUMB_ADDR (nextpc);
+    }
   else if ((inst1 & 0xf500) == 0xb100)
     {
       /* CBNZ or CBZ.  */
This page took 0.025802 seconds and 4 git commands to generate.