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

Reply via email to