gdb: Add gen_return_address for powerpc.
[deliverable/binutils-gdb.git] / gdb / rs6000-tdep.c
index 3bcd20515b602b2296e60f20e715a377b2109b1c..565c6201bcee3d8ab5fad68babac8619c69c5331 100644 (file)
@@ -63,6 +63,9 @@
 #include "frame-unwind.h"
 #include "frame-base.h"
 
+#include "ax.h"
+#include "ax-gdb.h"
+
 #include "features/rs6000/powerpc-32.c"
 #include "features/rs6000/powerpc-altivec32.c"
 #include "features/rs6000/powerpc-vsx32.c"
@@ -2963,6 +2966,18 @@ rs6000_ax_pseudo_register_collect (struct gdbarch *gdbarch,
 }
 
 
+static void
+rs6000_gen_return_address (struct gdbarch *gdbarch,
+                          struct agent_expr *ax, struct axs_value *value,
+                          CORE_ADDR scope)
+{
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  value->type = register_type (gdbarch, tdep->ppc_lr_regnum);
+  value->kind = axs_lvalue_register;
+  value->u.reg = tdep->ppc_lr_regnum;
+}
+
+
 /* Convert a DBX STABS register number to a GDB register number.  */
 static int
 rs6000_stab_reg_to_regnum (struct gdbarch *gdbarch, int num)
@@ -5972,6 +5987,8 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
              rs6000_ax_pseudo_register_collect);
     }
 
+  set_gdbarch_gen_return_address (gdbarch, rs6000_gen_return_address);
+
   set_gdbarch_have_nonsteppable_watchpoint (gdbarch, 1);
 
   /* Select instruction printer.  */
This page took 0.024681 seconds and 4 git commands to generate.