From: "Daniël Mantione" <[EMAIL PROTECTED]>
Instead "unaligned" will simulate an unaligned load with two loads
and some
rotation etc. On the ARM, where every mnemonic can rotate
operands, this is
isn't that bad of a penalty.
Therefore, I wouldn't be surprised that even on ARM, arrays with
packed
structures are faster than arrays with unpacked structures.
That's possible. Why would it be faster, btw? Better cache
coherency?
Like I mentioned, unliek modern x86 processors, ARM processors cannot
detect an array traversal and preload the array into the cache. If
the
array is not in cache, you get cache miss after cache miss.
A cache miss is very expensive with latencies of modern memory. A
smaller
array results in less cache misses.
I run my benchmark on ARM mobile and got the following results:
2080ms - for non-packed
4450ms - for packed
It clearly shows that ualigned access kills performance on ARM...
Yury.
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel