diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2006-10-16 01:38:50 +0100 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2006-11-30 01:14:50 +0000 |
commit | 63dc68a8cf60cb110b147dab1704d990808b39e2 (patch) | |
tree | 48dbc7a170eff5e16c3a1f6bf4fe53ab168c4e83 /include/asm-mips | |
parent | 005985609ff72df3257fde6b29aa9d71342c2a6b (diff) | |
download | kernel_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.h | 12 | ||||
-rw-r--r-- | include/asm-mips/ptrace.h | 2 |
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 |