> On Aug 26, 2024, at 10:40 AM, Michael Matz <m...@suse.de> wrote:
> 
> Hello,
> 
> On Mon, 26 Aug 2024, Paul Koning wrote:
> 
>>>>>  550: [--sp] = 0             sp_off = 0  {pushexthisi_const}
>>>>>  551: [--sp] = 37            sp_off = -4 {pushexthisi_const}
>>>>>  552: [--sp] = r37           sp_off = -8 {movsi_m68k2}
>>>>>  554: [--sp] = r116 - r37    sp_off = -12 {subsi3}
>>>>>  556: call                   sp_off = -16
>>>>> 
>>>>> insn 554 doesn't match its constraints and needs some reloads:
>>>> 
>>>> I think you're right in that the current code isn't correct, but the 
>>>> natural question is how in the world has this worked to-date.  Though I 
>>>> guess targets which push arguments are a dying breed (though I would 
>>>> have expected i386 to have tripped over this at some point).
>>> 
>>> Yeah, I wondered as well.  For things to go wrong some instructions that 
>>> contain pre/post-inc/dec of the stack pointer need to have reloads in such 
>>> a way that the actual SP-change sideeffect moves to a different 
>>> instruction.  
>> 
>> I think I've seen that in the past on PDP11, and reported it, but I 
>> thought that particular issue was fixed not too long after.
> 
> Do you have a reference handy?  I'd like to take a look, if for nothing 
> else than curiosity ;-)

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87944 
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87944> which says it was fixed in 
GCC 14 on 5/30/2023.

        paul

Reply via email to