On Wed, Feb 03, 2016 at 09:55:11AM +0100, Jiri Kosina wrote:
On Wed, 3 Feb 2016, AKASHI Takahiro wrote:
those efforts, we are proposing[1] a new *generic* gcc option, -fprolog-add=N.
This option will insert N nop instructions at the beginning of each function.
The interesting part of the story with ppc64 is that you indeed want to
create the callsite before the *most* of the prologue, but not really :)
I was silently assuming that GCC would do this right on ppc64le; add the NOPs
right after the TOC load. Or after TOC load and LR save? ...
The part of the prologue where TOC pointer is saved needs to happen before
the fentry/profiling call.
Yes, any call, to any profiler/tracer/live patcher is potentially global
and needs the _new_ TOC value.
This proposal, if implemented in a too naive fashion, will worsen the problem
we currently discuss: a few NOPs _never_ cause any global reference. GCC might
be even more inclined to not load a new TOC value. That change would need to be
fairly smart on ppc64le.
Torsten