2002-10-02 Andrew Cagney <ac131313@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Wed, 2 Oct 2002 21:18:57 +0000 (21:18 +0000)
committerAndrew Cagney <cagney@redhat.com>
Wed, 2 Oct 2002 21:18:57 +0000 (21:18 +0000)
* rs6000-tdep.c (skip_prologue): Bias alloca_reg by ppc_gp0_regnum.

gdb/ChangeLog
gdb/rs6000-tdep.c

index 041f2e6..f210799 100644 (file)
@@ -1,3 +1,7 @@
+2002-10-02  Andrew Cagney  <ac131313@redhat.com>
+
+       * rs6000-tdep.c (skip_prologue): Bias alloca_reg by ppc_gp0_regnum.
+
 2002-10-02  Marko Mlinar <markom@opencores.org>
 
         * MAINTAINERS: Add myself to the Write After Approval list.
index 57d3500..152eb0e 100644 (file)
@@ -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.  */