On Fri, Oct 14, 2005 at 01:43:03PM -0700, Kean Johnston wrote: > >It indicated that sibling calling optimization in main should > >be disabled for targets that need to up the stack alignment, > >otherwise you get the stack alignment of a lower one than > While that may be true, I think the problem is broader. > > I took out the main1() function and put it into a separate > file, and compiled just that. So now there is no carnal > knowledge of main or its stack alignment. The generated > code for this stand-alone main1() makes no attempt to > align the stack or the stack variables it is going to be > passing to the movdqa instruction.
Main is supposed to emit special code to handle aligning the stack, if the OS doesn't do it already. Other functions don't get this treatment. It may be that you need to define something you haven't already for your port if you aren't getting the compensation code in main. -- Daniel Jacobowitz CodeSourcery, LLC