浏览代码

stb_image: First-pass stbi__sse2_available for GCC

Fabian Giesen 10 年之前
父节点
当前提交
c625d24197
共有 1 个文件被更改,包括 12 次插入0 次删除
  1. 12 0
      stb_image.h

+ 12 - 0
stb_image.h

@@ -419,6 +419,18 @@ static int stbi__sse2_available()
 
 
 #ifndef STBI_SIMD_ALIGN
 #ifndef STBI_SIMD_ALIGN
 #define STBI_SIMD_ALIGN(type, name) type name
 #define STBI_SIMD_ALIGN(type, name) type name
+
+static int stbi__sse2_available()
+{
+#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 // GCC 4.8 or later
+   // GCC 4.8+ has a nice way to do this
+   return __builtin_cpu_supports("sse2");
+#else
+   // portable way to do this, preferably without using GCC inline ASM?
+   // just bail for now.
+   return 0;
+#endif
+}
 #endif
 #endif
 
 
 ///////////////////////////////////////////////
 ///////////////////////////////////////////////