Re: Problems using Vector Extensions

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

 



Thomas Unterthiner wrote:

> > This could be due to the object not being aligned to a 16 byte
> > boundary.  Gcc relies on the platform's crt startup files to align the
> > stack properly prior to main(), so you should check if that is
> > happening.  After that point gcc should keep it aligned from there on.
> >
> How can I check for proper stack-alignment? (I am terribly bad at
> assembly, so should any asm be required a code-snippet would be great).

I would just fire up a debugger, put a breakpoint at main, and look at
$esp at that point.

> I tried compiling using using "-mpreferred-stack-boundary=4" and using
> the aligned-attribute when defining the Vector3D-class, but neither did
> solve the problem.

Yeah, no compiler switches are going to be able to fix it if the stack
starts out aligned wrong.  gcc's idea of aligning the stack means always
pushing/popping/adjusting esp in multiples of the desired alignment, but
not actually ever adjusting the absolute value of esp.  For performance
reasons there is an implicit agreement that the startup code will handle
this.

Brian

[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