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 ;-)


Ciao,
Michael.

Reply via email to