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