Not using the ppc-specific WARN_ON/BUG_ON constructs actually saves about
4K text on a ppc64_defconfig.  The main reason seems to be that prepping
the arguments to the conditional trap instructions is more work than just
doing a compare and branch.

Signed-off-by: Olof Johansson <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Cc: Paul Mackerras <[EMAIL PROTECTED]>
---

 include/asm-powerpc/bug.h |   37 -------------------------------------
 1 file changed, 37 deletions(-)

Index: linux-2.6.24-rc6/include/asm-powerpc/bug.h
===================================================================
--- linux-2.6.24-rc6.orig/include/asm-powerpc/bug.h
+++ linux-2.6.24-rc6/include/asm-powerpc/bug.h
@@ -54,12 +54,6 @@
        ".previous\n"
 #endif
 
-/*
- * BUG_ON() and WARN_ON() do their best to cooperate with compile-time
- * optimisations. However depending on the complexity of the condition
- * some compiler versions may not produce optimal results.
- */
-
 #define BUG() do {                                             \
        __asm__ __volatile__(                                   \
                "1:     twi 31,0,0\n"                           \
@@ -69,20 +63,6 @@
        for(;;) ;                                               \
 } while (0)
 
-#define BUG_ON(x) do {                                         \
-       if (__builtin_constant_p(x)) {                          \
-               if (x)                                          \
-                       BUG();                                  \
-       } else {                                                \
-               __asm__ __volatile__(                           \
-               "1:     "PPC_TLNEI"     %4,0\n"                 \
-               _EMIT_BUG_ENTRY                                 \
-               : : "i" (__FILE__), "i" (__LINE__), "i" (0),    \
-                 "i" (sizeof(struct bug_entry)),               \
-                 "r" ((__force long)(x)));                     \
-       }                                                       \
-} while (0)
-
 #define __WARN() do {                                          \
        __asm__ __volatile__(                                   \
                "1:     twi 31,0,0\n"                           \
@@ -92,23 +72,6 @@
                  "i" (sizeof(struct bug_entry)));              \
 } while (0)
 
-#define WARN_ON(x) ({                                          \
-       int __ret_warn_on = !!(x);                              \
-       if (__builtin_constant_p(__ret_warn_on)) {              \
-               if (__ret_warn_on)                              \
-                       __WARN();                               \
-       } else {                                                \
-               __asm__ __volatile__(                           \
-               "1:     "PPC_TLNEI"     %4,0\n"                 \
-               _EMIT_BUG_ENTRY                                 \
-               : : "i" (__FILE__), "i" (__LINE__),             \
-                 "i" (BUGFLAG_WARNING),                        \
-                 "i" (sizeof(struct bug_entry)),               \
-                 "r" (__ret_warn_on));                         \
-       }                                                       \
-       unlikely(__ret_warn_on);                                \
-})
-
 #endif /* __ASSEMBLY __ */
 #endif /* CONFIG_BUG */
 


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to