blob: 04151208189f6b3b00e29a9ad5071537170810f4 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef _SPARC_BUG_H
2#define _SPARC_BUG_H
3
Matt Mackallc8538a72005-05-01 08:59:01 -07004#ifdef CONFIG_BUG
Linus Torvalds1da177e2005-04-16 15:20:36 -07005/* Only use the inline asm until a gcc release that can handle __builtin_trap
6 * -rob 2003-06-25
7 *
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
18
19#ifdef CONFIG_DEBUG_BUGVERBOSE
20extern 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
28
29#define HAVE_ARCH_BUG
Matt Mackallc8538a72005-05-01 08:59:01 -070030#endif
31
Linus Torvalds1da177e2005-04-16 15:20:36 -070032#include <asm-generic/bug.h>
33
34#endif