linux/arch/sh/include/asm
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
..
Kbuild Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-08-16 13:32:24 +09:00
adc.h
addrspace.h sh: nommu: use 32-bit phys mode. 2010-11-04 12:32:24 +09:00
alignment.h sh: Split out the unaligned counters and user bits. 2010-01-12 16:12:25 +09:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
atomic-grb.h sh: consolidate atomic_cmpxchg()/atomic_add_unless() definitions. 2010-01-08 17:02:17 +09:00
atomic-irq.h sh: Make the atomic functions safe for irqsoff tracing 2009-06-15 00:31:17 +09:00
atomic-llsc.h sh: consolidate atomic_cmpxchg()/atomic_add_unless() definitions. 2010-01-08 17:02:17 +09:00
atomic.h atomic_t: Cast to volatile when accessing atomic variables 2010-05-17 07:57:27 -07:00
auxvec.h
bitops-grb.h sh: Convert to generic bitops for IRQ-toggling implementation. 2008-12-22 18:42:53 +09:00
bitops-llsc.h sh: Relax inline assembly constraints 2009-01-29 11:57:09 +09:00
bitops-op32.h sh: Provide optimized non-atomic bitops for SH-2A. 2008-12-22 18:42:54 +09:00
bitops.h sh: Fix up smp_mb__xxx() memory barriers for SH-4A SMP. 2009-10-18 15:36:02 +09:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bug.h panic: Allow warnings to set different taint flags 2010-05-19 08:36:48 +01:00
bugs.h sh: Idle loop chainsawing for SMP-based light sleep. 2009-10-16 17:20:58 +09:00
byteorder.h byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
cache.h Merge branch 'for-35' of git://repo.or.cz/linux-kbuild 2010-06-01 08:55:52 -07:00
cachectl.h sh: fix sys_cacheflush error checking 2009-08-24 18:59:09 +09:00
cacheflush.h sh: Fix up flush_cache_vmap() on SMP. 2010-03-04 16:47:30 +09:00
checksum.h sh: Convert sh64 to use the generic checksum code. 2009-06-15 00:00:42 +09:00
checksum_32.h
clkdev.h sh: Merge clkdev API updates. 2010-03-09 11:57:17 +09:00
clock.h sh: move sh clock.c contents to drivers/sh/clk. 2010-05-13 17:39:14 +09:00
cmpxchg-grb.h sh: fixed cmpxchg gRB version 2010-01-27 22:36:25 +09:00
cmpxchg-irq.h
cmpxchg-llsc.h sh: Fix sh4a llsc-based cmpxchg() 2009-06-11 09:31:55 +03:00
cpu-features.h sh: Support for extended ASIDs on PTEAEX-capable SH-X3 cores. 2009-03-17 17:49:49 +09:00
cputime.h
current.h sh: Convert to asm-generic/current.h. 2009-06-14 21:34:26 +09:00
delay.h
device.h sh: Runtime PM for SuperH Mobile platform bus devices 2009-08-23 18:03:17 +09:00
div64.h
dma-mapping.h dma-mapping: remove dma_is_consistent API 2010-08-11 08:59:21 -07:00
dma-register.h dmaengine: shdma: separate DMA headers. 2010-03-02 11:09:04 +09:00
dma-sh.h dmaengine: shdma: separate DMA headers. 2010-03-02 11:09:04 +09:00
dma.h sh: Fix up MAX_DMA_CHANNELS definition when DMA is disabled. 2009-12-17 14:25:10 +09:00
dmabrg.h
dwarf.h sh: Optimise FDE/CIE lookup by using red-black trees 2010-02-08 11:29:15 +09:00
elf.h sh: update the FDPIC relocations. 2010-06-14 18:02:13 +09:00
emergency-restart.h
entry-macros.S sh: Remove implicit sign extension from assembler immediates 2009-08-24 17:09:53 +09:00
errno.h
fb.h
fcntl.h
fixmap.h sh: fix up an off-by-1 in the number of early ioremap fixmaps. 2010-06-21 16:23:03 +09:00
flat.h flat: fix data sections alignment 2009-05-29 08:40:02 -07:00
fpu.h sh: Move over to dynamically allocated FPU context. 2010-01-13 12:51:40 +09:00
freq.h
ftrace.h sh: Provide CALLER_ADDRx definitions even when ftrace is disabled. 2009-10-14 11:49:49 +09:00
futex-irq.h
futex.h
gpio.h sh: Allow GPIO chips to register IRQ mappings. 2010-10-03 03:55:39 +09:00
hardirq.h sh: Count NMIs in irq_cpustat_t. 2009-10-14 16:42:28 +09:00
hd64461.h sh: mach-hp6xx: Fix up the hp6xx build for hd64461 changes. 2009-05-20 11:27:13 +09:00
heartbeat.h sh: Prevent heartbeat from scribbling over non-LED bits. 2009-08-18 21:16:29 +09:00
hugetlb.h
hw_breakpoint.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2010-05-19 11:36:03 -07:00
hw_irq.h sh: Move the shared INTC code out to drivers/sh/ 2008-10-01 16:13:54 +09:00
hwblk.h sh: get rid of hwblk clock names 2010-05-11 11:48:47 +09:00
i2c-sh7760.h
io.h sh: support for platforms without PIO. 2010-06-02 16:31:42 +09:00
io_generic.h sh: enable LMB region setup via machvec. 2010-05-10 15:39:05 +09:00
io_trapped.h
ioctl.h
ioctls.h tty: Add EXTPROC support for LINEMODE 2010-08-10 13:47:39 -07:00
ipcbuf.h sh: Convert ipc/shm bits to their asm-generic versions. 2009-06-14 23:20:27 +09:00
irq.h sh: modify NR_IRQS from 256 to 512 2010-07-06 17:37:32 +09:00
irq_regs.h
irqflags.h Fix IRQ flag handling naming 2010-10-07 14:08:55 +01:00
kdebug.h sh: hw-breakpoints: Add preliminary support for SH-4A UBC. 2009-12-08 15:02:27 +09:00
kexec.h sh: convert kexec crash kernel management to LMB. 2010-05-07 14:54:55 +09:00
kgdb.h sh: Kill off kgdb's magical NMI debouncing. 2009-09-01 17:45:35 +09:00
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kprobes.h sh: Add kprobe-based event tracer. 2010-06-14 15:16:53 +09:00
linkage.h
local.h
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
machvec.h sh: support for platforms without PIO. 2010-06-02 16:31:42 +09:00
mc146818rtc.h
memblock.h memblock: Introduce default allocation limit and use it to replace explicit ones 2010-08-05 12:56:07 +10:00
mman.h sh: Switch to asm-generic versions for identical headers. 2009-06-14 23:26:48 +09:00
mmu.h sh: Fix up NUMA build for 29-bit. 2010-03-10 16:29:48 +09:00
mmu_context.h sh: Mass ctrl_in/outX to __raw_read/writeX conversion. 2010-01-26 12:58:40 +09:00
mmu_context_32.h sh: Mass ctrl_in/outX to __raw_read/writeX conversion. 2010-01-26 12:58:40 +09:00
mmu_context_64.h
mmzone.h sh: bootmem refactoring. 2010-05-11 13:32:19 +09:00
module.h sh: Optimise FDE/CIE lookup by using red-black trees 2010-02-08 11:29:15 +09:00
msgbuf.h sh: Convert ipc/shm bits to their asm-generic versions. 2009-06-14 23:20:27 +09:00
mutex-llsc.h sh: Fix up T-bit error handling in SH-4A mutex fastpath. 2009-01-29 11:56:03 +09:00
mutex.h sh: Add SH-4A optimized fastpath mutex implementation. 2008-12-22 18:42:55 +09:00
page.h dma-mapping: rename ARCH_KMALLOC_MINALIGN to ARCH_DMA_MINALIGN 2010-08-11 08:59:21 -07:00
param.h sh: Switch to asm-generic versions for identical headers. 2009-06-14 23:26:48 +09:00
parport.h sh: Switch to asm-generic versions for identical headers. 2009-06-14 23:26:48 +09:00
pci.h sh: pci: Use a generic raw spinlock for PCI config access locking. 2010-09-20 18:56:13 +09:00
percpu.h
perf_event.h irq_work: Add generic hardirq context callbacks 2010-10-18 19:58:50 +02:00
pgalloc.h sh: default to extended TLB support. 2010-01-13 19:11:14 +09:00
pgtable-2level.h sh: Rename split-level pgtable headers. 2010-01-13 19:18:39 +09:00
pgtable-3level.h sh: Rename split-level pgtable headers. 2010-01-13 19:18:39 +09:00
pgtable.h sh: Simplify phys_addr_mask()/PTE_PHYS_MASK for 29/32-bit. 2010-11-04 12:51:08 +09:00
pgtable_32.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2010-10-28 12:06:51 -07:00
pgtable_64.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2010-10-28 12:06:51 -07:00
poll.h
posix_types.h
posix_types_32.h sh: Convert to asm-generic/posix_types.h. 2009-06-14 23:16:27 +09:00
posix_types_64.h sh: Convert to asm-generic/posix_types.h. 2009-06-14 23:16:27 +09:00
processor.h sh: Expose physical addressing mode through cpuinfo. 2010-10-26 14:44:58 +09:00
processor_32.h sh: Use GCC __builtin_prefetch() to implement prefetch(). 2010-11-18 14:53:18 +09:00
processor_64.h sh: Add kprobe-based event tracer. 2010-06-14 15:16:53 +09:00
ptrace.h sh: split out ptrace header for _32/_64 variants. 2010-06-14 16:02:47 +09:00
ptrace_32.h sh: split out ptrace header for _32/_64 variants. 2010-06-14 16:02:47 +09:00
ptrace_64.h sh: split out ptrace header for _32/_64 variants. 2010-06-14 16:02:47 +09:00
push-switch.h
reboot.h sh: machine_ops based reboot support. 2010-01-20 16:42:52 +09:00
resource.h
romimage-macros.h sh: add romimage-macros.h 2009-09-11 13:19:16 +09:00
rtc.h sh: rtc-generic support. 2009-04-27 17:34:39 +09:00
rwsem.h sh: Replace old style lock initializer 2009-11-09 10:47:40 +09:00
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
seccomp.h
sections.h sh: dwarf unwinder support. 2009-08-14 01:58:43 +09:00
segment.h
sembuf.h sh: Convert ipc/shm bits to their asm-generic versions. 2009-06-14 23:20:27 +09:00
serial.h sh: Switch to asm-generic versions for identical headers. 2009-06-14 23:26:48 +09:00
setup.h sh: bootmem refactoring. 2010-05-11 13:32:19 +09:00
sfp-machine.h
sh7760fb.h
sh_bios.h sh: Kill off more unused sh_bios callbacks. 2010-01-12 15:26:11 +09:00
sh_eth.h net: allow sh_eth to get mac address through platform data 2009-10-13 03:44:05 -07:00
shmbuf.h sh: Convert ipc/shm bits to their asm-generic versions. 2009-06-14 23:20:27 +09:00
shmparam.h
sigcontext.h
siginfo.h
signal.h sh: Convert to asm-generic/signal.h. 2009-06-14 23:25:57 +09:00
siu.h sh: define DMA slaves per CPU type, remove now redundant header 2010-05-22 16:51:17 +09:00
sizes.h sh: mach-sdk7786: Add support for the FPGA SRAM. 2010-10-15 02:13:04 +09:00
smc37c93x.h
smp-ops.h sh: CPU hotplug support. 2010-04-26 19:08:55 +09:00
smp.h sh: CPU hotplug support. 2010-04-26 19:08:55 +09:00
socket.h sh: Switch to asm-generic versions for identical headers. 2009-06-14 23:26:48 +09:00
sockios.h
sparsemem.h
spi.h
spinlock.h locking: Convert raw_rwlock functions to arch_rwlock 2009-12-14 23:55:32 +01:00
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
sram.h sh: Provide a generic SRAM pool for tiny memories. 2010-10-15 02:09:00 +09:00
stacktrace.h sh: Use the generalized stacktrace ops 2009-08-13 11:50:08 +09:00
stat.h
statfs.h
string.h
string_32.h
string_64.h sh: Add SH-5 optimized memcpy()/memset()/strcpy()/strlen(). 2008-12-22 18:44:05 +09:00
suspend.h sh: SH-Mobile R-standby register save/restore 2010-02-26 15:29:26 +09:00
swab.h sh: Tidy up duplication in irq/swab/timex.h. 2009-06-14 23:21:54 +09:00
syscall.h tracing: Unify arch_syscall_addr() implementations 2010-02-17 13:07:21 +01:00
syscall_32.h sh: Add ftrace syscall tracing support 2009-07-06 20:16:33 +09:00
syscall_64.h sh: Fix up spurious syscall restarting. 2009-01-29 11:56:03 +09:00
syscalls.h Add generic sys_olduname() 2010-03-12 15:52:32 -08:00
syscalls_32.h SH: Add missing consts to sys_execve() declaration 2010-10-07 14:08:52 +01:00
syscalls_64.h Mark arguments to certain syscalls as being const 2010-08-13 16:53:13 -07:00
system.h sh: nommu: Support building without an uncached mapping. 2010-11-04 12:46:19 +09:00
system_32.h sh: nommu: Support building without an uncached mapping. 2010-11-04 12:46:19 +09:00
system_64.h sh: nommu: Support building without an uncached mapping. 2010-11-04 12:46:19 +09:00
termbits.h sh: Convert to asm-generic/termbits.h and termios.h. 2009-06-14 23:17:57 +09:00
termios.h sh: Convert to asm-generic/termbits.h and termios.h. 2009-06-14 23:17:57 +09:00
thread_info.h add descriptive comment for TIF_MEMDIE task flag declaration. 2010-05-14 11:13:27 +02:00
timex.h sh: Only provide a PCLK definition for legacy CPG CPUs. 2009-12-29 11:09:30 +09:00
tlb.h sh: Split out MMUCR.URB based entry wiring in to shared helper. 2010-01-19 15:20:35 +09:00
tlb_64.h
tlbflush.h sh: Provide a global TLB flush for U/I-TLB clear. 2010-07-02 15:44:09 +09:00
topology.h sh: Fix up cpumask_of_pcibus() for the NUMA build. 2010-03-02 15:54:47 +09:00
types.h sh: Add register alignment helpers for shared flushers. 2009-08-15 01:57:36 +09:00
uaccess.h
uaccess_32.h
uaccess_64.h sh: sh_ksyms_64 needs __strncpy_from_user() definition. 2008-09-29 19:45:16 +09:00
ucontext.h sh: Switch to asm-generic versions for identical headers. 2009-06-14 23:26:48 +09:00
unaligned-sh4a.h sh: 16-bit get_unaligned() sh4a fix 2009-06-04 20:20:24 +09:00
unaligned.h sh: Convert to asm-generic/unaligned.h. 2009-06-14 23:24:43 +09:00
uncached.h sh: nommu: Support building without an uncached mapping. 2010-11-04 12:46:19 +09:00
unistd.h
unistd_32.h sh: Provide a non-multiplexed sys_recvmmsg path. 2010-09-14 17:43:11 +09:00
unistd_64.h sh: wire up fanotify/prlimit64 syscalls. 2010-08-16 13:51:18 +09:00
unwinder.h sh: unwinder: Introduce UNWINDER_BUG() and UNWINDER_BUG_ON() 2009-08-21 13:02:44 +01:00
user.h
vga.h
vmlinux.lds.h sh64: fix up memory offset calculation. 2010-02-12 15:41:45 +09:00
watchdog.h sh: Mass ctrl_in/outX to __raw_read/writeX conversion. 2010-01-26 12:58:40 +09:00
xor.h