| Jesper Nilsson | 0dfb8c3 | 2008-01-17 10:42:58 +0100 | [diff] [blame] | 1 | #ifndef __ASM_CRISv32_ARCH_BUG_H | 
 | 2 | #define __ASM_CRISv32_ARCH_BUG_H | 
 | 3 |  | 
 | 4 | #include <linux/stringify.h> | 
 | 5 |  | 
 | 6 | #ifdef CONFIG_BUG | 
 | 7 | #ifdef CONFIG_DEBUG_BUGVERBOSE | 
 | 8 | /* | 
 | 9 |  * The penalty for the in-band code path will be the size of break 14. | 
 | 10 |  * All other stuff is done out-of-band with exception handlers. | 
 | 11 |  */ | 
 | 12 | #define BUG()								\ | 
 | 13 | 	__asm__ __volatile__ ("0: break 14\n\t"				\ | 
 | 14 | 			      ".section .fixup,\"ax\"\n"		\ | 
 | 15 | 			      "1:\n\t"					\ | 
 | 16 | 			      "move.d %0, $r10\n\t"			\ | 
 | 17 | 			      "move.d %1, $r11\n\t"			\ | 
 | 18 | 			      "jump do_BUG\n\t"				\ | 
 | 19 | 			      "nop\n\t"					\ | 
 | 20 | 			      ".previous\n\t"				\ | 
 | 21 | 			      ".section __ex_table,\"a\"\n\t"		\ | 
 | 22 | 			      ".dword 0b, 1b\n\t"			\ | 
 | 23 | 			      ".previous\n\t"				\ | 
 | 24 | 			      : : "ri" (__FILE__), "i" (__LINE__)) | 
 | 25 | #else | 
 | 26 | #define BUG() __asm__ __volatile__ ("break 14\n\t") | 
 | 27 | #endif | 
 | 28 |  | 
 | 29 | #define HAVE_ARCH_BUG | 
 | 30 | #endif | 
 | 31 |  | 
 | 32 | #include <asm-generic/bug.h> | 
 | 33 | #endif |