linux/arch/mips/include/asm
Ralf Baechle 7837314d14 MIPS: Get rid of branches to .subsections.
It was a nice optimization - on paper at least.  In practice it results in
branches that may exceed the maximum legal range for a branch.  We can
fight that problem with -ffunction-sections but -ffunction-sections again
is incompatible with -pg used by the function tracer.

By rewriting the loop around all simple LL/SC blocks to C we reduce the
amount of inline assembler and at the same time allow GCC to often fill
the branch delay slots with something sensible or whatever else clever
optimization it may have up in its sleeve.

With this optimization gone we also no longer need -ffunction-sections,
so drop it.

This optimization was originally introduced in 2.6.21, commit
5999eca25c1fd4b9b9aca7833b04d10fe4bc877d (linux-mips.org) rsp.
f65e4fa8e0 (kernel.org).

Original fix for the issues which caused me to pull this optimization by
Paul Gortmaker <paul.gortmaker@windriver.com>.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2010-10-29 19:08:24 +01:00
..
dec MIPS: Make various locks static. 2010-02-27 12:53:30 +01:00
emma MIPS: EMMA2RH: Replace EMMA2RH_SW_IRQ_INTxx with EMMA2RH_SW_IRQ(n) 2010-08-05 13:26:04 +01:00
fw
ip32
lasat MIPS: Lasat: Fix compilation 2009-09-17 20:07:42 +02:00
mach-ar7 MIPS: AR7, BCM63xx: fix gpio_to_irq() return value 2010-07-05 17:17:26 +01:00
mach-au1x00 MIPS: au1000_eth: Get ethernet address from platform_data 2010-08-05 13:26:09 +01:00
mach-bcm47xx MIPS: BCM47xx: Fix nvram_getenv return value. 2010-08-05 13:26:31 +01:00
mach-bcm63xx MIPS: AR7, BCM63xx: fix gpio_to_irq() return value 2010-07-05 17:17:26 +01:00
mach-cavium-octeon MIPS: Octeon: Support 256 MSI on PCIe 2010-08-05 13:26:27 +01:00
mach-cobalt Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
mach-db1x00 MIPS: Alchemy: Extended DB1200 board support. 2010-02-27 12:53:00 +01:00
mach-dec
mach-emma2rh
mach-generic dma-mapping: rename ARCH_KMALLOC_MINALIGN to ARCH_DMA_MINALIGN 2010-08-11 08:59:21 -07:00
mach-ip22 MIPS: IP22/28: Switch over to RTC class driver 2008-10-15 12:46:51 +01:00
mach-ip27 dma-mapping: rename ARCH_KMALLOC_MINALIGN to ARCH_DMA_MINALIGN 2010-08-11 08:59:21 -07:00
mach-ip28 MIPS: IP22/28: Switch over to RTC class driver 2008-10-15 12:46:51 +01:00
mach-ip32 dma-mapping: rename ARCH_KMALLOC_MINALIGN to ARCH_DMA_MINALIGN 2010-08-11 08:59:21 -07:00
mach-jazz MIPS: Pass struct device to plat_dma_addr_to_phys() 2009-06-17 11:06:24 +01:00
mach-jz4740 MMC: Add support for the controller on JZ4740 SoCs. 2010-08-05 13:26:18 +01:00
mach-lasat
mach-loongson MIPS: Add missing #inclusions of <linux/irq.h> 2010-10-07 14:08:54 +01:00
mach-malta MIPS: Malta: Remove pointless use use of CONFIG_CPU_HAS_LLSC 2009-09-17 20:07:49 +02:00
mach-mipssim
mach-pb1x00 MIPS: Remove dead CONFIG_MTD_PB1550_BOOT, CONFIG_MTD_PB1550_USER 2010-08-05 13:26:00 +01:00
mach-pnx833x MIPS: Nuke trailing blank lines 2010-02-27 12:53:14 +01:00
mach-pnx8550
mach-powertv MIPS: PowerTV: Separate PowerTV USB support from non-USB code 2010-08-05 13:26:34 +01:00
mach-rc32434 MIPS: RB532: Cleanup cpu-features-overrides 2009-06-17 11:06:26 +01:00
mach-rm
mach-sibyte MIPS: Sibyte: Apply M3 workaround only on affected chip types and versions. 2010-04-12 17:26:19 +01:00
mach-tx39xx
mach-tx49xx MIPS: TX49xx: Rename ARCH_KMALLOC_MINALIGN to ARCH_DMA_MINALIGN 2010-10-04 18:33:58 +01:00
mach-vr41xx
mach-wrppmc
mach-yosemite
mips-boards MIPS: GIC: Remove dependencies from Malta files. 2010-10-04 18:33:56 +01:00
octeon MIPS: Octeon: Allow more than 3.75GB of memory with PCIe 2010-08-05 13:26:31 +01:00
pci mips: remove dma64_addr_t usage 2010-10-27 18:03:17 -07:00
pmc-sierra/msp71xx MIPS: MSP71xx: Remove dead CONFIG_MTD_PMC_MSP_RAMROOT 2010-08-05 13:26:01 +01:00
sgi tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
sibyte MIPS: Nuke trailing blank lines 2010-02-27 12:53:14 +01:00
sn MIPS: IP27: Don't include <linux/topology.h> into <asm/sn/agent.h>. 2010-08-05 13:25:38 +01:00
txx9 MIPS: TXx9: Remove forced serial console setting 2010-02-27 12:53:22 +01:00
vr41xx Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
xtalk
abi.h MIPS: Move signal trampolines off of the stack. 2010-04-12 17:26:15 +01:00
addrspace.h
amon.h MIPS: CMP: activate CMP support 2009-07-03 15:45:26 +01:00
arch_hweight.h MIPS: Create and use asm/arch_hweight.h 2010-08-05 13:26:02 +01:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
asm.h
asmmacro-32.h
asmmacro-64.h
asmmacro.h MIPS: Use EI/DI for MIPS R2. 2008-12-12 18:12:23 +00:00
atomic.h MIPS: Get rid of branches to .subsections. 2010-10-29 19:08:24 +01:00
auxvec.h
barrier.h MIPS: Optimize spinlocks. 2010-02-27 12:53:42 +01:00
bcache.h
bitops.h MIPS: Get rid of branches to .subsections. 2010-10-29 19:08:24 +01:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bootinfo.h MIPS: JZ4740: Add base support for Ingenic JZ4740 System-on-a-Chip 2010-08-05 13:26:12 +01:00
branch.h
break.h MIPS: kprobe: Add support. 2010-08-05 13:26:29 +01:00
bug.h MIPS: Convert BUG() to use unreachable() 2009-12-05 09:10:12 -08:00
bugs.h MIPS: Build fix - include <linux/smp.h> into all smp_processor_id() users. 2009-06-24 18:34:39 +01: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
cachectl.h
cacheflush.h block: add helpers to run flush_dcache_page() against a bio and a request's pages 2009-11-26 09:16:19 +01:00
cacheops.h MIPS: RM7000: Add support for tertiary cache 2010-08-05 13:26:06 +01:00
cevt-r4k.h MIPS: Have a heart for a lonely, lost header file ... 2008-10-15 12:46:49 +01:00
checksum.h MIPS: uaccess: Switch lock annotations to might_fault(). 2009-05-14 13:50:28 +01:00
clock.h MIPS: Loongson 2F: Add CPU frequency scaling support 2009-12-17 01:57:20 +00:00
cmp.h
cmpxchg.h MIPS: Get rid of branches to .subsections. 2010-10-29 19:08:24 +01:00
compat-signal.h
compat.h compat: Make compat_alloc_user_space() incorporate the access_ok() 2010-09-14 16:08:45 -07:00
compiler.h
cop2.h MIPS: Don't place cu2 notifiers in __cpuinitdata 2010-10-04 18:34:00 +01:00
cpu-features.h MIPS: Update comment for cpu_has_clo_clz 2010-08-05 13:26:01 +01:00
cpu-info.h MIPS: 64-bit: Detect virtual memory size 2010-02-02 19:56:23 +01:00
cpu.h MIPS: JZ4740: Add base support for Ingenic JZ4740 System-on-a-Chip 2010-08-05 13:26:12 +01:00
cputime.h
current.h MIPS: Use generic current.h 2010-02-27 12:53:27 +01:00
debug.h
delay.h MIPS: Fix potencial build error in <asm/delay.h> 2009-09-17 20:07:41 +02:00
device.h MIPS: Nuke trailing blank lines 2010-02-27 12:53:14 +01:00
div64.h MIPS: Rewrite <asm/div64.h> to work with gcc 4.4.0. 2009-05-14 13:50:29 +01:00
dma-mapping.h dma-mapping: remove dma_is_consistent API 2010-08-11 08:59:21 -07:00
dma.h
ds1287.h Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
dsp.h
edac.h
elf.h MIPS: Enable heap randomization. 2010-08-05 13:26:06 +01:00
emergency-restart.h
errno.h cfg80211: errno.h: define ERFKILL 2009-06-07 05:01:00 -07:00
fb.h
fcntl.h MIPS: 32-bit: Fix build failure in asm/fcntl.h 2010-10-18 16:59:04 +01:00
fixmap.h MIPS: Fix machine check exception in kmap_coherent() 2009-11-02 12:00:04 +01:00
floppy.h
fpregdef.h
fpu.h MIPS: Cleanup signal code initialization 2009-12-17 01:57:32 +00:00
fpu_emulator.h MIPS: Fix build breakage if CONFIG_DEBUG_FS is enabled. 2010-04-12 17:26:08 +01:00
ftrace.h MIPS: Loongson: Change the Email address of Wu Zhangjin 2010-02-27 12:53:12 +01:00
futex.h
gcmpregs.h MIPS: GIC: Random fixes and enhancements. 2009-11-02 12:00:06 +01:00
gic.h MIPS: GIC: Remove dependencies from Malta files. 2010-10-04 18:33:56 +01:00
gpio.h
gt64120.h
hardirq.h MIPS: Convert to asm-generic/hardirq.h 2009-09-17 20:07:48 +02:00
hazards.h MIPS: Alchemy: remove SOC_AU1X00 in favor of MIPS_ALCHEMY 2010-08-05 13:26:06 +01:00
highmem.h mm: stack based kmap_atomic() 2010-10-26 16:52:08 -07:00
hugetlb.h MIPS: Add support files for hugetlbfs. 2009-06-17 11:06:30 +01:00
hw_irq.h
i8253.h i8253: Convert i8253_lock to raw_spinlock 2010-03-02 10:28:38 +01:00
i8259.h MIPS: i8259: Convert IRQ controller lock to raw spinlock. 2010-02-27 12:53:38 +01:00
ide.h
inst.h MIPS: Add instrunction format for BREAK and SYSCALL 2010-08-05 13:26:28 +01:00
io.h MIPS: add readl/write_be accessors 2010-02-27 12:53:12 +01:00
ioctl.h MIPS: ioctl.h: Cleanup. 2009-06-17 11:06:28 +01:00
ioctls.h tty: Add EXTPROC support for LINEMODE 2010-08-10 13:47:39 -07:00
ipcbuf.h
irq.h of/mips: Add device tree support to MIPS 2010-10-21 11:10:10 -06:00
irq_cpu.h
irq_gt641xx.h Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
irq_regs.h
irqflags.h Fix IRQ flag handling naming 2010-10-07 14:08:55 +01:00
isadep.h
jazz.h
jazzdma.h
Kbuild byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
kdebug.h MIPS: kprobe: Add support. 2010-08-05 13:26:29 +01:00
kexec.h
kgdb.h kgdb,mips: Individual register get/set for mips 2010-08-05 09:22:21 -05:00
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kprobes.h MIPS: kprobe: Add support. 2010-08-05 13:26:29 +01:00
kspd.h
linkage.h
local.h local_t: Remove cpu_local_xx macros 2010-01-05 15:34:49 +09:00
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
m48t37.h
mc146818-time.h mips: use bcd2bin/bin2bcd 2008-10-20 08:52:41 -07:00
mc146818rtc.h
mips_mt.h
mipsmtregs.h
mipsprom.h
mipsregs.h MIPS: Define ST0_NMI in asm/mipsregs.h 2010-08-05 13:26:22 +01:00
mman.h MIPS: Add missing definition for MADV_HWPOISON. 2009-12-01 16:21:25 +00:00
mmu.h MIPS: Preliminary VDSO 2010-04-12 17:26:14 +01:00
mmu_context.h MIPS: Preliminary VDSO 2010-04-12 17:26:14 +01:00
mmzone.h
module.h MIPS: Add Cavium OCTEON processor constants and CPU probe. 2009-01-11 09:57:22 +00:00
msc01_ic.h MIPS: Nuke trailing blank lines 2010-02-27 12:53:14 +01:00
msgbuf.h
mutex.h
nile4.h MIPS: Nuke trailing blank lines 2010-02-27 12:53:14 +01:00
paccess.h
page.h MIPS: Document why RELOC_HIDE is there. 2010-10-04 18:33:55 +01:00
param.h MIPS: Simplify param.h by using <asm-generic/param.h> 2010-02-27 12:53:04 +01:00
parport.h MIPS: Use generic parport.h 2010-02-27 12:53:27 +01:00
pci.h MIPS: Octeon: Disallow MSI-X interrupt and fall back to MSI interrupts. 2010-08-05 13:26:27 +01:00
percpu.h
pgalloc.h MIPS: Two-level pagetables for 64-bit kernels with 64KB pages. 2010-02-27 12:53:03 +01:00
pgtable-32.h mm: remove pte_*map_nested() 2010-10-26 16:52:08 -07:00
pgtable-64.h mm: remove pte_*map_nested() 2010-10-26 16:52:08 -07:00
pgtable-bits.h MIPS: Implement Read Inhibit/eXecute Inhibit 2010-02-27 12:53:26 +01:00
pgtable.h Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2010-03-01 09:15:15 -08:00
pmon.h
poll.h
posix_types.h
prefetch.h MIPS: NEC VR5500 processor support fixup 2009-03-11 21:11:07 +01:00
processor.h MIPS: Remove unused task_struct.trap_no field. 2010-08-05 13:26:30 +01:00
prom.h of/mips: Cleanup some include directives/files. 2010-10-21 11:10:11 -06:00
ptrace.h MIPS: kprobes: Define regs_return_value() 2010-08-05 13:26:28 +01:00
r4k-timer.h
r4kcache.h MIPS: Support 64-byte D-cache line size 2009-06-17 11:06:24 +01:00
reboot.h
reg.h MIPS: 64-bit: Fix o32 core dump 2009-07-03 15:45:27 +01:00
regdef.h
resource.h
rm9k-ocd.h
rtlx.h
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
seccomp.h MIPS: Fix TIF_32BIT undefined problem when seccomp is disabled 2009-03-13 23:07:59 +01:00
sections.h
segment.h
sembuf.h
serial.h MIPS: Use generic serial.h 2010-02-27 12:53:27 +01:00
setup.h MIPS: Extend COMMAND_LINE_SIZE 2009-11-02 12:00:01 +01:00
sgialib.h MIPS: ARC: Cleanup unused definitions from sgialib.h 2010-02-27 12:53:45 +01:00
sgiarcs.h
sgidefs.h
shmbuf.h
shmparam.h
sigcontext.h headers_check fix: mips, sigcontext.h 2009-02-01 11:01:26 +05:30
siginfo.h Define _addr_lsb in siginfo_t for mips 2010-10-09 11:42:37 -07:00
signal.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
sim.h
smp-ops.h cpumask: arch_send_call_function_ipi_mask: mips 2009-09-24 09:34:45 +09:30
smp.h MIPS: SMP: Inline arch_send_call_function_{single_ipi,ipi_mask} 2009-09-30 21:47:00 +02:00
smtc.h
smtc_ipi.h MIPS: SMTC: Avoid queing multiple reschedule IPIs 2009-11-02 12:00:06 +01:00
smtc_proc.h
smvp.h
sni.h
socket.h net: Generalize socket rx gap / receive queue overflow cmsg 2009-10-12 13:26:31 -07:00
sockios.h
sparsemem.h MIPS: Nuke trailing blank lines 2010-02-27 12:53:14 +01:00
spinlock.h MIPS: Optimize spinlocks. 2010-02-27 12:53:42 +01:00
spinlock_types.h MIPS: Optimize spinlocks. 2010-02-27 12:53:42 +01:00
spram.h MIPS: SPRAM: Clean up support code a little 2009-11-02 12:00:05 +01:00
stackframe.h MIPS: Loongson-2F: Use CONFIG_CPU_JUMP_WORKAROUNDS to control workarounds. 2010-04-30 20:52:58 +01:00
stacktrace.h
stat.h
statfs.h add f_flags to struct statfs(64) 2010-08-09 16:48:44 -04:00
string.h
suspend.h MIPS: Add hibernation support 2009-06-17 11:06:31 +01:00
swab.h MIPS: Define __arch_swab64 for all mips r2 cpus 2009-07-03 15:45:25 +01:00
sysmips.h
system.h MIPS: Get rid of branches to .subsections. 2010-10-29 19:08:24 +01:00
termbits.h tty: Add EXTPROC support for LINEMODE 2010-08-10 13:47:39 -07:00
termios.h MIPS: Add return value checks to user_termio_to_kernel_termios() 2009-01-30 21:32:57 +00:00
thread_info.h MIPS: Audit: Fix hang in entry.S. 2010-10-04 18:33:55 +01:00
time.h mips: Use generic mult/shift factor calculation for clocks 2009-11-13 20:46:24 +01:00
timex.h
titan_dep.h
tlb.h
tlbdebug.h
tlbflush.h
topology.h
traps.h
txx9irq.h
txx9pio.h
txx9tmr.h
types.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
uaccess.h MIPS: Fix sparse warning in incompatiable argument type of clear_user. 2009-05-22 13:52:05 +01:00
uasm.h MIPS: uasm: Add option to export uasm API. 2010-08-05 13:26:21 +01:00
ucontext.h MIPS: Use generic ucontext.h 2010-02-27 12:53:27 +01:00
unaligned.h MIPS: Avoid spurious make includecheck message 2009-09-30 21:47:02 +02:00
unistd.h MIPS: Hookup fanotify_init, fanotify_mark, and prlimit64 syscalls. 2010-10-04 18:33:59 +01:00
user.h
vdso.h MIPS: Preliminary VDSO 2010-04-12 17:26:14 +01:00
vga.h
vpe.h
war.h
watch.h
wbflush.h
xor.h