This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]