> On Aug 26, 2024, at 10:14 AM, Michael Matz <m...@suse.de> wrote:
>
> Hello,
>
> On Sun, 25 Aug 2024, Jeff Law 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.
paul