[PATCH] [RFC] PR target/52813 and target/11807
Bernd Edlinger
bernd.edlinger@hotmail.de
Mon Jan 7 21:51:00 GMT 2019
On 1/7/19 10:23 AM, Jakub Jelinek wrote:
> On Sun, Dec 16, 2018 at 06:13:57PM +0200, Dimitar Dimitrov wrote:
>> - /* Clobbering the STACK POINTER register is an error. */
>> + /* Clobbered STACK POINTER register is not saved/restored by GCC,
>> + which is often unexpected by users. See PR52813. */
>> if (overlaps_hard_reg_set_p (regset, Pmode, STACK_POINTER_REGNUM))
>> {
>> - error ("Stack Pointer register clobbered by %qs in %<asm%>", regname);
>> + warning (0, "Stack Pointer register clobbered by %qs in %<asm%>",
>> + regname);
>> + warning (0, "GCC has always ignored Stack Pointer %<asm%> clobbers");
>
> Why do we write Stack Pointer rather than stack pointer? That is really
> weird. The second warning would be a note based on the first one, i.e.
> if (warning ()) note ();
> and better have some -W* option to silence the warning.
>
Yes, thanks for this suggestion.
Meanwhile I found out, that the stack clobber has only been ignored up to
gcc-5 (at least with lra targets, not really sure about reload targets).
From gcc-6 on, with the exception of PR arm/77904 which was a regression due
to the underlying lra change, but fixed later, and back-ported to gcc-6.3.0,
this works for all targets I tried so far.
To me, it starts to look like a rather unique and useful feature, that I would
like to keep working.
Attached is an updated version if my patch, using the suggested warning option,
and a note with the details.
Bootstrapped on x86_64-pc-linux-gnu.
Is it OK for trunk?
Thanks
Bernd.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-pr52813.diff
Type: text/x-patch
Size: 5703 bytes
Desc: patch-pr52813.diff
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20190107/504f4ef0/attachment.bin>
More information about the Gcc-patches
mailing list