From 8879afda8b95340b8e2263e4862d02bfe6aa54f1 Mon Sep 17 00:00:00 2001
From: Miles Bader <miles@lsi.nec.co.jp>
Date: Fri, 30 Aug 2002 05:13:57 +0000
Subject: (likely, unlikely): New macros. (__malloc_likely, __malloc_unlikely):
 Macros removed.

---
 libc/stdlib/malloc/malloc.h | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

(limited to 'libc')

diff --git a/libc/stdlib/malloc/malloc.h b/libc/stdlib/malloc/malloc.h
index 4914a9edc..30a28b776 100644
--- a/libc/stdlib/malloc/malloc.h
+++ b/libc/stdlib/malloc/malloc.h
@@ -110,14 +110,16 @@ extern malloc_mutex_t __malloc_sbrk_lock;
 #endif /* __UCLIBC_HAS_THREADS__ */
 
 
-/* Use branch-prediction macros from libc if defined.  */
-#ifdef likely
-#define __malloc_likely(c)	likely(c)
-#define __malloc_unlikely(c)	unlikely(c)
+/* branch-prediction macros; they may already be defined by libc.  */
+#ifndef likely
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+#define likely(cond)	__builtin_expect(!!(int)(cond), 1)
+#define unlikely(cond)	__builtin_expect((int)(cond), 0)
 #else
-#define __malloc_likely(c)	(c)
-#define __malloc_unlikely(c)	(c)
+#define likely(cond)	(cond)
+#define unlikely(cond)	(cond)
 #endif
+#endif /* !likely */
 
 
 /* Define MALLOC_DEBUGGING to cause malloc to emit debugging info to stderr.  */
-- 
cgit v1.2.3