Re: [ppc64-linux]: skip linkage functions

Jim Blandy
2003-06-06T06:22:06Z

Daniel Jacobowitz <drow@mvista.com> writes:

> On Thu, Jun 05, 2003 at 06:54:57PM -0500, Jim Blandy wrote:
> >
> > 2003-06-05 Jim Blandy <jimb@redhat.com>
> >
> > Recognize and skip 64-bit PowerPC Linux linkage functions.
> > * ppc-linux-tdep.c (insn_d, insn_ds, insn_xfx, read_insn, struct
> > insn_pattern, insns_match_pattern, d_field, ds_field): New
> > functions, macros, and types for working with PPC instructions.
> > (ppc64_standard_linkage, PPC64_STANDARD_LINKAGE_LEN,
> > ppc64_in_solib_call_trampoline, ppc64_standard_linkage_target,
> > ppc64_skip_trampoline_code): New functions, variables, and macros
> > for recognizing and skipping linkage functions.
> > (ppc_linux_init_abi): Use ppc64_in_solib_call_trampoline and
> > ppc64_skip_trampoline_code for the 64-bit PowerPC Linux ABI.
>
> Hmm. Probably not good enough for our needs, but is the
> DW_AT_trampoline attribute useful here?

I'll say it, so nobody else has to feel bad saying it: that patch is
complete shite. I just can't see any other way to do it with the info
I have.

DW_AT_trampoline would allow me to implement in_solib_call_trampoline
and skip_trampoline_code simply by consulting the debugging info,
which would be eons better. And in generic code, to boot. The only
thing is, the trampolines are generated by the linker, not the
compiler. Could the linker contribute its own Dwarf compilation unit
to .debug_info and .debug_abbrev? How should it decide which
debugging format to use, and whether to emit anything at all?

If we could get this working, we could start using it on other
architectures, too.