http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51955
--- Comment #4 from Dale Weiler <graphitem at gmail dot com> 2012-01-23 03:59:58 UTC --- (In reply to comment #3) > This is a bug in how your _start does not realign the stack to 16 byte > aligned. > movdqa %xmm0, -32(%rbp) > movdqa -32(%rbp), %xmm0 > movdqa %xmm0, -16(%rbp) > > rbp 0x7fffffffe388 0x7fffffffe388 > rsp 0x7fffffffe388 0x7fffffffe388 Interesting, even with alignment it crashes however: while ((((intptr_t)data)&15)) data++; What exactly should be aligned the const char * for kill()? I'm unsure to what you mean in regards to realigning the stack for _just _start.