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.