From 4072f9208f12fdd60e68c73807fed4624607d290 Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Fri, 28 Nov 2014 16:17:37 +0800 Subject: [PATCH] [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 * arm-tdep.c (arm_analyze_prologue): Move local variables 'framereg' and 'framesize' to inner block. Move code to inner block too. --- gdb/ChangeLog | 6 ++++++ gdb/arm-tdep.c | 33 +++++++++++++++++---------------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 552c13b2239..c35f0aeaef4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2014-11-29 Yao Qi + + * 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 * eval.c: Include gdbthread.h. diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 10028703174..7ec3bff5007 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -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; -- 2.30.2