[arm] compute framereg and framesize when needed
authorYao Qi <yao@codesourcery.com>
Fri, 28 Nov 2014 08:17:37 +0000 (16:17 +0800)
committerYao Qi <yao@codesourcery.com>
Sat, 29 Nov 2014 14:26:35 +0000 (22:26 +0800)
I find local variables framereg and framesize is only used when cache
isn't NULL.  This patch to move the code into "if (cache)" block.

gdb:

2014-11-29  Yao Qi  <yao@codesourcery.com>

* arm-tdep.c (arm_analyze_prologue): Move local variables
'framereg' and 'framesize' to inner block.  Move code to
inner block too.

gdb/ChangeLog
gdb/arm-tdep.c

index 552c13b2239f894c3749f32088c66e5d688d532a..c35f0aeaef45811339b354d1dab8b3f7d7fe076f 100644 (file)
@@ -1,3 +1,9 @@
+2014-11-29  Yao Qi  <yao@codesourcery.com>
+
+       * arm-tdep.c (arm_analyze_prologue): Move local variables
+       'framereg' and 'framesize' to inner block.  Move code to
+       inner block too.
+
 2014-11-28  Siva Chandra Reddy  <sivachandra@google.com>
 
        * eval.c: Include gdbthread.h.
index 100287031747bebb5e923e332c208ad5b867630d..7ec3bff50076d2c5a3f085de497085b0b52cb364 100644 (file)
@@ -1686,7 +1686,6 @@ arm_analyze_prologue (struct gdbarch *gdbarch,
   pv_t regs[ARM_FPS_REGNUM];
   struct pv_area *stack;
   struct cleanup *back_to;
-  int framereg, framesize;
   CORE_ADDR unrecognized_pc = 0;
 
   /* Search the prologue looking for instructions that set up the
@@ -1887,23 +1886,25 @@ arm_analyze_prologue (struct gdbarch *gdbarch,
   if (unrecognized_pc == 0)
     unrecognized_pc = current_pc;
 
-  /* The frame size is just the distance from the frame register
-     to the original stack pointer.  */
-  if (pv_is_register (regs[ARM_FP_REGNUM], ARM_SP_REGNUM))
-    {
-      /* Frame pointer is fp.  */
-      framereg = ARM_FP_REGNUM;
-      framesize = -regs[ARM_FP_REGNUM].k;
-    }
-  else
-    {
-      /* Try the stack pointer... this is a bit desperate.  */
-      framereg = ARM_SP_REGNUM;
-      framesize = -regs[ARM_SP_REGNUM].k;
-    }
-
   if (cache)
     {
+      int framereg, framesize;
+
+      /* The frame size is just the distance from the frame register
+        to the original stack pointer.  */
+      if (pv_is_register (regs[ARM_FP_REGNUM], ARM_SP_REGNUM))
+       {
+         /* Frame pointer is fp.  */
+         framereg = ARM_FP_REGNUM;
+         framesize = -regs[ARM_FP_REGNUM].k;
+       }
+      else
+       {
+         /* Try the stack pointer... this is a bit desperate.  */
+         framereg = ARM_SP_REGNUM;
+         framesize = -regs[ARM_SP_REGNUM].k;
+       }
+
       cache->framereg = framereg;
       cache->framesize = framesize;