> But really, this post is good news! You found the problem! :-)
> (I am really happy that you did, because it annoyed me that it I had
> no idea what it could be.)
Ah, so you have noticed it too.
> > For "normal" calls (i.e. to the built-in C libraries) the stack was not
> > necessarily aligned. This was for efficiency. And under the assumption
> > that the standard libraries would not use SSE instructions, and that
> > such an optimization would not matter. Also, guaranteeing the stack
> On the other hand, all AMD64 processors support SSE, so there is no
> particular reason for the compiler NOT to use them if the compiler feels
> like it.
True, but if it would use 'movdqu' (i.e. the unaligned version of the
move instruction) instead of 'movdqa', it would not crash if the stack
is not aligned.
IMHO, requiring _every_ function to keep the stack aligned introduces
much more overhead than either using the unaligned instruction, or doing
the alignment only when it is really necessary.
But anyway. You are right in that it is good that we won't have this
trouble in the future, when perhaps other systems start doing the same.