• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Codecs
  • Assigned To No-one
  • Operating System PortalPlayer-based
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by Buschel - 2007-11-17
Last edited by preglow - 2007-11-19

FS#8179 - MPC: small speed up

Small speed up for mpc decoding (+2.7%).

- reduced ldmia-calls through reading 8 instead of 4 register in one single ldmia

Closed by  preglow
2007-11-19 16:31
Reason for closing:  Accepted

Are you absolutely sure this patch is any faster? Theoretically, you're saving four cycles per loop here, and in the process using so many registers that even common variables like the loop counter 'k' is evicted from the registers and needs to be reloaded on each loop end, something which takes 3 cycles, and a further 3 cycles to store back.

Had similar thoughts about this. Nevertheless the measurement from svn against this change clearly shows the small speed up (at least on 5G).

For the speed optimized case, there is _just_ enough regs left for the counter, but not in the unoptimized case. Have you checked if that is any faster too?

Now you've got me :/ I'll retest and post results as well as (maybe) a corrected patch.

Ok, tested in non-optimized case. It's 279.99% (new) against 279.93% (svn) – so still a bit faster :o)
Nevertheless I will undo the changes for non-optimized case as it's better to leave code as is, if there is no significant result.


Available keyboard shortcuts


Task Details

Task Editing