aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2007-01-09 20:19:15 +0000
committerDaniel Jacobowitz <drow@false.org>2007-01-09 20:19:15 +0000
commit5efde11249adf7e041cbbce5e089ac956f9b834b (patch)
treef629bdca5d73fc8b3d9b85cba293751b858d6e3e
parent6aba47ca06d9150c6196a374b745c2711b46e045 (diff)
downloadfsf-binutils-gdb-5efde11249adf7e041cbbce5e089ac956f9b834b.zip
fsf-binutils-gdb-5efde11249adf7e041cbbce5e089ac956f9b834b.tar.gz
fsf-binutils-gdb-5efde11249adf7e041cbbce5e089ac956f9b834b.tar.bz2
* alpha-mdebug-tdep.c (alpha_mdebug_frame_prev_register): Use
frame_unwind_register to recurse. * alpha-tdep.c (alpha_sigtramp_frame_prev_register): Likewise. (alpha_heuristic_frame_prev_register): Likewise. * h8300-tdep.c (h8300_frame_prev_register): Likewise. * m32c-tdep.c (m32c_prev_register): Likewise. * frame.c (frame_register_unwind_location): Remove FIXME.
-rw-r--r--gdb/ChangeLog10
-rw-r--r--gdb/alpha-mdebug-tdep.c8
-rw-r--r--gdb/alpha-tdep.c16
-rw-r--r--gdb/frame.c5
-rw-r--r--gdb/h8300-tdep.c8
-rw-r--r--gdb/m32c-tdep.c10
6 files changed, 43 insertions, 14 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 296fc4c..f6260c4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,4 +1,14 @@
2007-01-09 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * alpha-mdebug-tdep.c (alpha_mdebug_frame_prev_register): Use
+ frame_unwind_register to recurse.
+ * alpha-tdep.c (alpha_sigtramp_frame_prev_register): Likewise.
+ (alpha_heuristic_frame_prev_register): Likewise.
+ * h8300-tdep.c (h8300_frame_prev_register): Likewise.
+ * m32c-tdep.c (m32c_prev_register): Likewise.
+ * frame.c (frame_register_unwind_location): Remove FIXME.
+
+2007-01-09 Daniel Jacobowitz <dan@codesourcery.com>
Eli Zaretskii <eliz@gnu.org>
* copyright.sh: New file.
diff --git a/gdb/alpha-mdebug-tdep.c b/gdb/alpha-mdebug-tdep.c
index 906c1c7..c2f1802 100644
--- a/gdb/alpha-mdebug-tdep.c
+++ b/gdb/alpha-mdebug-tdep.c
@@ -294,8 +294,12 @@ alpha_mdebug_frame_prev_register (struct frame_info *next_frame,
}
/* Otherwise assume the next frame has the same register value. */
- frame_register (next_frame, regnum, optimizedp, lvalp, addrp,
- realnump, bufferp);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = regnum;
+ if (bufferp)
+ frame_unwind_register (next_frame, *realnump, bufferp);
}
static const struct frame_unwind alpha_mdebug_frame_unwind = {
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index 0bf0f78..5b8f421 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -864,8 +864,12 @@ alpha_sigtramp_frame_prev_register (struct frame_info *next_frame,
current description of it in alpha_sigtramp_frame_unwind_cache
doesn't include it. Too bad. Fall back on whatever's in the
outer frame. */
- frame_register (next_frame, regnum, optimizedp, lvalp, addrp,
- realnump, bufferp);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = regnum;
+ if (bufferp)
+ frame_unwind_register (next_frame, *realnump, bufferp);
}
static const struct frame_unwind alpha_sigtramp_frame_unwind = {
@@ -1218,8 +1222,12 @@ alpha_heuristic_frame_prev_register (struct frame_info *next_frame,
}
/* Otherwise assume the next frame has the same register value. */
- frame_register_unwind (next_frame, regnum, optimizedp, lvalp, addrp,
- realnump, bufferp);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = regnum;
+ if (bufferp)
+ frame_unwind_register (next_frame, *realnump, bufferp);
}
static const struct frame_unwind alpha_heuristic_frame_unwind = {
diff --git a/gdb/frame.c b/gdb/frame.c
index 32a97d7..8d39305 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -1103,10 +1103,7 @@ reinit_frame_cache (void)
/* Find where a register is saved (in memory or another register).
The result of frame_register_unwind is just where it is saved
- relative to this particular frame.
-
- FIXME: alpha, m32c, and h8300 actually do the transitive operation
- themselves. */
+ relative to this particular frame. */
static void
frame_register_unwind_location (struct frame_info *this_frame, int regnum,
diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c
index 4b06521..f5a8e4d 100644
--- a/gdb/h8300-tdep.c
+++ b/gdb/h8300-tdep.c
@@ -529,8 +529,12 @@ h8300_frame_prev_register (struct frame_info *next_frame, void **this_cache,
return;
}
- frame_register_unwind (next_frame, regnum,
- optimizedp, lvalp, addrp, realnump, valuep);
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = regnum;
+ if (valuep)
+ frame_unwind_register (next_frame, *realnump, valuep);
}
static const struct frame_unwind h8300_frame_unwind = {
diff --git a/gdb/m32c-tdep.c b/gdb/m32c-tdep.c
index 12e0ec2..3aeeedf 100644
--- a/gdb/m32c-tdep.c
+++ b/gdb/m32c-tdep.c
@@ -1919,8 +1919,14 @@ m32c_prev_register (struct frame_info *next_frame,
/* Otherwise, presume we haven't changed the value of this
register, and get it from the next frame. */
else
- frame_register_unwind (next_frame, regnum,
- optimizedp, lvalp, addrp, realnump, bufferp);
+ {
+ *optimizedp = 0;
+ *lvalp = lval_register;
+ *addrp = 0;
+ *realnump = regnum;
+ if (bufferp)
+ frame_unwind_register (next_frame, *realnump, bufferp);
+ }
}