On May 12, 2010, at 10:01 AM, Jesus Cea wrote:
On 12/05/10 15:39, James Y Knight wrote:
While assuming the stack is 16byte aligned is undeniably an
ABI-violation in GCC, at this point, it's surely simpler to just go
along: the new unofficial ABI for x86 is that the stack must always
be
left in 16-byte alignment...
You can not rule out other software embedding python inside, or
callbacks from foreign code. For instance, Berkeley DB library can do
callbacks to Python code.
So? When calling callback functions, the Berkeley DB library won't
un-16byte-align the stack, will it? (Assuming it's been compiled with
gcc in the last 10 years)
Not all the universe is GCC based. For instance, Solaris system
libraries are not compiled using GCC. The world is bigger that Linux/
GCC.
If the Solaris compilers don't use 16byte-aligned stackframes, and GCC
on Solaris/x86 also assumes 16byte-aligned stacks, I guess GCC on
Solaris/x86 is pretty broken indeed. But for Linux/x86, stacks have
been de-facto 16byte aligned for so long, you can *almost* excuse the
ABI violation as unimportant.
But anyways, psyco should keep the stackframes 16byte aligned
regardless, for performance reasons: even when accessing datatypes for
which unaligned access doesn't crash, it's faster when it's aligned.
James
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com