[RS6000] Fix PR53038, cfa_restore out of order

2012-04-20 Thread Alan Modra
For abiv4, mtcr/mtcrf emitted in the epilogue can be scheduled past the stack deallocation, where the cfa_restore notes are emitted. The stack tie doesn't stop movement of this insn because it doesn't touch memory. So emit the cfa_restore on the mtcr/mtcrf itself. The PR was about cr, but exactl

Re: [RS6000] Fix PR53038, cfa_restore out of order

2012-04-25 Thread Richard Henderson
On 04/20/12 18:58, Alan Modra wrote: > + add_reg_note (insn, REG_FRAME_RELATED_EXPR, set); > + RTX_FRAME_RELATED_P (insn) = 1; You're probably better off using REG_CFA_REGISTER here, rather than making dwarf2cfi.c guess what you meant. The guessing is rather tuned to prologues... r~

Re: [RS6000] Fix PR53038, cfa_restore out of order

2012-04-25 Thread Alan Modra
On Wed, Apr 25, 2012 at 02:00:48PM -0700, Richard Henderson wrote: > On 04/20/12 18:58, Alan Modra wrote: > > + add_reg_note (insn, REG_FRAME_RELATED_EXPR, set); > > + RTX_FRAME_RELATED_P (insn) = 1; > > You're probably better off using REG_CFA_REGISTER here, > rather than making dwarf2c

Re: [RS6000] Fix PR53038, cfa_restore out of order

2012-04-30 Thread David Edelsohn
On Thu, Apr 26, 2012 at 1:00 AM, Alan Modra wrote: >        PR target/53038 >        * config/rs6000/rs6000.c (load_lr_save, restore_saved_lr, >        load_cr_save, add_crlr_cfa_restore): New functions. >        (rs6000_restore_saved_cr): Rename to.. >        (restore_saved_cr): ..this.  Add cfa