Mercurial > mplayer.hg
comparison configure @ 35101:3e1a4184b70e
Add SSE3, SSE4, SSE4.2 and AVX detection.
Patch by Xidorn Quan, quanxunzhen gmail
author | cehoyos |
---|---|
date | Fri, 14 Sep 2012 14:16:08 +0000 |
parents | bc7b006732c0 |
children | 006375b8c072 |
comparison
equal
deleted
inserted
replaced
35100:bc7b006732c0 | 35101:3e1a4184b70e |
---|---|
579 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect] | 579 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect] |
580 --enable-3dnow enable 3DNow! [autodetect] | 580 --enable-3dnow enable 3DNow! [autodetect] |
581 --enable-3dnowext enable extended 3DNow! [autodetect] | 581 --enable-3dnowext enable extended 3DNow! [autodetect] |
582 --enable-sse enable SSE [autodetect] | 582 --enable-sse enable SSE [autodetect] |
583 --enable-sse2 enable SSE2 [autodetect] | 583 --enable-sse2 enable SSE2 [autodetect] |
584 --enable-sse3 enable SSE3 [autodetect] | |
584 --enable-ssse3 enable SSSE3 [autodetect] | 585 --enable-ssse3 enable SSSE3 [autodetect] |
586 --enable-sse4 enable SSE4 [autodetect] | |
587 --enable-sse42 enable SSE4.2 [autodetect] | |
588 --enable-avx enable AVX [autodetect] | |
585 --enable-shm enable shm [autodetect] | 589 --enable-shm enable shm [autodetect] |
586 --enable-altivec enable AltiVec (PowerPC) [autodetect] | 590 --enable-altivec enable AltiVec (PowerPC) [autodetect] |
587 --enable-armv5te enable DSP extensions (ARM) [autodetect] | 591 --enable-armv5te enable DSP extensions (ARM) [autodetect] |
588 --enable-armv6 enable ARMv6 (ARM) [autodetect] | 592 --enable-armv6 enable ARMv6 (ARM) [autodetect] |
589 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect] | 593 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect] |
632 _3dnow=auto | 636 _3dnow=auto |
633 _3dnowext=auto | 637 _3dnowext=auto |
634 _mmxext=auto | 638 _mmxext=auto |
635 _sse=auto | 639 _sse=auto |
636 _sse2=auto | 640 _sse2=auto |
641 _sse3=auto | |
637 _ssse3=auto | 642 _ssse3=auto |
643 _sse4_1=auto | |
644 _sse4_2=auto | |
645 _avx=auto | |
638 _cmov=auto | 646 _cmov=auto |
639 _fast_cmov=auto | 647 _fast_cmov=auto |
640 _fast_clz=auto | 648 _fast_clz=auto |
641 _armv5te=auto | 649 _armv5te=auto |
642 _armv6=auto | 650 _armv6=auto |
1439 | 1447 |
1440 --enable-sse) _sse=yes ;; | 1448 --enable-sse) _sse=yes ;; |
1441 --disable-sse) _sse=no ;; | 1449 --disable-sse) _sse=no ;; |
1442 --enable-sse2) _sse2=yes ;; | 1450 --enable-sse2) _sse2=yes ;; |
1443 --disable-sse2) _sse2=no ;; | 1451 --disable-sse2) _sse2=no ;; |
1452 --enable-sse3) _sse3=yes ;; | |
1453 --disable-sse3) _sse3=no ;; | |
1444 --enable-ssse3) _ssse3=yes ;; | 1454 --enable-ssse3) _ssse3=yes ;; |
1445 --disable-ssse3) _ssse3=no ;; | 1455 --disable-ssse3) _ssse3=no ;; |
1456 --enable-sse4) _sse4_1=yes;; | |
1457 --disable-sse4) _sse4_1=no;; | |
1458 --enable-sse42) _sse4_2=yes;; | |
1459 --disable-sse42) _sse4_2=no;; | |
1460 --enable-avx) _avx=yes;; | |
1461 --disable-avx) _avx=no;; | |
1446 --enable-mmxext) _mmxext=yes ;; | 1462 --enable-mmxext) _mmxext=yes ;; |
1447 --disable-mmxext) _mmxext=no ;; | 1463 --disable-mmxext) _mmxext=no ;; |
1448 --enable-3dnow) _3dnow=yes ;; | 1464 --enable-3dnow) _3dnow=yes ;; |
1449 --disable-3dnow) _3dnow=no _3dnowext=no ;; | 1465 --disable-3dnow) _3dnow=no _3dnowext=no ;; |
1450 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;; | 1466 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;; |
1814 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1) | 1830 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1) |
1815 | 1831 |
1816 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1) | 1832 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1) |
1817 | 1833 |
1818 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \ | 1834 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \ |
1819 -e s/xmm/sse/ -e s/kni/sse/) | 1835 -e s/xmm/sse/ -e s/kni/sse/ -e s/pni/sse3/) |
1820 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag. | 1836 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag. |
1821 pparam=$(echo $pparam | sed -e 's/sse/sse mmxext/') | 1837 pparam=$(echo $pparam | sed -e 's/sse/sse mmxext/') |
1822 | 1838 |
1823 for ext in $pparam ; do | 1839 for ext in $pparam ; do |
1824 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check | 1840 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check |
1867 extcheck $_mmxext "mmxext" "sfence" | 1883 extcheck $_mmxext "mmxext" "sfence" |
1868 extcheck $_3dnow "3dnow" "femms" | 1884 extcheck $_3dnow "3dnow" "femms" |
1869 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0" | 1885 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0" |
1870 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse" | 1886 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse" |
1871 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2" | 1887 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2" |
1888 extcheck $_sse3 "sse3" "addsubps %%xmm0, %%xmm0" | |
1872 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0" | 1889 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0" |
1890 extcheck $_sse4_1 "sse4_1" "pmaxsb %%xmm0, %%xmm0" | |
1891 extcheck $_sse4_2 "sse4_2" "pcmpgtq %%xmm0, %%xmm0" | |
1892 extcheck $_avx "avx" "vpabsw %%xmm0, %%xmm0" | |
1873 extcheck $_cmov "cmov" "cmovb %%eax, %%ebx" | 1893 extcheck $_cmov "cmov" "cmovb %%eax, %%ebx" |
1874 | 1894 |
1875 echocheck "mtrr support" | 1895 echocheck "mtrr support" |
1876 if test "$_mtrr" = kernel_check ; then | 1896 if test "$_mtrr" = kernel_check ; then |
1877 _mtrr="yes" | 1897 _mtrr="yes" |
2519 test "$_3dnow" != no && _3dnow=yes | 2539 test "$_3dnow" != no && _3dnow=yes |
2520 test "$_3dnowext" != no && _3dnowext=yes | 2540 test "$_3dnowext" != no && _3dnowext=yes |
2521 test "$_mmxext" != no && _mmxext=yes | 2541 test "$_mmxext" != no && _mmxext=yes |
2522 test "$_sse" != no && _sse=yes | 2542 test "$_sse" != no && _sse=yes |
2523 test "$_sse2" != no && _sse2=yes | 2543 test "$_sse2" != no && _sse2=yes |
2544 test "$_sse3" != no && _sse3=yes | |
2524 test "$_ssse3" != no && _ssse3=yes | 2545 test "$_ssse3" != no && _ssse3=yes |
2546 test "$_sse4_1" != no && _sse4_1=yes | |
2547 test "$_sse4_2" != no && _sse4_2=yes | |
2548 test "$_avx" != no && _avx=yes | |
2525 test "$_mtrr" != no && _mtrr=yes | 2549 test "$_mtrr" != no && _mtrr=yes |
2526 fi | 2550 fi |
2527 if ppc; then | 2551 if ppc; then |
2528 _altivec=yes | 2552 _altivec=yes |
2529 fi | 2553 fi |
3001 inline_asm_check '"wunpckelub wr6, wr4"' && _iwmmxt=yes | 3025 inline_asm_check '"wunpckelub wr6, wr4"' && _iwmmxt=yes |
3002 fi | 3026 fi |
3003 echores "$_iwmmxt" | 3027 echores "$_iwmmxt" |
3004 fi | 3028 fi |
3005 | 3029 |
3006 cpuexts_all='ALTIVEC AVX MMX MMX2 MMXEXT AMD3DNOW AMD3DNOWEXT SSE SSE2 SSE3 SSSE3 SSE4 FAST_CMOV CMOV FAST_CLZ ARMV5TE ARMV6 ARMV6T2 ARMVFP VFPV3 NEON IWMMXT MMI VIS MVI' | 3030 cpuexts_all='ALTIVEC AVX MMX MMX2 MMXEXT AMD3DNOW AMD3DNOWEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 FAST_CMOV CMOV FAST_CLZ ARMV5TE ARMV6 ARMV6T2 ARMVFP VFPV3 NEON IWMMXT MMI VIS MVI' |
3007 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts" | 3031 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts" |
3008 test "$_mmx" = yes && cpuexts="MMX $cpuexts" | 3032 test "$_mmx" = yes && cpuexts="MMX $cpuexts" |
3009 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts" | 3033 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts" |
3010 test "$_mmxext" = yes && cpuexts="MMXEXT $cpuexts" | 3034 test "$_mmxext" = yes && cpuexts="MMXEXT $cpuexts" |
3011 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts" | 3035 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts" |
3012 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts" | 3036 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts" |
3013 test "$_sse" = yes && cpuexts="SSE $cpuexts" | 3037 test "$_sse" = yes && cpuexts="SSE $cpuexts" |
3014 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts" | 3038 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts" |
3039 test "$_sse3" = yes && cpuexts="SSE3 $cpuexts" | |
3015 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts" | 3040 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts" |
3041 test "$_sse4_1" = yes && cpuexts="SSE4 $cpuexts" | |
3042 test "$_sse4_2" = yes && cpuexts="SSE42 $cpuexts" | |
3043 test "$_avx" = yes && cpuexts="AVX $cpuexts" | |
3016 test "$_cmov" = yes && cpuexts="CMOV $cpuexts" | 3044 test "$_cmov" = yes && cpuexts="CMOV $cpuexts" |
3017 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts" | 3045 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts" |
3018 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts" | 3046 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts" |
3019 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts" | 3047 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts" |
3020 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts" | 3048 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts" |