#ifndef __ASM_CRISv32_ARCH_BUG_H #define __ASM_CRISv32_ARCH_BUG_H #include #ifdef CONFIG_BUG #ifdef CONFIG_DEBUG_BUGVERBOSE /* * The penalty for the in-band code path will be the size of break 14. * All other stuff is done out-of-band with exception handlers. */ #define BUG() \ __asm__ __volatile__ ("0: break 14\n\t" \ ".section .fixup,\"ax\"\n" \ "1:\n\t" \ "move.d %0, $r10\n\t" \ "move.d %1, $r11\n\t" \ "jump do_BUG\n\t" \ "nop\n\t" \ ".previous\n\t" \ ".section __ex_table,\"a\"\n\t" \ ".dword 0b, 1b\n\t" \ ".previous\n\t" \ : : "ri" (__FILE__), "i" (__LINE__)) #else #define BUG() __asm__ __volatile__ ("break 14\n\t") #endif #define HAVE_ARCH_BUG #endif #include #endif