On Fri, Jan 14, 2011 at 7:52 AM, Peter Blok <peter.b...@bsd4all.org> wrote:
> Hi Ryan,
>
> Well I think gcc should not generate movdqa if it cannot guarantee the area
> it is working on is aligned. If the stack is not aligned, it should generate
> – probably less efficient – code that works.

Well that's the trouble, in Linux at least it *can* guarantee that the
area is aligned.  And it seems that according to kib, FreeBSD also
intended to guarantee that alignment, but due to a bug always produced
an unaligned stack(which explains why the hack I tried to fix the
alignment didn't work -- the bug happened after we got to userland).

> What is this area, if it is not a local variable allocated somewhere? Is it
> some sort of stack probing? Is alloca used? Are variable length arrays used?

To be honest I'm really not sure.  It was dying somewhere in the
constructor of a C++ class.  Unfortunately due to a lot of inlining
and gdb being a total piece of garbage, I wasn't able to suss out
exactly what C++ code the instruction corresponded to, and once I
understood the problem with movdqa I stopped digging in the C++ code.
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to