This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Add unwind information to mips epilogues
- From: Richard Sandiford <richard dot sandiford at linaro dot org>
- To: Richard Henderson <rth at redhat dot com>
- Cc: Bernd Schmidt <bernds at codesourcery dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 05 Sep 2011 09:06:46 +0100
- Subject: Re: Add unwind information to mips epilogues
- References: <4E5E6E6D.8050905@codesourcery.com> <87zkipl8uv.fsf@firetop.home> <4E642AF3.2020706@redhat.com>
Richard Henderson <rth@redhat.com> writes:
> On 09/01/2011 12:13 AM, Richard Sandiford wrote:
>> Also, for the frame_pointer_required case, it looks like there's a
>> window between the restoration of the frame pointer and the deallocation
>> of the stack in which the CFA is still defined in terms of the frame
>> pointer register. Is that significant? If not (e.g. because we
>> should never need to unwind at that point) then why do we still
>> update the CFA here:
>
> What window are you referring to?
>
> Best I can tell from looking at the patch we restore the CFA to the
> stack pointer before anything else.
Well, I'm probably showing my ignorance here, but what I meant was:
we attach the DEF_CFA and the CFA_RESTORE notes to the final stack
deallocation. I was just worried that, immediately before that
deallocation, the CFA is still defined in terms of the frame pointer,
even though the frame pointer has already been restored. So it seemed
like someone trying to unwind at that point would get the wrong CFA.
So I just wasn't sure whether we expected anyone to try to unwind
at that point or not. Or whether I'm missing something else...
Richard