linux-kernel-test/include/asm-mips
Maciej W. Rozycki 619b6e18fc [MIPS] R4000/R4400 daddiu erratum workaround
This complements the generic R4000/R4400 errata workaround code and adds 
bits for the daddiu problem.  In most places it just modifies handwritten 
assembly code so that the assembler is allowed to use a temporary register 
as daddiu may now be treated as a macro that expands to a sequence of li 
and daddu.  It is the AT register or, where AT is unavailable or used 
explicitly for another purpose, an explicitly-named register is selected, 
using the .set at=<reg> feature added recently to gas.  This feature is 
only used if CONFIG_CPU_DADDI_WORKAROUNDS has been set, so if the 
workaround remains disabled, the required version of binutils stays 
unchanged.

 Similarly, daddiu instructions put in branch delay slots in noreorder 
fragments are now taken out of them and the assembler is allowed to 
reorder them itself as possible (which it does making the whole idea of 
scheduling them into delay slots manually questionable).

 Also in the very few places where such a simple conversion was not 
possible, a handcoded longer sequence is implemented.

 Other than that there are changes to code responsible for building the 
TLB fault and page clear/copy handlers to avoid daddiu as appropriate.  
These are only effective if the erratum is verified to be present at the 
run time.

 Finally there is a trivial update to __delay(), because it uses daddiu in 
a branch delay slot.

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2008-01-29 10:14:55 +00:00
..
dec zs: move to the serial subsystem 2007-07-18 08:38:22 -07:00
emma2rh [MIPS] Define MIPS_CPU_IRQ_BASE in generic header 2007-02-06 16:53:08 +00:00
fw [MIPS] CFE: Add missing parenthesis. 2007-10-13 00:53:00 +01:00
ip32 [MIPS] IP32: More interrupt renumbering fixes. 2007-11-26 17:26:13 +00:00
jmr3927 [MIPS] txx9tmr clockevent/clocksource driver 2007-10-29 19:35:35 +00:00
lasat [MIPS] Lasat: Fix overlap of interrupt number ranges. 2007-11-15 23:21:50 +00:00
mach-atlas [MIPS] SNI: Fix mc146818_decode_year 2007-03-04 19:02:31 +00:00
mach-au1x00 [MIPS] Alchemy: fix PCI resource conflict 2007-12-14 17:34:29 +00:00
mach-bcm47xx [MIPS] Deforest the function pointer jungle in the time code. 2007-10-11 23:46:08 +01:00
mach-cobalt [MIPS] Cobalt: Fix IRQ comment; the Cobalt kernel uses CP0 counter now. 2007-11-02 16:13:48 +00:00
mach-db1x00 [MIPS] Alchemy: Renumber interrupts so irq_cpu can work. 2007-10-17 18:28:48 +01:00
mach-dec [MIPS] Split up war.h 2007-10-11 23:46:07 +01:00
mach-emma2rh [MIPS] Split up war.h 2007-10-11 23:46:07 +01:00
mach-excite [MIPS] Split up war.h 2007-10-11 23:46:07 +01:00
mach-generic [MIPS] Fix and cleanup the MIPS part of the (ab)use of CLOCK_TICK_RATE. 2007-11-02 16:13:48 +00:00
mach-ip22 [MIPS] Split up war.h 2007-10-11 23:46:07 +01:00
mach-ip27 [MIPS] Always do the ARC64_TWIDDLE_PC thing. 2007-10-18 18:11:46 +01:00
mach-ip32 [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
mach-jazz [MIPS] Fix and cleanup the MIPS part of the (ab)use of CLOCK_TICK_RATE. 2007-11-02 16:13:48 +00:00
mach-jmr3927 [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
mach-lasat [MIPS] Lasat: Fix overlap of interrupt number ranges. 2007-11-15 23:21:50 +00:00
mach-lemote [MIPS] Split up war.h 2007-10-11 23:46:07 +01:00
mach-mips [MIPS] Split up war.h 2007-10-11 23:46:07 +01:00
mach-mipssim [MIPS] Split up war.h 2007-10-11 23:46:07 +01:00
mach-pb1x00 [MIPS] Alchemy: Renumber interrupts so irq_cpu can work. 2007-10-17 18:28:48 +01:00
mach-pnx8550 [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
mach-qemu [MIPS] Fix and cleanup the MIPS part of the (ab)use of CLOCK_TICK_RATE. 2007-11-02 16:13:48 +00:00
mach-rm [MIPS] Fix and cleanup the MIPS part of the (ab)use of CLOCK_TICK_RATE. 2007-11-02 16:13:48 +00:00
mach-sibyte [MIPS] Split up war.h 2007-10-11 23:46:07 +01:00
mach-tx49xx [MIPS] Split up war.h 2007-10-11 23:46:07 +01:00
mach-vr41xx [MIPS] Split up war.h 2007-10-11 23:46:07 +01:00
mach-wrppmc [MIPS] Split up war.h 2007-10-11 23:46:07 +01:00
mach-yosemite [MIPS] Split up war.h 2007-10-11 23:46:07 +01:00
mips-boards [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
pci Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pmc-sierra/msp71xx [MIPS] MSP71XX: Add workarounds file. 2007-10-16 18:23:46 +01:00
sgi Convert SGI IP22 and specific drivers to platform_device. 2007-05-11 17:00:29 +01:00
sibyte [MIPS] time: SMP-proofing of Sibyte clockevent/clocksource code. 2007-10-22 22:09:00 +01:00
sn [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
tx4927 [MIPS] txx9tmr clockevent/clocksource driver 2007-10-29 19:35:35 +00:00
tx4938 [MIPS] txx9tmr clockevent/clocksource driver 2007-10-29 19:35:35 +00:00
vr41xx [MIPS] Separate platform_device registration for VR41xx GPIO 2007-07-12 17:41:15 +01:00
xtalk [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
a.out.h [MIPS] Fixup secure computing stuff. 2007-07-31 21:35:21 +01:00
abi.h [MIPS] signals: Share even more code. 2007-02-18 21:31:35 +00:00
addrspace.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
asm.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
asmmacro-32.h
asmmacro-64.h
asmmacro.h [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
atomic.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
auxvec.h
barrier.h [MIPS] Make support for weakly ordered LL/SC a config option. 2007-07-20 18:57:39 +01:00
bcache.h [MIPS] SNI: remove unused pcimt_scache.c 2007-08-27 02:16:54 +01:00
bitops.h forbid asm/bitops.h direct inclusion 2007-10-19 11:53:41 -07:00
bootinfo.h [MIPS] ARC: Get rid of mips_machgroup 2007-10-11 23:46:08 +01:00
branch.h
break.h
bug.h [MIPS] Fix BUG(), BUG_ON() handling 2007-04-20 14:58:37 +01:00
bugs.h [MIPS] R4000/R4400 errata workarounds 2008-01-29 10:14:54 +00:00
byteorder.h [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
cache.h
cachectl.h
cacheflush.h [MIPS] Remove unused argument from kunmap_coherent(). 2007-04-27 16:20:24 +01:00
cacheops.h [MIPS] Cacheops.h: Fix typo. 2008-01-15 01:04:42 +00:00
checksum.h [MIPS] Fix wrong checksum for split TCP packets on 64-bit MIPS 2007-04-20 14:58:37 +01:00
cmpxchg.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
compat-signal.h [MIPS] use compat_siginfo in rt_sigframe_n32 2007-06-26 19:57:33 +02:00
compat.h Introduce compat_u64 and compat_s64 types 2007-07-16 09:05:48 -07:00
compiler.h [MIPS] cpu-bugs64.c: GCC 3.3 constraint workaround 2007-09-19 19:33:14 +01:00
cpu-features.h [MIPS] Fix use of smp_processor_id() in preemptible code. 2007-12-01 00:39:37 +00:00
cpu-info.h [MIPS] Fix shadow register support. 2007-11-15 23:21:49 +00:00
cpu.h [MIPS] Convert list of CPU types from #define to enum. 2007-10-11 23:46:16 +01:00
cputime.h
current.h
debug.h
delay.h [MIPS] R4000/R4400 daddiu erratum workaround 2008-01-29 10:14:55 +00:00
device.h Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
div64.h [MIPS] Change names of local variables to silence sparse 2007-07-10 17:33:06 +01:00
dma-mapping.h [MIPS] Don't claim we support dma_declare_coherent_memory - we don't. 2007-02-13 22:40:50 +00:00
dma.h [MIPS] 64-bit Sibyte kernels need DMA32. 2007-11-26 17:26:14 +00:00
ds1286.h
dsp.h
edac.h [MIPS] Polish <asm/edac.h>. 2007-08-27 02:16:59 +01:00
elf.h [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
emergency-restart.h
errno.h
fb.h fbdev: detect primary display device 2007-07-17 10:23:11 -07:00
fcntl.h [MIPS] Fix value of O_TRUNC 2007-10-01 14:17:50 +01:00
fixmap.h [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
floppy.h cleanup floppy.h 2007-10-17 08:42:55 -07:00
fpregdef.h
fpu_emulator.h
fpu.h remove asm/bitops.h includes 2007-10-19 11:53:41 -07:00
futex.h [MIPS] Fix possible hang in LL/SC futex loops. 2007-11-26 17:26:14 +00:00
gdb-stub.h
gpio.h [MIPS] Add generic GPIO support 2007-07-10 17:32:55 +01:00
gt64120.h [MIPS] time: Add GT641xx timer0 clockevent driver 2007-10-22 22:09:00 +01:00
hardirq.h
hazards.h [MIPS] R1: Fix hazard barriers to make kernels work on R2 also. 2007-10-11 23:46:19 +01:00
highmem.h [MIPS] Remove LIMITED_DMA support 2007-05-11 14:28:31 +01:00
hw_irq.h [MIPS] i8295 cleanups. 2007-10-11 23:46:04 +01:00
i8253.h [MIPS] Fix pcspeaker build. 2007-11-26 17:26:13 +00:00
i8259.h [MIPS] i8295 cleanups. 2007-10-11 23:46:04 +01:00
ide.h
inst.h [MIPS] Fix rdhwr_op definition. 2006-07-13 21:26:08 +01:00
inventory.h [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
io.h Remove dma_cache_(wback|inv|wback_inv) functions 2007-10-17 08:42:57 -07:00
ioctl.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
ioctls.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
ipcbuf.h
irq_cpu.h [MIPS] Define MIPS_CPU_IRQ_BASE in generic header 2007-02-06 16:53:08 +00:00
irq_gt641xx.h [MIPS] Add GT641xx IRQ routines. 2007-10-11 23:46:04 +01:00
irq_regs.h [MIPS] Complete fixes after removal of pt_regs argument to int handlers. 2006-10-08 02:38:28 +01:00
irq.h [MIPS] IRQ Affinity Support for SMTC on Malta Platform 2007-10-11 23:45:57 +01:00
irqflags.h [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
isadep.h
jazz.h [MIPS] JAZZ fixes 2007-10-11 23:46:00 +01:00
jazzdma.h [MIPS] JAZZ fixes 2007-10-11 23:46:00 +01:00
Kbuild [MIPS] Have headers_install install <asm/cachectl.h> and <asm/sysmips.h>. 2006-09-27 13:37:56 +01:00
kdebug.h move die notifier handling to common code 2007-05-08 11:15:04 -07:00
kexec.h kdump/kexec: calculate note size at compile time 2007-05-08 11:15:07 -07:00
kmap_types.h
kspd.h
linkage.h [MIPS] Sibyte: Replace SB1 cachecode with standard R4000 class cache code. 2007-10-11 23:46:05 +01:00
local.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
m48t35.h
m48t37.h
mc146818-time.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
mc146818rtc.h
mips_mt.h [MIPS] MT: Enable coexistence of AP/SP with VSMP and SMTC. 2007-07-31 21:35:24 +01:00
mipsmtregs.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
mipsprom.h
mipsregs.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
mman.h [PATCH] Remove final references to deprecated "MAP_ANON" page protection flag 2007-02-11 10:51:17 -08:00
mmu_context.h [MIPS] Kill num_online_cpus() loops. 2007-10-11 23:46:18 +01:00
mmu.h
mmzone.h [PATCH] Delete unused definitions of kvaddr_to_nid 2006-06-23 07:42:52 -07:00
module.h [MIPS] define Hit_Invalidate_I to Index_Invalidate_I for loongson2 2007-07-10 17:33:02 +01:00
msc01_ic.h [MIPS] MT: Reenable EIC support and add support for SOCit SC. 2007-05-11 14:28:31 +01:00
msgbuf.h
mutex.h
namei.h
nile4.h [MIPS] Add back support for LASAT platforms 2007-10-11 23:46:00 +01:00
paccess.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
page.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
param.h
parport.h [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
pci.h [MIPS] PCI: Always enable CONFIG_PCI_DOMAINS 2007-10-11 23:46:03 +01:00
percpu.h
pgalloc.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
pgtable-32.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
pgtable-64.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
pgtable-bits.h
pgtable.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
pmon.h [MIPS] PMON: Fix cpustart declaration. 2007-07-31 21:35:32 +01:00
poll.h Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
posix_types.h
prctl.h [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
prefetch.h
processor.h [MIPS] Fixup secure computing stuff. 2007-07-31 21:35:21 +01:00
ptrace.h [MIPS] IP22: Fix warning. 2007-10-16 18:23:47 +01:00
qemu.h [MIPS] Implement clockevents for R4000-style cp0 count/compare interrupt 2007-10-11 23:46:09 +01:00
r4kcache.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
reboot.h
reg.h
regdef.h
resource.h
rm9k-ocd.h
rtlx.h [MIPS] RTLX: Handle copy_*_user return values. 2007-03-17 01:03:29 +00:00
scatterlist.h Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
seccomp.h [MIPS] Fixup secure computing stuff. 2007-07-31 21:35:21 +01:00
sections.h [MIPS] Remove _fdata from asm-mips/sections.h 2007-02-06 16:53:15 +00:00
segment.h
semaphore.h kill DECLARE_MUTEX_LOCKED 2007-10-17 08:42:47 -07:00
sembuf.h
serial.h [MIPS] Put an end to <asm/serial.h>'s long and annyoing existence 2007-07-10 17:33:01 +01:00
setup.h [PATCH] cleanup asm/setup.h userspace visibility 2006-12-07 08:39:46 -08:00
sgialib.h [MIPS] Fix and cleanup the mess that a dozen prom_printf variants are. 2007-03-04 19:02:37 +00:00
sgiarcs.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
sgidefs.h
shmbuf.h
shmparam.h
sigcontext.h [MIPS] Add basic SMARTMIPS ASE support 2007-02-22 00:50:44 +00:00
siginfo.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
signal.h [MIPS] signals: Share even more code. 2007-02-18 21:31:35 +00:00
sim.h [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
smp.h [MIPS] SMP: Implement smp_call_function_mask(). 2007-10-11 23:46:18 +01:00
smtc_ipi.h [MIPS] SMTC: Fix build error. 2008-01-22 00:35:23 +00:00
smtc_proc.h
smtc.h [MIPS] SMTC: Move MIPS_CPU_IPI_IRQ definition into header. 2007-08-27 02:16:55 +01:00
sni.h [MIPS] Kill duplicated setup_irq() for cp0 timer 2007-10-19 18:15:58 +01:00
socket.h [NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support 2007-04-25 22:24:21 -07:00
sockios.h [NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution 2007-04-25 22:24:04 -07:00
sparsemem.h
spinlock_types.h
spinlock.h [MIPS] Make support for weakly ordered LL/SC a config option. 2007-07-20 18:57:39 +01:00
stackframe.h [MIPS] R4000/R4400 daddiu erratum workaround 2008-01-29 10:14:55 +00:00
stacktrace.h [MIPS] unwind_stack should return a value ... 2007-08-27 02:16:55 +01:00
stat.h
statfs.h
string.h
suspend.h
sysmips.h
system.h IP22ZILOG: fix lockup and sysrq 2007-11-29 09:24:53 -08:00
termbits.h [MIPS] tty: add the new ioctls and definitions. 2007-09-10 21:25:27 +01:00
termios.h [MIPS] tty: add the new ioctls and definitions. 2007-09-10 21:25:27 +01:00
thread_info.h Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus 2007-07-31 20:41:53 -07:00
time.h [MIPS] Only build r4k clocksource for systems that work ok with it. 2007-11-26 17:26:14 +00:00
timex.h [MIPS] Change get_cycles to always return 0. 2007-11-15 23:21:49 +00:00
titan_dep.h
tlb.h
tlbdebug.h [MIPS] Cleanup tlbdebug.h 2007-07-12 17:41:11 +01:00
tlbflush.h remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
topology.h
traps.h
txx9irq.h [MIPS] The irq_chip for TX39/TX49 SoCs 2007-08-27 02:16:52 +01:00
txx9tmr.h [MIPS] txx9tmr clockevent/clocksource driver 2007-10-29 19:35:35 +00:00
types.h remove strict ansi check from __u64 in asm/types.h 2007-10-17 08:42:53 -07:00
uaccess.h [MIPS] R4000/R4400 daddiu erratum workaround 2008-01-29 10:14:55 +00:00
ucontext.h
unaligned.h [MIPS] Optimize get_unaligned / put_unaligned implementations. 2007-10-11 23:46:15 +01:00
unistd.h [MIPS] Wire up the fallocate syscall. 2007-07-31 21:35:22 +01:00
user.h [MIPS] Fix errors detected by "make headers_check" 2006-09-27 13:37:40 +01:00
vga.h [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
vpe.h
war.h [MIPS] R4000/R4400 errata workarounds 2008-01-29 10:14:54 +00:00
wbflush.h
xor.h