This is the bug/patch tracker for Rockbox. Click here for more information.
Quick links: Bugs · Patches · Rockbox frontpage
FS#11235 - libmad asm tweaks for ARM9 and above
Attached to Project:
Rockbox
Opened by MichaelGiacomelli (saratoga) - Sunday, 02 May 2010, 08:30 GMT+2
Last edited by MichaelGiacomelli (saratoga) - Monday, 29 November 2010, 23:41 GMT+2
Opened by MichaelGiacomelli (saratoga) - Sunday, 02 May 2010, 08:30 GMT+2
Last edited by MichaelGiacomelli (saratoga) - Monday, 29 November 2010, 23:41 GMT+2
|
Detailslibmad is full of code that doesn't take into account pipeline interlocks on ARM9 and above. This fixes a bit of it, and gives a ~200kHz improvement.
Additionally, I noticed some of the ASM defines (PROD_ODDBACK_A, etc) are never used. Looking at the SVN logs, they probably never should have been committed. Anyone have an idea about them? |
This task depends upon
Closed by MichaelGiacomelli (saratoga)
Monday, 29 November 2010, 23:41 GMT+2
Reason for closing: Accepted
Additional comments about closing: Committed in r28624 and r28710. ASM is now fairly close to optimal for arm9. Further improvements will require algorithmic changes, see: FS#11759.
Monday, 29 November 2010, 23:41 GMT+2
Reason for closing: Accepted
Additional comments about closing: Committed in r28624 and r28710. ASM is now fairly close to optimal for arm9. Further improvements will require algorithmic changes, see: FS#11759.
Edit: Tested on PP502x -> 0.1 MHz slower. Sounds like we need compile options for <=ARMV4 and >ARMV4.
----
New patch performs the above scheduling on all of synth_full_arm.S. Saves about 2 MHz on arm9. Still needs some clean up and testing.
Edit: verified on amsv1, amsv2, and nano2g. 2MHz speed up on each.