aboutsummaryrefslogtreecommitdiff
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
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.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/spu-tdep.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4ec0c4d..0e5fc68 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2007-01-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * spu-tdep.c (spu_analyze_prologue): Fix erroneous backtrace
+ past entry function with recent newlib.
+
2007-01-11 Vladimir Prus <vladimir@codesourcery.com>
* gdb.texinfo (GDB/MI Variable Objects): Improve the
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. */