summaryrefslogtreecommitdiff
path: root/gdb/v850-tdep.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2007-06-15 22:32:02 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2007-06-15 22:32:02 +0000
commite103ff33dd5144e1246cf72bc661f1c06b8ca4d1 (patch)
treeb9d885a53b56045181059ae1214cfe5e5236410c /gdb/v850-tdep.c
parentf822643168e1daa972a5e4e9f885537af61eb0dd (diff)
downloadgdb-e103ff33dd5144e1246cf72bc661f1c06b8ca4d1.tar.gz
* mips-tdep.c (mips16_scan_prologue): Replace read_next_frame_reg
by frame_unwind_register_signed calls. (mips32_scan_prologue): Likewise. Skip analysis of alloca stack frame allocations when called with NULL NEXT_FRAME parameter. (read_next_frame_reg): Remove. * sh-tdep.c (sh_analyze_prologue): Add FPSCR parameter. Use it instead of reading the FPSCR register. (sh_frame_cache): Pass unwound FPSCR register value to sh_analyze_prologue. (sh_skip_prologue): Pass dummy FPSCR value to sh_analyze_prologue. * v850-tdep.c (v850_analyze_prologue): Add CTBP parameter. Use it instead of reading the CTBP register. (v850_frame_cache): Pass unwound CTBP register value to v850_analyze_prologue.
Diffstat (limited to 'gdb/v850-tdep.c')
-rw-r--r--gdb/v850-tdep.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gdb/v850-tdep.c b/gdb/v850-tdep.c
index 752223c8591..7aa7dc33bbc 100644
--- a/gdb/v850-tdep.c
+++ b/gdb/v850-tdep.c
@@ -456,7 +456,7 @@ v850_is_save_register (int reg)
static CORE_ADDR
v850_analyze_prologue (CORE_ADDR func_addr, CORE_ADDR pc,
- struct v850_frame_cache *pi)
+ struct v850_frame_cache *pi, ULONGEST ctbp)
{
CORE_ADDR prologue_end, current_pc;
struct pifsr pifsrs[E_NUM_REGS + 1];
@@ -517,7 +517,6 @@ v850_analyze_prologue (CORE_ADDR func_addr, CORE_ADDR pc,
}
else if ((insn & 0xffc0) == 0x0200 && !regsave_func_p)
{ /* callt <imm6> */
- long ctbp = read_register (E_CTBP_REGNUM);
long adr = ctbp + ((insn & 0x3f) << 1);
save_pc = current_pc;
@@ -859,7 +858,11 @@ v850_frame_cache (struct frame_info *next_frame, void **this_cache)
cache->pc = frame_func_unwind (next_frame, NORMAL_FRAME);
current_pc = frame_pc_unwind (next_frame);
if (cache->pc != 0)
- v850_analyze_prologue (cache->pc, current_pc, cache);
+ {
+ ULONGEST ctbp;
+ ctbp = frame_unwind_register_unsigned (next_frame, E_CTBP_REGNUM);
+ v850_analyze_prologue (cache->pc, current_pc, cache, ctbp);
+ }
if (!cache->uses_fp)
{