xref: /linux/arch/mips/include/asm/bug.h (revision e58e871becec2d3b04ed91c0c16fe8deac9c9dfa)
1 #ifndef __ASM_BUG_H
2 #define __ASM_BUG_H
3 
4 #include <linux/compiler.h>
5 #include <asm/sgidefs.h>
6 
7 #ifdef CONFIG_BUG
8 
9 #include <asm/break.h>
10 
11 static inline void __noreturn BUG(void)
12 {
13 	__asm__ __volatile__("break %0" : : "i" (BRK_BUG));
14 	unreachable();
15 }
16 
17 #define HAVE_ARCH_BUG
18 
19 #if (_MIPS_ISA > _MIPS_ISA_MIPS1)
20 
21 static inline void  __BUG_ON(unsigned long condition)
22 {
23 	if (__builtin_constant_p(condition)) {
24 		if (condition)
25 			BUG();
26 		else
27 			return;
28 	}
29 	__asm__ __volatile__("tne $0, %0, %1"
30 			     : : "r" (condition), "i" (BRK_BUG));
31 }
32 
33 #define BUG_ON(C) __BUG_ON((unsigned long)(C))
34 
35 #define HAVE_ARCH_BUG_ON
36 
37 #endif /* _MIPS_ISA > _MIPS_ISA_MIPS1 */
38 
39 #endif
40 
41 #include <asm-generic/bug.h>
42 
43 #endif /* __ASM_BUG_H */
44