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