FS#11698 - ARMv5 asm for flac

Attached to Project: Rockbox
Opened by Nils Wallménius (nls) - Sunday, 24 October 2010, 11:52 GMT
Last edited by Nils Wallménius (nls) - Saturday, 20 November 2010, 14:14 GMT
Task Type Patches
Category Codecs
Status Closed
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


This patch adds an armv5 version of lpc_decode_arm.
Speeds up decoding by 12% on gigabeat s (armv6)
Most of the speedup comes from using 16 bit multiplies which can work with individual halfwords packed in registers so this frees up registers for larder block loads which also made it possible to add unrlorred loops up to predictor order 12 which is the highest used by the reference encoder.

It would be good if someone tested on a real armv5 target and i'd like to have confirmation on that using these 16 bit multiplications is ok... the coeffs are never more than 16 bits but i haven't looked so much at the data but checksums match for files i've tested.
This task depends upon

Closed by  Nils Wallménius (nls)
Saturday, 20 November 2010, 14:14 GMT
Reason for closing:  Rejected
Additional comments about closing:  This isn't worth the complication
Comment by Nils Wallménius (nls) - Sunday, 24 October 2010, 23:01 GMT
This needs some more checking, the residuals (which is what the coeffs are multiplied with can be > 16 bits in some cases but i don't know which yet, need to read the spec unless someone can tell me?