Exemplo n.º 1
0
static CORE_ADDR
ppc64_standard_linkage3_target (struct frame_info *frame, unsigned int *insn)
{
  CORE_ADDR plt_off = ppc_insn_ds_field (insn[1]);

  return ppc64_plt_entry_point (frame, plt_off);
}
Exemplo n.º 2
0
static CORE_ADDR
ppc64_standard_linkage1_target (struct frame_info *frame, unsigned int *insn)
{
  CORE_ADDR plt_off = ((ppc_insn_d_field (insn[0]) << 16)
		       + ppc_insn_ds_field (insn[2]));

  return ppc64_plt_entry_point (frame, plt_off);
}
Exemplo n.º 3
0
static CORE_ADDR
ppc64_standard_linkage4_target (struct frame_info *frame,
				CORE_ADDR pc, unsigned int *insn)
{
  struct gdbarch *gdbarch = get_frame_arch (frame);
  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);

  CORE_ADDR plt
    = ((CORE_ADDR) get_frame_register_unsigned (frame, tdep->ppc_gp0_regnum + 2)
       + (ppc_insn_d_field (insn[1]) << 16)
       + ppc_insn_ds_field (insn[2]));

  return ppc64_plt_entry_point (gdbarch, plt);
}
Exemplo n.º 4
0
static CORE_ADDR
ppc64_standard_linkage3_target (struct frame_info *frame,
				CORE_ADDR pc, unsigned int *insn)
{
  struct gdbarch *gdbarch = get_frame_arch (frame);
  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);

  /* The address of the PLT entry this linkage function references.  */
  CORE_ADDR plt
    = ((CORE_ADDR) get_frame_register_unsigned (frame,
						tdep->ppc_gp0_regnum + 2)
       + ppc_insn_ds_field (insn[1]));

  return ppc64_plt_entry_point (gdbarch, plt);
}