Home | History | Annotate | Download | only in x86
      1 /*
      2  *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
      3  *
      4  *  Use of this source code is governed by a BSD-style license
      5  *  that can be found in the LICENSE file in the root of the source
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS.  All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 
     12 #ifndef LOOPFILTER_X86_H
     13 #define LOOPFILTER_X86_H
     14 
     15 /* Note:
     16  *
     17  * This platform is commonly built for runtime CPU detection. If you modify
     18  * any of the function mappings present in this file, be sure to also update
     19  * them in the function pointer initialization code
     20  */
     21 
     22 #if HAVE_MMX
     23 extern prototype_loopfilter_block(vp8_loop_filter_mbv_mmx);
     24 extern prototype_loopfilter_block(vp8_loop_filter_bv_mmx);
     25 extern prototype_loopfilter_block(vp8_loop_filter_mbh_mmx);
     26 extern prototype_loopfilter_block(vp8_loop_filter_bh_mmx);
     27 extern prototype_loopfilter_block(vp8_loop_filter_mbvs_mmx);
     28 extern prototype_loopfilter_block(vp8_loop_filter_bvs_mmx);
     29 extern prototype_loopfilter_block(vp8_loop_filter_mbhs_mmx);
     30 extern prototype_loopfilter_block(vp8_loop_filter_bhs_mmx);
     31 
     32 
     33 #if !CONFIG_RUNTIME_CPU_DETECT
     34 #undef  vp8_lf_normal_mb_v
     35 #define vp8_lf_normal_mb_v vp8_loop_filter_mbv_mmx
     36 
     37 #undef  vp8_lf_normal_b_v
     38 #define vp8_lf_normal_b_v vp8_loop_filter_bv_mmx
     39 
     40 #undef  vp8_lf_normal_mb_h
     41 #define vp8_lf_normal_mb_h vp8_loop_filter_mbh_mmx
     42 
     43 #undef  vp8_lf_normal_b_h
     44 #define vp8_lf_normal_b_h vp8_loop_filter_bh_mmx
     45 
     46 #undef  vp8_lf_simple_mb_v
     47 #define vp8_lf_simple_mb_v vp8_loop_filter_mbvs_mmx
     48 
     49 #undef  vp8_lf_simple_b_v
     50 #define vp8_lf_simple_b_v vp8_loop_filter_bvs_mmx
     51 
     52 #undef  vp8_lf_simple_mb_h
     53 #define vp8_lf_simple_mb_h vp8_loop_filter_mbhs_mmx
     54 
     55 #undef  vp8_lf_simple_b_h
     56 #define vp8_lf_simple_b_h vp8_loop_filter_bhs_mmx
     57 #endif
     58 #endif
     59 
     60 
     61 #if HAVE_SSE2
     62 extern prototype_loopfilter_block(vp8_loop_filter_mbv_sse2);
     63 extern prototype_loopfilter_block(vp8_loop_filter_bv_sse2);
     64 extern prototype_loopfilter_block(vp8_loop_filter_mbh_sse2);
     65 extern prototype_loopfilter_block(vp8_loop_filter_bh_sse2);
     66 extern prototype_loopfilter_block(vp8_loop_filter_mbvs_sse2);
     67 extern prototype_loopfilter_block(vp8_loop_filter_bvs_sse2);
     68 extern prototype_loopfilter_block(vp8_loop_filter_mbhs_sse2);
     69 extern prototype_loopfilter_block(vp8_loop_filter_bhs_sse2);
     70 
     71 
     72 #if !CONFIG_RUNTIME_CPU_DETECT
     73 #undef  vp8_lf_normal_mb_v
     74 #define vp8_lf_normal_mb_v vp8_loop_filter_mbv_sse2
     75 
     76 #undef  vp8_lf_normal_b_v
     77 #define vp8_lf_normal_b_v vp8_loop_filter_bv_sse2
     78 
     79 #undef  vp8_lf_normal_mb_h
     80 #define vp8_lf_normal_mb_h vp8_loop_filter_mbh_sse2
     81 
     82 #undef  vp8_lf_normal_b_h
     83 #define vp8_lf_normal_b_h vp8_loop_filter_bh_sse2
     84 
     85 #undef  vp8_lf_simple_mb_v
     86 #define vp8_lf_simple_mb_v vp8_loop_filter_mbvs_sse2
     87 
     88 #undef  vp8_lf_simple_b_v
     89 #define vp8_lf_simple_b_v vp8_loop_filter_bvs_sse2
     90 
     91 #undef  vp8_lf_simple_mb_h
     92 #define vp8_lf_simple_mb_h vp8_loop_filter_mbhs_sse2
     93 
     94 #undef  vp8_lf_simple_b_h
     95 #define vp8_lf_simple_b_h vp8_loop_filter_bhs_sse2
     96 #endif
     97 #endif
     98 
     99 
    100 #endif
    101