| /* 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 */ |