• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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