| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #ifndef __ASM_BUG_H | |
| #define __ASM_BUG_H | |
| #include <linux/compiler.h> | |
| #include <asm/sgidefs.h> | |
| #ifdef CONFIG_BUG | |
| #include <asm/break.h> | |
| static inline void __noreturn BUG(void) | |
| { | |
| __asm__ __volatile__("break %0" : : "i" (BRK_BUG)); | |
| unreachable(); | |
| } | |
| #define HAVE_ARCH_BUG | |
| #if (_MIPS_ISA > _MIPS_ISA_MIPS1) | |
| static inline void __BUG_ON(unsigned long condition) | |
| { | |
| if (__builtin_constant_p(condition)) { | |
| if (condition) | |
| BUG(); | |
| else | |
| return; | |
| } | |
| __asm__ __volatile__("tne $0, %0, %1" | |
| : : "r" (condition), "i" (BRK_BUG)); | |
| } | |
| #define BUG_ON(C) __BUG_ON((unsigned long)(C)) | |
| #define HAVE_ARCH_BUG_ON | |
| #endif /* _MIPS_ISA > _MIPS_ISA_MIPS1 */ | |
| #endif | |
| #include <asm-generic/bug.h> | |
| #endif /* __ASM_BUG_H */ |