summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 296fc4c8bc2..f6260c4ad01 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 906c1c76120..c2f180251bf 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 0bf0f78a0e7..5b8f4216ae1 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 32a97d7c6f5..8d393050c68 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 4b0652120e0..f5a8e4df16c 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 12e0ec2ff59..3aeeedf560c 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);
+ }
}