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 SUBPIXEL_X86_H 13 #define SUBPIXEL_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_subpixel_predict(vp8_sixtap_predict16x16_mmx); 24 extern prototype_subpixel_predict(vp8_sixtap_predict8x8_mmx); 25 extern prototype_subpixel_predict(vp8_sixtap_predict8x4_mmx); 26 extern prototype_subpixel_predict(vp8_sixtap_predict4x4_mmx); 27 extern prototype_subpixel_predict(vp8_bilinear_predict16x16_mmx); 28 extern prototype_subpixel_predict(vp8_bilinear_predict8x8_mmx); 29 extern prototype_subpixel_predict(vp8_bilinear_predict8x4_mmx); 30 extern prototype_subpixel_predict(vp8_bilinear_predict4x4_mmx); 31 32 33 #if !CONFIG_RUNTIME_CPU_DETECT 34 #undef vp8_subpix_sixtap16x16 35 #define vp8_subpix_sixtap16x16 vp8_sixtap_predict16x16_mmx 36 37 #undef vp8_subpix_sixtap8x8 38 #define vp8_subpix_sixtap8x8 vp8_sixtap_predict8x8_mmx 39 40 #undef vp8_subpix_sixtap8x4 41 #define vp8_subpix_sixtap8x4 vp8_sixtap_predict8x4_mmx 42 43 #undef vp8_subpix_sixtap4x4 44 #define vp8_subpix_sixtap4x4 vp8_sixtap_predict4x4_mmx 45 46 #undef vp8_subpix_bilinear16x16 47 #define vp8_subpix_bilinear16x16 vp8_bilinear_predict16x16_mmx 48 49 #undef vp8_subpix_bilinear8x8 50 #define vp8_subpix_bilinear8x8 vp8_bilinear_predict8x8_mmx 51 52 #undef vp8_subpix_bilinear8x4 53 #define vp8_subpix_bilinear8x4 vp8_bilinear_predict8x4_mmx 54 55 #undef vp8_subpix_bilinear4x4 56 #define vp8_subpix_bilinear4x4 vp8_bilinear_predict4x4_mmx 57 58 #endif 59 #endif 60 61 62 #if HAVE_SSE2 63 extern prototype_subpixel_predict(vp8_sixtap_predict16x16_sse2); 64 extern prototype_subpixel_predict(vp8_sixtap_predict8x8_sse2); 65 extern prototype_subpixel_predict(vp8_sixtap_predict8x4_sse2); 66 extern prototype_subpixel_predict(vp8_bilinear_predict16x16_sse2); 67 extern prototype_subpixel_predict(vp8_bilinear_predict8x8_sse2); 68 69 70 #if !CONFIG_RUNTIME_CPU_DETECT 71 #undef vp8_subpix_sixtap16x16 72 #define vp8_subpix_sixtap16x16 vp8_sixtap_predict16x16_sse2 73 74 #undef vp8_subpix_sixtap8x8 75 #define vp8_subpix_sixtap8x8 vp8_sixtap_predict8x8_sse2 76 77 #undef vp8_subpix_sixtap8x4 78 #define vp8_subpix_sixtap8x4 vp8_sixtap_predict8x4_sse2 79 80 #undef vp8_subpix_bilinear16x16 81 #define vp8_subpix_bilinear16x16 vp8_bilinear_predict16x16_sse2 82 83 #undef vp8_subpix_bilinear8x8 84 #define vp8_subpix_bilinear8x8 vp8_bilinear_predict8x8_sse2 85 86 #endif 87 #endif 88 89 #if HAVE_SSSE3 90 extern prototype_subpixel_predict(vp8_sixtap_predict16x16_ssse3); 91 extern prototype_subpixel_predict(vp8_sixtap_predict8x8_ssse3); 92 extern prototype_subpixel_predict(vp8_sixtap_predict8x4_ssse3); 93 extern prototype_subpixel_predict(vp8_sixtap_predict4x4_ssse3); 94 extern prototype_subpixel_predict(vp8_bilinear_predict16x16_ssse3); 95 extern prototype_subpixel_predict(vp8_bilinear_predict8x8_ssse3); 96 97 #if !CONFIG_RUNTIME_CPU_DETECT 98 #undef vp8_subpix_sixtap16x16 99 #define vp8_subpix_sixtap16x16 vp8_sixtap_predict16x16_ssse3 100 101 #undef vp8_subpix_sixtap8x8 102 #define vp8_subpix_sixtap8x8 vp8_sixtap_predict8x8_ssse3 103 104 #undef vp8_subpix_sixtap8x4 105 #define vp8_subpix_sixtap8x4 vp8_sixtap_predict8x4_ssse3 106 107 #undef vp8_subpix_sixtap4x4 108 #define vp8_subpix_sixtap4x4 vp8_sixtap_predict4x4_ssse3 109 110 111 #undef vp8_subpix_bilinear16x16 112 #define vp8_subpix_bilinear16x16 vp8_bilinear_predict16x16_ssse3 113 114 #undef vp8_subpix_bilinear8x8 115 #define vp8_subpix_bilinear8x8 vp8_bilinear_predict8x8_ssse3 116 117 #endif 118 #endif 119 120 121 122 #endif 123