|
@@ -12,13 +12,11 @@
|
|
#ifndef __ASSEMBLY__
|
|
#ifndef __ASSEMBLY__
|
|
|
|
|
|
#ifdef __powerpc64__
|
|
#ifdef __powerpc64__
|
|
-#define BUG_TABLE_ENTRY(label, line, file, func) \
|
|
|
|
- ".llong " #label ", " #line ", " #file ", " #func "\n"
|
|
|
|
-#define TRAP_OP(ra, rb) "1: tdnei " #ra ", " #rb "\n"
|
|
|
|
|
|
+#define BUG_TABLE_ENTRY ".llong"
|
|
|
|
+#define BUG_TRAP_OP "tdnei"
|
|
#else
|
|
#else
|
|
-#define BUG_TABLE_ENTRY(label, line, file, func) \
|
|
|
|
- ".long " #label ", " #line ", " #file ", " #func "\n"
|
|
|
|
-#define TRAP_OP(ra, rb) "1: twnei " #ra ", " #rb "\n"
|
|
|
|
|
|
+#define BUG_TABLE_ENTRY ".long"
|
|
|
|
+#define BUG_TRAP_OP "twnei"
|
|
#endif /* __powerpc64__ */
|
|
#endif /* __powerpc64__ */
|
|
|
|
|
|
struct bug_entry {
|
|
struct bug_entry {
|
|
@@ -41,17 +39,17 @@ struct bug_entry *find_bug(unsigned long bugaddr);
|
|
#define BUG() do { \
|
|
#define BUG() do { \
|
|
__asm__ __volatile__( \
|
|
__asm__ __volatile__( \
|
|
"1: twi 31,0,0\n" \
|
|
"1: twi 31,0,0\n" \
|
|
- ".section __bug_table,\"a\"\n\t" \
|
|
|
|
- BUG_TABLE_ENTRY(1b,%0,%1,%2) \
|
|
|
|
|
|
+ ".section __bug_table,\"a\"\n" \
|
|
|
|
+ "\t"BUG_TABLE_ENTRY" 1b,%0,%1,%2\n" \
|
|
".previous" \
|
|
".previous" \
|
|
: : "i" (__LINE__), "i" (__FILE__), "i" (__FUNCTION__)); \
|
|
: : "i" (__LINE__), "i" (__FILE__), "i" (__FUNCTION__)); \
|
|
} while (0)
|
|
} while (0)
|
|
|
|
|
|
#define BUG_ON(x) do { \
|
|
#define BUG_ON(x) do { \
|
|
__asm__ __volatile__( \
|
|
__asm__ __volatile__( \
|
|
- TRAP_OP(%0,0) \
|
|
|
|
- ".section __bug_table,\"a\"\n\t" \
|
|
|
|
- BUG_TABLE_ENTRY(1b,%1,%2,%3) \
|
|
|
|
|
|
+ "1: "BUG_TRAP_OP" %0,0\n" \
|
|
|
|
+ ".section __bug_table,\"a\"\n" \
|
|
|
|
+ "\t"BUG_TABLE_ENTRY" 1b,%1,%2,%3\n" \
|
|
".previous" \
|
|
".previous" \
|
|
: : "r" ((long)(x)), "i" (__LINE__), \
|
|
: : "r" ((long)(x)), "i" (__LINE__), \
|
|
"i" (__FILE__), "i" (__FUNCTION__)); \
|
|
"i" (__FILE__), "i" (__FUNCTION__)); \
|
|
@@ -59,9 +57,9 @@ struct bug_entry *find_bug(unsigned long bugaddr);
|
|
|
|
|
|
#define WARN_ON(x) do { \
|
|
#define WARN_ON(x) do { \
|
|
__asm__ __volatile__( \
|
|
__asm__ __volatile__( \
|
|
- TRAP_OP(%0,0) \
|
|
|
|
- ".section __bug_table,\"a\"\n\t" \
|
|
|
|
- BUG_TABLE_ENTRY(1b,%1,%2,%3) \
|
|
|
|
|
|
+ "1: "BUG_TRAP_OP" %0,0\n" \
|
|
|
|
+ ".section __bug_table,\"a\"\n" \
|
|
|
|
+ "\t"BUG_TABLE_ENTRY" 1b,%1,%2,%3\n" \
|
|
".previous" \
|
|
".previous" \
|
|
: : "r" ((long)(x)), \
|
|
: : "r" ((long)(x)), \
|
|
"i" (__LINE__ + BUG_WARNING_TRAP), \
|
|
"i" (__LINE__ + BUG_WARNING_TRAP), \
|