[ppc/prologue] Support the "oril r29, r1, 0x0" insn.
authorJoel Brobecker <brobecker@gnat.com>
Tue, 13 Mar 2012 16:15:35 +0000 (16:15 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Tue, 13 Mar 2012 16:15:35 +0000 (16:15 +0000)
gdb/
2012-03-13  Chris January  <chris.january@allinea.com>

* rs6000-tdep.c (skip_prologue): Support the oril r29, r1, 0x0
instruction.

gdb/ChangeLog
gdb/rs6000-tdep.c

index 8e466c89412ef3c674f75685bf5300045f11c14e..32b4480823f817becc68cae610278f8aaf94df91 100644 (file)
@@ -1,3 +1,8 @@
+2012-03-13  Chris January  <chris.january@allinea.com>
+
+       * rs6000-tdep.c (skip_prologue): Support the oril r29, r1, 0x0
+       instruction.
+
 2012-03-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * common/linux-procfs.c (linux_proc_get_int): New, from
index a8ff777123c13a243764fd20b9090629369a6c27..2b1a0a5822e78ebe0769f52e79f65848e1ae8e77 100644 (file)
@@ -1822,6 +1822,15 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
 
          /* Set up frame pointer */
        }
+      else if (op == 0x603d0000)       /* oril r29, r1, 0x0 */
+       {
+         fdata->frameless = 0;
+         framep = 1;
+         fdata->alloca_reg = (tdep->ppc_gp0_regnum + 29);
+         continue;
+
+         /* Another way to set up the frame pointer.  */
+       }
       else if (op == 0x603f0000        /* oril r31, r1, 0x0 */
               || op == 0x7c3f0b78)
        {                       /* mr r31, r1 */