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