tile: optimize and clean up string functions
authorChris Metcalf <cmetcalf@tilera.com>
Thu, 1 Aug 2013 19:52:17 +0000 (15:52 -0400)
committerChris Metcalf <cmetcalf@tilera.com>
Thu, 1 Aug 2013 20:23:12 +0000 (16:23 -0400)
commitc53c70a90fdce3e7a53a0412abf7cc2b2a645988
tree0b1ec6d04be95ac07563ba518047be73973d25d8
parentdd78bc11fb2050b6a3990d0421feca4c68ca4335
tile: optimize and clean up string functions

This change cleans up the string code in a number of ways:

- For memcpy(), fix bug in prefetch and increase distance to 3 lines;
  optimize for unaligned data; do all loads before wh64 to make memcpy
  safe for forward-overlapping calls; etc.  Performance is improved.

- Use new copy_byte() function on tilegx to spread a single byte value
  out into a full word using the shufflebytes instruction.

- Clean up header include ordering to be more canonical, and remove
  spurious #undefs of function names.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
arch/tile/lib/memchr_64.c
arch/tile/lib/memcpy_64.c
arch/tile/lib/memset_32.c
arch/tile/lib/memset_64.c
arch/tile/lib/strchr_32.c
arch/tile/lib/strchr_64.c
arch/tile/lib/string-endian.h
arch/tile/lib/strlen_32.c