On Fri, Jul 29, 2011 at 10:28:28PM +0930, Alan Modra wrote:
> libgcc/
> * config/rs6000/linux-unwind.h (frob_update_context <__powerpc64__>):
> Restore for indirect call bcrtl from correct stack slot, and only
> if cfa+40 isn't valid.
> gcc/
> * config/rs6000/rs6000-protos.h
On Fri, Jul 29, 2011 at 09:16:09AM -0400, David Edelsohn wrote:
> Which has the problem? Which are you trying to solve? And how is
> your change solving it?
Michael's save_toc_in_prologue emit_frame_save writes unwind info for
the wrong frame. That r2 save is the current r2. What we need is
in
On Thu, Jul 28, 2011 at 9:27 PM, Alan Modra wrote:
> Right, but I was talking about the normal case, where the unwinder
> won't even look at .glink unwind info.
>
>> The whole problem is that toc pointer copy in 40(1) is only valid
>> during indirect call sequences, and iff ld inserted a stub? I
On Fri, Jul 29, 2011 at 10:57:48AM +0930, Alan Modra wrote:
> Except that any info about r2 in an indirect call sequence really
> belongs to the *called* function frame, not the callee. I woke up
> this morning with the realization that what I'd done in
> frob_update_context for indirect call sequ
On Thu, Jul 28, 2011 at 12:09:51PM -0700, Richard Henderson wrote:
> Well, even if we're not able to hoist the R2 store, we may be able
> to simply add REG_CFA_OFFSET and REG_CFA_RESTORE notes to the insns
> in the stream.
You'd need to mark every non-local call with something that says
R2 may be
On Thu, Jul 28, 2011 at 11:49:16AM -0700, Richard Henderson wrote:
> On 07/28/2011 12:27 AM, Alan Modra wrote:
> > On Wed, Jul 27, 2011 at 03:00:45PM +0930, Alan Modra wrote:
> >> Ideally what I'd like to
> >> do is have ld and gcc emit accurate r2 tracking unwind info and
> >> dispense with hacks
On 07/28/2011 12:02 PM, David Edelsohn wrote:
> The other problem is hoisting the store into the prologue is not
> always profitable for performance. It should be better once shrink
> wrapping is implemented. Currently the PPC ABI may perform a lot of
> stores in the prologue if the function *may
On Thu, Jul 28, 2011 at 2:49 PM, Richard Henderson wrote:
> The whole problem is that toc pointer copy in 40(1) is only valid
> during indirect call sequences, and iff ld inserted a stub? I.e.
> direct calls between functions that share toc pointers never save
> the copy?
>
> Would it make sense
On 07/28/2011 12:27 AM, Alan Modra wrote:
> On Wed, Jul 27, 2011 at 03:00:45PM +0930, Alan Modra wrote:
>> Ideally what I'd like to
>> do is have ld and gcc emit accurate r2 tracking unwind info and
>> dispense with hacks like frob_update_context. If ld did emit accurate
>> unwind info for .glink,
On Wed, Jul 27, 2011 at 03:00:45PM +0930, Alan Modra wrote:
> Ideally what I'd like to
> do is have ld and gcc emit accurate r2 tracking unwind info and
> dispense with hacks like frob_update_context. If ld did emit accurate
> unwind info for .glink, then the justification for frob_update_context
On Wed, Jul 27, 2011 at 1:30 AM, Alan Modra wrote:
> * config/rs6000/linux-unwind.h (frob_update_context <__powerpc64__>):
> Leave r2 REG_UNSAVED if stopped on the instruction that saves r2
> in a plt call stub. Do restore r2 if stopped on bctrl.
Okay.
Thanks, David
Hi David,
I've been looking into what we need to do to support unwinding from
async signal handlers. I've implemented unwind info generation for
.glink in the linker, but to keep the ppc64 .glink unwind info simple
I've assumed that frob_update_context is still used.
We still have some difficul
12 matches
Mail list logo