summaryrefslogtreecommitdiff
path: root/volk/lib
diff options
context:
space:
mode:
authorJohnathan Corgan2012-04-16 08:39:32 -0700
committerJohnathan Corgan2012-04-16 08:39:32 -0700
commit847be64ac11f767a9ef631154ef88030e9d4d8ba (patch)
tree400268c513bfeb7f9d8c4bc29af4c99a2f32cf90 /volk/lib
parentec7faa9b80dff18ef170d85efdd498bea3af4940 (diff)
parent92db96430685e843443a00936328b3539354c83e (diff)
downloadgnuradio-847be64ac11f767a9ef631154ef88030e9d4d8ba.tar.gz
gnuradio-847be64ac11f767a9ef631154ef88030e9d4d8ba.tar.bz2
gnuradio-847be64ac11f767a9ef631154ef88030e9d4d8ba.zip
Merge branch 'maint'
Conflicts: volk/gen/make_cpuid_c.py
Diffstat (limited to 'volk/lib')
-rw-r--r--volk/lib/gcc_x86_cpuid.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/volk/lib/gcc_x86_cpuid.h b/volk/lib/gcc_x86_cpuid.h
index 98eeb33a3..af2e7f2b4 100644
--- a/volk/lib/gcc_x86_cpuid.h
+++ b/volk/lib/gcc_x86_cpuid.h
@@ -176,3 +176,15 @@ __get_cpuid (unsigned int __level,
__cpuid (__level, *__eax, *__ebx, *__ecx, *__edx);
return 1;
}
+
+/* Return Intel AVX extended CPU capabilities register.
+ * This function will bomb on non-AVX-capable machines, so
+ * check for AVX capability before executing.
+ */
+static __inline unsigned int
+__xgetbv(void)
+{
+ unsigned int index, __eax, __edx;
+ __asm__ ("xgetbv" : "=a"(__eax), "=d"(__edx) : "c" (index));
+ return __eax;
+}