X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/b37bf2e156556c589aea3e1f58a377f2b1189665..ba379fdc102753d6be2c4d937058fe40257329fe:/wtf/AlwaysInline.h?ds=sidebyside diff --git a/wtf/AlwaysInline.h b/wtf/AlwaysInline.h index 3f54815..64fdd99 100644 --- a/wtf/AlwaysInline.h +++ b/wtf/AlwaysInline.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005, 2007 Apple Inc. All rights reserved. + * Copyright (C) 2005, 2007, 2008 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -18,9 +18,11 @@ * */ +#include "Platform.h" + #ifndef ALWAYS_INLINE -#if COMPILER(GCC) && defined(NDEBUG) -#define ALWAYS_INLINE inline __attribute__ ((__always_inline__)) +#if COMPILER(GCC) && defined(NDEBUG) && !COMPILER(MINGW) +#define ALWAYS_INLINE inline __attribute__((__always_inline__)) #elif COMPILER(MSVC) && defined(NDEBUG) #define ALWAYS_INLINE __forceinline #else @@ -30,8 +32,32 @@ #ifndef NEVER_INLINE #if COMPILER(GCC) -#define NEVER_INLINE __attribute__ ((__noinline__)) +#define NEVER_INLINE __attribute__((__noinline__)) #else #define NEVER_INLINE #endif #endif + +#ifndef UNLIKELY +#if COMPILER(GCC) +#define UNLIKELY(x) __builtin_expect((x), 0) +#else +#define UNLIKELY(x) (x) +#endif +#endif + +#ifndef LIKELY +#if COMPILER(GCC) +#define LIKELY(x) __builtin_expect((x), 1) +#else +#define LIKELY(x) (x) +#endif +#endif + +#ifndef NO_RETURN +#if COMPILER(GCC) +#define NO_RETURN __attribute((__noreturn__)) +#else +#define NO_RETURN +#endif +#endif