1. 26 10月, 2015 1 次提交
    • R
      MIPS: Use ARCH_USE_BUILTIN_BSWAP. · 1ee3630a
      Ralf Baechle 提交于
      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: NRalf Baechle <ralf@linux-mips.org>
      1ee3630a