Frieder Ferlemann wrote:
Hi,
thanks for adding the EMAC routines!)
You're welcome!
a) align labels to the size of the cache line
I guess this is a decent idea, though I was pretty much planning to
put the function in IRAM anyway, since we have no more data to put
there.
b) clears the accumulator before use
Ìn Rockbox, everyone who uses accumulators are responsible for
clearing them after use, exactly so we don't have to constantly
worry about clearing them before use (there's no point in not
clearing them anyway, since we've got the movclr instruction).
c) uses the fetched data to calculate the current
and the next data. (for .order8 only and assuming an
even number of input data)
How exactly will there be additional benefit if the input
data is fetched from slow RAM? The instruction will block until
the load is done anyway.
Do you know if the input data size assumption is valid?
In any case, I'll wait with commiting this change until I can
actually measure if it's beneficial in any way.
d) reduce rounding error
What rounding error? This is FLAC we're talking about, there
should be no rounding error.
Comment:
a) probably very little effect
b) no effect if this is the only routine using the MAC
c) the mac rx,ry instruction uses only one instead of two cycles.
(if input data is not fetched from zero wait state ram
there will be an additional benefit)
d) probably very little effect except on very low volume
Thom