Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
[pv_ops_mirror.git] / include / asm-sparc / bug.h
blob04151208189f6b3b00e29a9ad5071537170810f4
1 #ifndef _SPARC_BUG_H
2 #define _SPARC_BUG_H
4 #ifdef CONFIG_BUG
5 /* Only use the inline asm until a gcc release that can handle __builtin_trap
6 * -rob 2003-06-25
8 * gcc-3.3.1 and later will be OK -DaveM
9 */
10 #if (__GNUC__ > 3) || \
11 (__GNUC__ == 3 && __GNUC_MINOR__ > 3) || \
12 (__GNUC__ == 3 && __GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ >= 4)
13 #define __bug_trap() __builtin_trap()
14 #else
15 #define __bug_trap() \
16 __asm__ __volatile__ ("t 0x5\n\t" : : )
17 #endif
19 #ifdef CONFIG_DEBUG_BUGVERBOSE
20 extern void do_BUG(const char *file, int line);
21 #define BUG() do { \
22 do_BUG(__FILE__, __LINE__); \
23 __bug_trap(); \
24 } while (0)
25 #else
26 #define BUG() __bug_trap()
27 #endif
29 #define HAVE_ARCH_BUG
30 #endif
32 #include <asm-generic/bug.h>
34 #endif