This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH,rs6000] fix interrupt safety issue on E500 targets
On Wed, Oct 03, 2007 at 08:45:24AM -0700, Andrew Pinski wrote:
> On 10/3/07, Andrew Pinski <firstname.lastname@example.org> wrote:
> > On 10/3/07, Nathan Froyd <email@example.com> wrote:
> > > Tested on powerpc-none-linux-gnuspe with no regressions. OK to commit?
> > I think this is needed for all sysv based abis and not just SPE.
> And I think this is related to PR30282.
Any objection to simply calling rs6000_emit_stack_tie unconditionally
before the stack adjustment, then? (Patch below--I don't know what
AIX/Darwin requires here, but I can't imagine it would hurt performance
--- rs6000.c (revision 128981)
+++ rs6000.c (working copy)
@@ -16329,13 +16329,14 @@ rs6000_emit_epilogue (int sibcall)
+ /* This blockage is needed so that sched doesn't decide to move
+ the sp change before the register restores. */
+ rs6000_emit_stack_tie ();
/* If this is V.4, unwind the stack pointer after all of the loads
have been done. */
if (frame_reg_rtx != sp_reg_rtx)
- /* This blockage is needed so that sched doesn't decide to move
- the sp change before the register restores. */
- rs6000_emit_stack_tie ();
&& info->spe_64bit_regs_used != 0
&& info->first_gp_reg_save != 32)