Merge branch 'for-2.6.28' of git://linux-nfs.org/~bfields/linux
[linux-2.6] / arch / cris / include / arch-v32 / arch / bug.h
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