[RFA] OSF/1 - "next" over prologueless function call

Richard Henderson rth@redhat.com
Tue Dec 2 06:35:00 GMT 2003


On Mon, Dec 01, 2003 at 08:26:46PM -0800, Joel Brobecker wrote:
> +  if (pc == func_start)
> +    return 1;
> +
> +  if (pc == func_start + 8)
> +    {
> +      unsigned int inst;
> +
> +      /* ldah $gp,n($t12) */
> +      inst = alpha_read_insn (func_start);
> +      if ((inst & 0xffff0000) != 0x27bb0000)
> +        return 0;
> +
> +      /* lda $gp,n($gp) */
> +      inst = alpha_read_insn (func_start + 4);
> +      if ((inst & 0xffff0000) != 0x23bd0000)
> +        return 0;

Is there any chance we could get hold of the symbol associated with
this function start?  On ELF detecting this condition can be 
streamlined to 

	sym->st_other & STO_ALPHA_STD_GPLOAD == STO_ALPHA_STD_GPLOAD

or from bfd, elf_link_hash_entry.other, though I don't remember off
the top of my head how to get at the elf hash entry from asymbol.

And yes indeed, the gnu tools do this same optimization.  Both at
compile time and link time.


r~



More information about the Gdb-patches mailing list