Rewrote handling of unaligned loads.
On the BCM2835, this performs around 17% worse for data in the L1 cache,
but 32% better for the L2 cache and 36% better for main memory, so is
probably a worthwhile change.
Another slight improvement to memcpy.
This goes back to using LDRB and LDRH for leading and trailing sub-words.
It improves the L1 cache constrained case by 2.2% with no significant effect
on other cases.
More marginal improvements to memcpy.
This goes back to using unaligned LDRs for everything except the wide-case
main loop. Measured with the pixman benchmarks, this produces an improvement
in benchmarks of 2.7% (L1), 2.2% (L2), 0.3% (R), 0.8% (RT).
Another small speed boost for memcpy.
This one is simply replacing a jump table with a series of conditional
branches. Presumably this is faster because it enables the branch predictor
to work. Pixman benchmark improvements: L1: 2.5%, M: 0.3%, HT: 3.0%,
VT: 2.5%, R: 2.8%, RT: 3.2%.