aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-mips
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2006-10-16 01:38:50 +0100
committerRalf Baechle <ralf@linux-mips.org>2006-11-30 01:14:50 +0000
commit63dc68a8cf60cb110b147dab1704d990808b39e2 (patch)
tree48dbc7a170eff5e16c3a1f6bf4fe53ab168c4e83 /include/asm-mips
parent005985609ff72df3257fde6b29aa9d71342c2a6b (diff)
downloadkernel_samsung_tuna-63dc68a8cf60cb110b147dab1704d990808b39e2.zip
kernel_samsung_tuna-63dc68a8cf60cb110b147dab1704d990808b39e2.tar.gz
kernel_samsung_tuna-63dc68a8cf60cb110b147dab1704d990808b39e2.tar.bz2
[MIPS] Use conditional traps for BUG_ON on MIPS II and better.
This shaves of around 4kB and a few cycles for the average kernel that has CONFIG_BUG enabled. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'include/asm-mips')
-rw-r--r--include/asm-mips/bug.h12
-rw-r--r--include/asm-mips/ptrace.h2
2 files changed, 12 insertions, 2 deletions
diff --git a/include/asm-mips/bug.h b/include/asm-mips/bug.h
index 7b4739d..4d560a5 100644
--- a/include/asm-mips/bug.h
+++ b/include/asm-mips/bug.h
@@ -1,6 +1,7 @@
#ifndef __ASM_BUG_H
#define __ASM_BUG_H
+#include <asm/sgidefs.h>
#ifdef CONFIG_BUG
@@ -13,6 +14,17 @@ do { \
#define HAVE_ARCH_BUG
+#if (_MIPS_ISA > _MIPS_ISA_MIPS1)
+
+#define BUG_ON(condition) \
+do { \
+ __asm__ __volatile__("tne $0, %0" : : "r" (condition)); \
+} while (0)
+
+#define HAVE_ARCH_BUG_ON
+
+#endif /* _MIPS_ISA > _MIPS_ISA_MIPS1 */
+
#endif
#include <asm-generic/bug.h>
diff --git a/include/asm-mips/ptrace.h b/include/asm-mips/ptrace.h
index 5f3a907..30bf555 100644
--- a/include/asm-mips/ptrace.h
+++ b/include/asm-mips/ptrace.h
@@ -80,8 +80,6 @@ struct pt_regs {
#define instruction_pointer(regs) ((regs)->cp0_epc)
#define profile_pc(regs) instruction_pointer(regs)
-extern void show_regs(struct pt_regs *);
-
extern asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit);
#endif