On Tue, May 8, 2012 at 6:32 AM, Alan Modra <amo...@gmail.com> wrote: > OK, the assert is doing its job. I wanted to minimize the number of > places that need temporary hard regs, so that tracking of which hard > reg is in use can all be done in rs6000_emit_prologue. > > The problem is that the insns here need reg+reg addressing on SPE, > but as the ??? comment says we really don't need insns, just the eh > unwind reg info. So that is what the following patch does, attaching > the eh info to a blockage. > > I also make use of gen_frame_store and siblings that I invented for > generating the eh info, elsewhere in rs6000.c where doing so is > blindingly obvious. We could probably use them in other places too, > but I'll leave that for later. Bootstrapped and regression tested > powerpc-linux. OK to apply? > > PR target/53271 > * config/rs6000/rs6000.c (gen_frame_set): New function. > (gen_frame_load, gen_frame_store): New functions. > (rs6000_savres_rtx): Use the above. > (rs6000_emit_epilogue, rs6000_emit_prologue): Here too. > Correct mode used for CR2 in save/restore_world patterns. > Don't emit instructions for eh_return frame unwind reg info.
Okay. Thanks, David