On 05/26/2012 07:40 PM, Linda Walsh wrote:
Every time you fetch a word or instruction that is not 8-byte
aligned,
you force a fatal (but caught by the processor and/or OS) signal for
unaligned
data. That forces execution out of the pipeline (though not likely
out of
cache, sadly, due to frequency of occurrence). That's not counting
the extra
cycles to fetch the rest of the data. On some machines that can
easily amount
to several dozen instructions worth.
There have been compilers for 32-bit Windows for 20 years which gave
8-byte alignments by default. cygwin changed the default configure
parameter in binutils so as to support alignment about 8 years ago. It
was tolerable to some before then as it matters only for 64-bit and
larger objects (doubles, and SSE, after that was introduced). The
characteristics of the worst compiler (with respect to alignment)
available outside of cygwin don't have a bearing on this list.
If the powers that be have decided that 64-bit mode should be supported
on cygwin setup.exe only by mingw cross compilers, I'll accept that.
--
Tim Prince
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple