Add LIKELY/UNLIKELY macros for general use, replacing s390x-specific
versions.  See #271504.  (Florian Krohm, britzel@acm.org)



git-svn-id: svn://svn.valgrind.org/vex/trunk@2150 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/priv/main_util.h b/priv/main_util.h
index ca63d8c..32afb7e 100644
--- a/priv/main_util.h
+++ b/priv/main_util.h
@@ -43,13 +43,15 @@
 
 #define NULL ((void*)0)
 
+#define LIKELY(x)       __builtin_expect(!!(x), 1)
+#define UNLIKELY(x)     __builtin_expect(!!(x), 0)
 
 /* Stuff for panicking and assertion. */
 
 #define VG__STRING(__str)  #__str
 
 #define vassert(expr)                                           \
-  ((void) ((expr) ? 0 :                                         \
+  ((void) (LIKELY(expr) ? 0 :                                   \
            (vex_assert_fail (VG__STRING(expr),                  \
                              __FILE__, __LINE__,                \
                              __PRETTY_FUNCTION__), 0)))