コード例 #1
0
static unsigned int local_entry_offset(const Elf64_Sym *sym)
{
	/* sym->st_other indicates offset to local entry point
	 * (otherwise it will assume r12 is the address of the start
	 * of function and try to derive r2 from it). */
	return PPC64_LOCAL_ENTRY_OFFSET(sym->st_other);
}
コード例 #2
0
static void
ppc_elfv2_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym)
{
  elf_symbol_type *elf_sym = (elf_symbol_type *)sym;

  /* If the symbol is marked as having a local entry point, set a target
     flag in the msymbol.  We currently only support local entry point
     offsets of 8 bytes, which is the only entry point offset ever used
     by current compilers.  If/when other offsets are ever used, we will
     have to use additional target flag bits to store them.  */
  switch (PPC64_LOCAL_ENTRY_OFFSET (elf_sym->internal_elf_sym.st_other))
    {
    default:
      break;
    case 8:
      MSYMBOL_TARGET_FLAG_1 (msym) = 1;
      break;
    }
}
コード例 #3
0
static unsigned int local_entry_offset(struct mem_sym *sym)
{
	/* If this symbol has a local entry point, use it. */
	return PPC64_LOCAL_ENTRY_OFFSET(sym->st_other);
}