aboutsummaryrefslogtreecommitdiff
path: root/gdb/spu-tdep.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2007-01-11 20:48:50 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2007-01-11 20:48:50 +0000
commit12102450ba06133ee4b2d173964a79ec3df1b4cd (patch)
tree59b7043553394fe8f5343695c9feac62e1a7d4b3 /gdb/spu-tdep.c
parent81121995ba146b0c5d0ed18730b07c2c3fcdb974 (diff)
downloadgdb-12102450ba06133ee4b2d173964a79ec3df1b4cd.zip
gdb-12102450ba06133ee4b2d173964a79ec3df1b4cd.tar.gz
gdb-12102450ba06133ee4b2d173964a79ec3df1b4cd.tar.bz2
* spu-tdep.c (spu_analyze_prologue): Fix erroneous backtrace
past entry function with recent newlib.
Diffstat (limited to 'gdb/spu-tdep.c')
-rw-r--r--gdb/spu-tdep.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gdb/spu-tdep.c b/gdb/spu-tdep.c
index de534dd..222b95f 100644
--- a/gdb/spu-tdep.c
+++ b/gdb/spu-tdep.c
@@ -478,11 +478,17 @@ spu_analyze_prologue (CORE_ADDR start_pc, CORE_ADDR end_pc,
else if (is_ri16 (insn, op_il, &rt, &immed))
{
reg_immed[rt] = immed;
+
+ if (rt == SPU_RAW_SP_REGNUM && !found_sp)
+ found_sp = 1;
}
else if (is_ri18 (insn, op_ila, &rt, &immed))
{
reg_immed[rt] = immed & 0x3ffff;
+
+ if (rt == SPU_RAW_SP_REGNUM && !found_sp)
+ found_sp = 1;
}
/* STQD is used to save registers to the stack. */