]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - wtf/AlwaysInline.h
JavaScriptCore-554.1.tar.gz
[apple/javascriptcore.git] / wtf / AlwaysInline.h
index 3f54815c1be21d80d5c8deda2f0a7e862bfbbc0a..64fdd995776afe5338cc925e1f5011daff6c2cb2 100644 (file)
@@ -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
  *
  */
 
+#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
 
 #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