This is an automated email from the git hooks/post-receive script. tille pushed a commit to branch master in repository libpll.
commit 2e7f4a5afcb00e399ee4c0bc7f01547741c7a48d Author: Andreas Tille <[email protected]> Date: Tue May 16 14:55:27 2017 +0200 uses GCC's __builtin_cpu_supports which is nicer than cpuid (Thanks a lot to James Cowgill for the patch) --- debian/patches/hardware-detect.patch | 66 ++++++++++++++++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 67 insertions(+) diff --git a/debian/patches/hardware-detect.patch b/debian/patches/hardware-detect.patch new file mode 100644 index 0000000..ddf49a2 --- /dev/null +++ b/debian/patches/hardware-detect.patch @@ -0,0 +1,66 @@ +Author: James Cowgill <[email protected]> +Last-Update: Tue, 16 May 2017 12:28:15 +0100 +Bug-Debian: https://bugs.debian.org/861754 +Description: uses GCC's __builtin_cpu_supports which is nicer than cpuid + +--- a/src/hardware.c ++++ b/src/hardware.c +@@ -21,45 +21,23 @@ + + #include "pll.h" + +-#ifndef __PPC__ +-#define cpuid(f1, f2, a, b, c, d) \ +- __asm__ __volatile__ ("cpuid" \ +- : "=a" (a), "=b" (b), "=c" (c), "=d" (d) \ +- : "a" (f1), "c" (f2)); +-#endif +- + static void cpu_features_detect() + { +- unsigned int a,b,c,d; +- + memset(pll_hardware,0,sizeof(pll_hardware_t)); + +-#ifdef __PPC__ +- pll_hardware->altivec_present = 1; +-#else +- +- cpuid(0,0,a,b,c,d); +- unsigned int maxlevel = a & 0xff; +- +- if (maxlevel >= 1) +- { +- cpuid(1,0,a,b,c,d); +- pll_hardware->mmx_present = (d >> 23) & 1; +- pll_hardware->sse_present = (d >> 25) & 1; +- pll_hardware->sse2_present = (d >> 26) & 1; +- pll_hardware->sse3_present = (c >> 0) & 1; +- pll_hardware->ssse3_present = (c >> 9) & 1; +- pll_hardware->sse41_present = (c >> 19) & 1; +- pll_hardware->sse42_present = (c >> 20) & 1; +- pll_hardware->popcnt_present = (c >> 23) & 1; +- pll_hardware->avx_present = (c >> 28) & 1; +- +- if (maxlevel >= 7) +- { +- cpuid(7,0,a,b,c,d); +- pll_hardware->avx2_present = (b >> 5) & 1; +- } +- } ++#if defined(__PPC__) ++ pll_hardware->altivec_present = __builtin_cpu_supports("altivec"); ++#elif defined(__x86_64__) || defined(__i386__) ++ pll_hardware->mmx_present = __builtin_cpu_supports("mmx"); ++ pll_hardware->sse_present = __builtin_cpu_supports("sse"); ++ pll_hardware->sse2_present = __builtin_cpu_supports("sse2"); ++ pll_hardware->sse3_present = __builtin_cpu_supports("sse3"); ++ pll_hardware->ssse3_present = __builtin_cpu_supports("ssse3"); ++ pll_hardware->sse41_present = __builtin_cpu_supports("sse4.1"); ++ pll_hardware->sse42_present = __builtin_cpu_supports("sse4.2"); ++ pll_hardware->popcnt_present = __builtin_cpu_supports("popcnt"); ++ pll_hardware->avx_present = __builtin_cpu_supports("avx"); ++ pll_hardware->avx2_present = __builtin_cpu_supports("avx2"); + #endif + } + diff --git a/debian/patches/series b/debian/patches/series index 47e6f28..ad606b6 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1,2 @@ have_x86intrin_h.patch +hardware-detect.patch -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/libpll.git _______________________________________________ debian-med-commit mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit
