[arm] compute framereg and framesize when needed

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.
This commit is contained in:
Yao Qi 2014-11-28 16:17:37 +08:00
parent 6c659fc2c7
commit 4072f9208f
2 changed files with 23 additions and 16 deletions

View 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.

View 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;