This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][SPARC] PR target/80968 Prevent stack loads in return delay slot.
From: David Miller <davem@davemloft.net>
Date: Tue, 06 Jun 2017 15:02:55 -0400 (EDT)
> From: David Miller <davem@davemloft.net>
> Date: Mon, 05 Jun 2017 20:54:46 -0400 (EDT)
>
>> From: Eric Botcazou <ebotcazou@adacore.com>
>> Date: Tue, 06 Jun 2017 00:02:06 +0200
>>
>>>> That seems to work as well, following is going through a testsuite
>>>> run right now:
>>>>
>>>> ====================
>>>> [PATCH] sparc: Fix stack references in return delay slot.
>>>>
>>>> gcc/
>>>>
>>>> PR target/80968
>>>> * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
>>>> blockage if function uses alloca.
>>>
>>> Probably worth applying on all active branches I'd think.
>>
>> I agree, this is a really nasty bug.
>>
>> I'll do that after some more testing.
>
> This is now done, thanks again.
Eric, after some more testing it turns out that we need something
more for gcc-5 and gcc-6 to cover all cases.
The problem is that before gcc-7, the compiler can emit return
instructions directly without going through the epilogue expander.
So I have to add the frame barrier emission to our return expander as
well, which I will work on right now.
Just FYI...