• Giuseppe CAVALLARO's avatar
    sh: Use GCC __builtin_prefetch() to implement prefetch(). · d53e4307
    Giuseppe CAVALLARO authored
    GCC's __builtin_prefetch() was introduced a long time ago, all
    supported GCC versions have it. So this patch is to use it for
    implementing the prefetch on SH2A and SH4.
    
    The current  prefetch implementation is almost equivalent with
    __builtin_prefetch.
    The third parameter in the __builtin_prefetch is the locality
    that it's not supported on SH architectures.  It has been set
    to three and it should be verified if it's suitable for SH2A
    as well. I didn't test on this architecture.
    
    The builtin usage should be more efficient that an __asm__
    because less barriers, and because the compiler doesn't see the
    inst as a "black box" allowing better code generation.
    
    This has been already done on other architectures (see the commit:
    0453fb3c).
    
    Many thanks to Christian Bruel <christain.bruel@st.com> for his
    support on evaluate the impact of the gcc built-in on SH4 arch.
    
    No regressions found while testing with LMbench on STLinux targets.
    Signed-off-by: default avatarGiuseppe Cavallaro <peppe.cavallaro@st.com>
    Signed-off-by: default avatarStuart Menefy <stuart.menefy@st.com>
    Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
    d53e4307
processor_32.h 4.62 KB