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); }
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); }
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); }
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); }