dect
/
linux-2.6
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
linux-2.6/arch/sh
Giuseppe CAVALLARO d53e4307c2 sh: Use GCC __builtin_prefetch() to implement prefetch().
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:
0453fb3c52).

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: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2010-11-18 14:53:18 +09:00
..
boards Merge branches 'sh/pio-death', 'sh/nommu', 'sh/clkfwk', 'sh/core' and 'sh/intc-extension' into sh-fixes-for-linus 2010-11-08 09:42:43 +09:00
boot sh: boot kernel with SR.BL set 2010-09-30 09:43:32 +09:00
cchips sh: hd64461: irq_data conversion. 2010-10-27 15:18:15 +09:00
configs sh: mach-systemh: Kill off dead board. 2010-10-29 19:11:56 +09:00
drivers sh: pci: Convert to upper/lower_32_bits() helpers. 2010-10-15 06:15:56 +09:00
include sh: Use GCC __builtin_prefetch() to implement prefetch(). 2010-11-18 14:53:18 +09:00
kernel sh: fix vsyscall compilation due to .eh_frame issue 2010-11-17 17:55:37 +09:00
lib sh: change to new flag variable 2010-09-23 16:18:18 +09:00
lib64 sh64: Kill off special clear_page() implementation. 2009-08-04 17:17:00 +09:00
math-emu sh: wire up perf alignment and emulation faults. 2010-10-13 06:55:26 +09:00
mm sh: nommu: use 32-bit phys mode. 2010-11-04 12:32:24 +09:00
oprofile sh: oprofile: Make sure the backtrace op is available for timer-fallback. 2010-10-27 17:03:50 +09:00
tools sh: mach-systemh: Kill off dead board. 2010-10-29 19:11:56 +09:00
Kconfig sh: nommu: use 32-bit phys mode. 2010-11-04 12:32:24 +09:00
Kconfig.cpu sh: Turn on speculative return for SH7785 and SH7786 2010-02-18 18:54:18 +09:00
Kconfig.debug sh: Remove old early serial console code V2 2009-12-15 12:07:35 +09:00
Makefile sh: mach-edosk7705: Kill off machtype, consolidate board def. 2010-10-29 19:38:19 +09:00