(In reply to Richard Biener from comment #16) > As was my guess, this is unaligned stack. Not sure why __strspn_sse42 needs > to spill, but ... strspn is implemented as C code, so the compiler spills. Jon, if you want to dig further, you can help us in determining which routines has (invalidly) misaligned the stack pointer. So the __strspn_sse42 has an %esp which doesn't have zero as last digit (i.e. it's not 16-byte aligned). Go upward the call stack and for each frame upwards print $esp in hex. So repeat the following commands and give us the output here: (gdb) p/x $esp (gdb) up (until you reach a frame where 'up' doesn't go further up)