From 8879afda8b95340b8e2263e4862d02bfe6aa54f1 Mon Sep 17 00:00:00 2001 From: Miles Bader 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