linux/arch/mips/lib
Ralf Baechle 1ee3630a3e MIPS: Use ARCH_USE_BUILTIN_BSWAP.
ARCH_USE_BUILTIN_BSWAP will use __builtin_bswap16(), __builtin_bswap32()
and __builtin_bswap64() where available.  This allows better instruction
scheduling.  On pre-R2 processors it will result in 32 bit and 64 bit
swapping being performed in a call to a __bswapsi2() rsp. __bswapdi2()
functions, so we add these, too.

For a 4.2 kernel with GCC 4.9 this yields the following kernel sizes:

   text    data     bss     dec     hex filename
3996071  155804   88992 4240867  40b5e3 vmlinux         ip22 baseline
3985687  159900   88992 4234579  409d53 vmlinux         ip22 + bswap patch
6913157  378552  251024 7542733  7317cd vmlinux         ip27 baseline
6878581  378552  251024 7508157  7290bd vmlinux         ip27 + bswap patch
5773777  268752  187424 6229953  5f0fc1 vmlinux         malta baseline
5773401  268752  187424 6229577  5f0e49 vmlinux         malta + bswap patch

Presumably the code size improvments yield better cache hit rate thus
better performance compensating for the extra function call but this
will still need to be benchmarked.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2015-10-26 09:49:43 +01:00
..
Makefile MIPS: Use ARCH_USE_BUILTIN_BSWAP. 2015-10-26 09:49:43 +01:00
ashldi3.c
ashrdi3.c
bitops.c MIPS: Remove unneeded volatile from arch/mips/lib/bitops.c 2013-05-08 01:19:06 +02:00
bswapdi.c MIPS: Use ARCH_USE_BUILTIN_BSWAP. 2015-10-26 09:49:43 +01:00
bswapsi.c MIPS: Use ARCH_USE_BUILTIN_BSWAP. 2015-10-26 09:49:43 +01:00
cmpdi2.c [MIPS] Add __cmpdi2 2007-08-27 02:17:00 +01:00
csum_partial.S MIPS: csum_partial: Improve instruction parallelism. 2015-04-01 17:22:11 +02:00
delay.c MIPS: __delay ABI-dependent subtraction simplification 2014-05-30 21:01:08 +02:00
dump_tlb.c MIPS: Rearrange ENTRYLO field definitions 2015-09-03 12:07:48 +02:00
iomap-pci.c mips: use the the PCI controller's io_map_base 2012-01-31 23:20:30 +02:00
iomap.c MIPS: iomap: Use __mem_{read,write}{b,w,l} for MMIO 2014-11-24 07:45:42 +01:00
libgcc.h MIPS: libgcc.h: Checkpatch cleanup 2010-04-12 17:26:15 +01:00
lshrdi3.c
memcpy.S MIPS: lib: memcpy: Add MIPS R6 support 2015-02-17 15:37:29 +00:00
memset.S MIPS: lib: memset: Add MIPS R6 support 2015-02-17 15:37:30 +00:00
mips-atomic.c MIPS: asm: irqflags: Add MIPS R6 related definitions 2015-02-17 15:37:20 +00:00
r3k_dump_tlb.c MIPS: Refactor dumping of TLB registers for r3k/r4k 2015-09-03 12:07:45 +02:00
strlen_user.S MIPS: Remove __strlen_user(). 2014-11-24 07:45:00 +01:00
strncpy_user.S MIPS: __strncpy_from_user_asm CPU_DADDI_WORKAROUNDS bug fix 2014-05-13 00:29:38 +02:00
strnlen_user.S MIPS: strnlen_user.S: Fix a CPU_DADDI_WORKAROUNDS regression 2015-05-29 20:23:58 +02:00
ucmpdi2.c [MIPS] Export __ucmpdi2 to modules. 2008-03-12 14:14:41 +00:00
uncached.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00