I'm trying to analyze a segfault in 32bit glibc. The program crashes in glibc/dlfcn/dlvsym.c::dlvsym_implementation(), namely at the following assignment (line 50 of head source): args.handle = handle; with args being struct dlvsym_args { /* The arguments to dlvsym_doit. */ void *handle; const char *name; const char *version; void *who; /* The return values of dlvsym_doit. */ void *sym; }; The crash is at Dump of assembler code for function ___dlvsym: [...] 0xf7d4458b <+75>: vpunpcklqdq %xmm1,%xmm0,%xmm0 => 0xf7d4458f <+79>: vmovdqa %xmm0,0xc(%esp) with esp = 0xffc30310 Now the descriptions of "vmovdqa" I could find say that it generates a #GP when the destination is not 16-byte aligned. Does this alignment include the displacement, like above? If yes, is this then a code generation bug in gcc? Thanks, Manuel