x86 code generation question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux