* Simon McVittie:

> - OK: any-i386, any-amd64

SSE2 is part of amd64 and i386, and has strict alignment requirements.
This is why stack alignment bugs in the toolchain are usually fatal.
(We still support SSE2-less i386 installations, I think, but some
libraries will use SSE2 when available.)

i386 also supports alignment checking.  It used to be possible to run
quite a bit of code with that flag switched on, but nowadays, glibc
string functions use unaligned accesses in some cases because on
current implementations, they are faster than the alternatives, so
this way of debugging alignment issues no longer works.

> - not OK: armel

Many architectures take a significant performance hit.  Usually, this
is because unaligned accesses are emulated in a kernel trap (which can
be switched off to debug these performance issues, hence the
differences in system behavior).

Some older i386/amd64 implementations have relatively costly unaligned
access, too, but only in the order of a couple of cycles, not the
hundreds or thousands kernel emulation will require.

It is very difficult to write correct C code which uses unaligned
pointers because they are an aliasing violtion as well.


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/87k32mfl41....@mid.deneb.enyo.de

Reply via email to