aboutsummaryrefslogtreecommitdiff
path: root/gdb/rs6000-tdep.c
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2002-10-02 21:18:57 +0000
committerAndrew Cagney <cagney@redhat.com>2002-10-02 21:18:57 +0000
commit6f99cb26f2eff3e4b8ccd5ea86dd345ba9bb8fe9 (patch)
tree78f102c29cd15afc5620f369f751d647be0ca5bc /gdb/rs6000-tdep.c
parentc86f794bf7db6474c492e4ad8ca412a464bc9cc1 (diff)
downloadfsf-binutils-gdb-6f99cb26f2eff3e4b8ccd5ea86dd345ba9bb8fe9.zip
fsf-binutils-gdb-6f99cb26f2eff3e4b8ccd5ea86dd345ba9bb8fe9.tar.gz
fsf-binutils-gdb-6f99cb26f2eff3e4b8ccd5ea86dd345ba9bb8fe9.tar.bz2
2002-10-02 Andrew Cagney <ac131313@redhat.com>
* rs6000-tdep.c (skip_prologue): Bias alloca_reg by ppc_gp0_regnum.
Diffstat (limited to 'gdb/rs6000-tdep.c')
-rw-r--r--gdb/rs6000-tdep.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 57d3500..152eb0e 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -465,6 +465,7 @@ skip_prologue (CORE_ADDR pc, CORE_ADDR lim_pc, struct rs6000_framedata *fdata)
int prev_insn_was_prologue_insn = 1;
int num_skip_non_prologue_insns = 0;
const struct bfd_arch_info *arch_info = gdbarch_bfd_arch_info (current_gdbarch);
+ struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
/* Attempt to find the end of the prologue when no limit is specified.
Note that refine_prologue_limit() has been written so that it may
@@ -694,7 +695,7 @@ skip_prologue (CORE_ADDR pc, CORE_ADDR lim_pc, struct rs6000_framedata *fdata)
{ /* mr r31, r1 */
fdata->frameless = 0;
framep = 1;
- fdata->alloca_reg = 31;
+ fdata->alloca_reg = (tdep->ppc_gp0_regnum + 31);
continue;
/* Another way to set up the frame pointer. */
@@ -703,7 +704,8 @@ skip_prologue (CORE_ADDR pc, CORE_ADDR lim_pc, struct rs6000_framedata *fdata)
{ /* addi rX, r1, 0x0 */
fdata->frameless = 0;
framep = 1;
- fdata->alloca_reg = (op & ~0x38010000) >> 21;
+ fdata->alloca_reg = (tdep->ppc_gp0_regnum
+ + ((op & ~0x38010000) >> 21));
continue;
}
/* AltiVec related instructions. */