about summary refs log tree commit
path: root/src/libFLAC/arm/fixed_asm.s
DateCommit message (Collapse)
2006-09-09Add ARM assembly optimizations
This was my first time writing ARM assembly, so it may not be the best; but they're still significantly faster than the optimized C versions[1] of the functions replace. An knowledgable ARM coder should be able to make better optimizations, but nobody has done so for FLAC yet (at least not publicly, to my knowledge), so I decided to take a stab at it. Also tweaked configure.in a bit to better support cross-compilation. no longer enable 3dnow, sse, or altivec optimizations unless our CPU supports them. (note: sse and 3dnow are supported by 64-bit chips, but the code is currently only optimized for 32-bit sse and 3dnow). FLAC__fixed_restore_signal_asm_arm and FLAC__lpc_restore_signal_asm_arm are pretty well-tested from tracks in my music collection. I do not think I have any music that can exersises FLAC__lpc_restore_signal_asm_arm_wide (especially the 64-bit ASR macro). These optimizations changes result in an approximately 20% reduction in decoding time on my 3rd generation ipod (running ipodlinux). [1] - I still have them at hand, but they're not probably not worth it for the non-ASM optimized architectures.