Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Even though memcpy is typically inlined by the compiler into byte/word loads and stores (at least for release builds), the frequency with which 1, 2 and 4 byte loads/stores are encountered in cases where the size is *not* determinable at compile time is still high enough that it's worth handling these specially. On the ARM1176JZF-S in the Raspberry Pi, this improves the total time to open a library (in the case where it's fetched from a CArchive) by around 4%. It should be noted that this code uses 16-bit and 32-bit word loads and stores that are not necessarily aligned to their respective widths. It is possible that there are some architectures out there which do not support this, although all ARMs since ARMv6 have supported it (and ARMs earlier than that are probably not powerful enough to be good targets for XBMC).
- Loading branch information