Rockbox

Tasklist

FS#2072 - Significantly faster memcmp() in assembler

Attached to Project: Rockbox
Opened by Jens Arnold (amiconn) - Tuesday, 16 March 2004, 21:13 GMT
Last edited by Jens Arnold (amiconn) - Thursday, 15 April 2004, 00:16 GMT
Task Type Patches
Category
Status Closed
Assigned To No-one
Operating System
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No

Details

This patch also needs patch #917153 for the updated
Makefile in "firmware".

Features of the new memcmp():

- 40..80% faster for small blocks (0..2 bytes)
- 2x to 9x as fast for large blocks (depends on alignment)
- 18 bytes longer

For detailed timing info see open office spreadsheet
attached to patch #917153.
This task depends upon

Closed by  Jens Arnold (amiconn)
Thursday, 15 April 2004, 00:16 GMT
Reason for closing:  
Additional comments about closing:  Logged In: YES
user_id=988982

Closed this myself as I think it is pretty useless, for the
following
reasons:
- memcmp() is used only in very few places
- my assembler routine is quite a bit larger

If later somebody decides that it would be useful, the patch
will still be there.
Comment by Jens Arnold (amiconn) - Thursday, 18 March 2004, 00:44 GMT

- Oops, this wasn't commented at all. Fixed.
- Shortened by 2 bytes (stupid thinking)
- Timing info (spreadsheet in patch #917153) was erroneously
given for the (unlikely) case that both memory areas are in
the same DRAM page. Re-done all timings for memcmp(). So,
the relations change a bit:
- 40..55 % faster for small blocks (0..2 bytes)
- 1.4x to 6,7x as fast for large blocks
Comment by Jens Arnold (amiconn) - Thursday, 15 April 2004, 00:16 GMT

Closed this myself as I think it is pretty useless, for the
following
reasons:
- memcmp() is used only in very few places
- my assembler routine is quite a bit larger

If later somebody decides that it would be useful, the patch
will still be there.

Loading...