Merge "SSE2 code for the filter in MFQE."
[platform/upstream/libvpx.git] / vp9 / vp9_common.mk
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 VP9_COMMON_SRCS-yes += vp9_common.mk
12 VP9_COMMON_SRCS-yes += vp9_iface_common.h
13 VP9_COMMON_SRCS-yes += common/vp9_ppflags.h
14 VP9_COMMON_SRCS-yes += common/vp9_alloccommon.c
15 VP9_COMMON_SRCS-yes += common/vp9_blockd.c
16 VP9_COMMON_SRCS-yes += common/vp9_convolve.c
17 VP9_COMMON_SRCS-yes += common/vp9_convolve.h
18 VP9_COMMON_SRCS-yes += common/vp9_debugmodes.c
19 VP9_COMMON_SRCS-yes += common/vp9_entropy.c
20 VP9_COMMON_SRCS-yes += common/vp9_entropymode.c
21 VP9_COMMON_SRCS-yes += common/vp9_entropymv.c
22 VP9_COMMON_SRCS-yes += common/vp9_filter.c
23 VP9_COMMON_SRCS-yes += common/vp9_filter.h
24 VP9_COMMON_SRCS-yes += common/vp9_frame_buffers.c
25 VP9_COMMON_SRCS-yes += common/vp9_frame_buffers.h
26 VP9_COMMON_SRCS-yes += common/vp9_idct.c
27 VP9_COMMON_SRCS-yes += common/vp9_alloccommon.h
28 VP9_COMMON_SRCS-yes += common/vp9_blockd.h
29 VP9_COMMON_SRCS-yes += common/vp9_common.h
30 VP9_COMMON_SRCS-yes += common/vp9_entropy.h
31 VP9_COMMON_SRCS-yes += common/vp9_entropymode.h
32 VP9_COMMON_SRCS-yes += common/vp9_entropymv.h
33 VP9_COMMON_SRCS-yes += common/vp9_enums.h
34 VP9_COMMON_SRCS-yes += common/vp9_idct.h
35 VP9_COMMON_SRCS-yes += common/vp9_loopfilter.h
36 VP9_COMMON_SRCS-yes += common/vp9_loopfilter_thread.h
37 VP9_COMMON_SRCS-yes += common/vp9_mv.h
38 VP9_COMMON_SRCS-yes += common/vp9_onyxc_int.h
39 VP9_COMMON_SRCS-yes += common/vp9_pred_common.h
40 VP9_COMMON_SRCS-yes += common/vp9_pred_common.c
41 VP9_COMMON_SRCS-yes += common/vp9_prob.h
42 VP9_COMMON_SRCS-yes += common/vp9_prob.c
43 VP9_COMMON_SRCS-yes += common/vp9_quant_common.h
44 VP9_COMMON_SRCS-yes += common/vp9_reconinter.h
45 VP9_COMMON_SRCS-yes += common/vp9_reconintra.h
46 VP9_COMMON_SRCS-yes += common/vp9_rtcd.c
47 VP9_COMMON_SRCS-yes += common/vp9_rtcd_defs.pl
48 VP9_COMMON_SRCS-yes += common/vp9_scale.h
49 VP9_COMMON_SRCS-yes += common/vp9_scale.c
50 VP9_COMMON_SRCS-yes += common/vp9_seg_common.h
51 VP9_COMMON_SRCS-yes += common/vp9_seg_common.c
52 VP9_COMMON_SRCS-yes += common/vp9_systemdependent.h
53 VP9_COMMON_SRCS-yes += common/vp9_textblit.h
54 VP9_COMMON_SRCS-yes += common/vp9_thread.h
55 VP9_COMMON_SRCS-yes += common/vp9_thread.c
56 VP9_COMMON_SRCS-yes += common/vp9_tile_common.h
57 VP9_COMMON_SRCS-yes += common/vp9_tile_common.c
58 VP9_COMMON_SRCS-yes += common/vp9_loopfilter.c
59 VP9_COMMON_SRCS-yes += common/vp9_loopfilter_filters.c
60 VP9_COMMON_SRCS-yes += common/vp9_loopfilter_thread.c
61 VP9_COMMON_SRCS-yes += common/vp9_mvref_common.c
62 VP9_COMMON_SRCS-yes += common/vp9_mvref_common.h
63 VP9_COMMON_SRCS-yes += common/vp9_quant_common.c
64 VP9_COMMON_SRCS-yes += common/vp9_reconinter.c
65 VP9_COMMON_SRCS-yes += common/vp9_reconintra.c
66 VP9_COMMON_SRCS-$(CONFIG_POSTPROC_VISUALIZER) += common/vp9_textblit.c
67 VP9_COMMON_SRCS-yes += common/vp9_common_data.c
68 VP9_COMMON_SRCS-yes += common/vp9_common_data.h
69 VP9_COMMON_SRCS-yes += common/vp9_scan.c
70 VP9_COMMON_SRCS-yes += common/vp9_scan.h
71
72 VP9_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/vp9_asm_stubs.c
73 VP9_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/vp9_loopfilter_intrin_sse2.c
74 VP9_COMMON_SRCS-$(HAVE_AVX2) += common/x86/vp9_loopfilter_intrin_avx2.c
75 VP9_COMMON_SRCS-$(CONFIG_VP9_POSTPROC) += common/vp9_postproc.h
76 VP9_COMMON_SRCS-$(CONFIG_VP9_POSTPROC) += common/vp9_postproc.c
77 VP9_COMMON_SRCS-$(CONFIG_VP9_POSTPROC) += common/vp9_mfqe.h
78 VP9_COMMON_SRCS-$(CONFIG_VP9_POSTPROC) += common/vp9_mfqe.c
79 VP9_COMMON_SRCS-$(HAVE_MMX) += common/x86/vp9_loopfilter_mmx.asm
80 VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_subpixel_8t_sse2.asm
81 VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_subpixel_bilinear_sse2.asm
82 VP9_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/vp9_subpixel_8t_ssse3.asm
83 VP9_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/vp9_subpixel_bilinear_ssse3.asm
84 VP9_COMMON_SRCS-$(HAVE_AVX2) += common/x86/vp9_subpixel_8t_intrin_avx2.c
85 VP9_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/vp9_subpixel_8t_intrin_ssse3.c
86 ifeq ($(CONFIG_VP9_POSTPROC),yes)
87 VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_mfqe_sse2.asm
88 VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_postproc_sse2.asm
89 endif
90
91 ifeq ($(CONFIG_USE_X86INC),yes)
92 VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_copy_sse2.asm
93 VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_intrapred_sse2.asm
94 VP9_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/vp9_intrapred_ssse3.asm
95 endif
96
97 ifeq ($(CONFIG_VP9_HIGHBITDEPTH),yes)
98 VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_high_intrapred_sse2.asm
99 VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_high_subpixel_8t_sse2.asm
100 VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_high_subpixel_bilinear_sse2.asm
101 VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_high_loopfilter_intrin_sse2.c
102 endif
103
104 # common (c)
105 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_common_dspr2.h
106 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_convolve2_avg_dspr2.c
107 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_convolve2_avg_horiz_dspr2.c
108 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_convolve2_dspr2.c
109 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_convolve2_horiz_dspr2.c
110 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_convolve2_vert_dspr2.c
111 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_convolve8_avg_dspr2.c
112 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_convolve8_avg_horiz_dspr2.c
113 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_convolve8_dspr2.c
114 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_convolve8_horiz_dspr2.c
115 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_convolve8_vert_dspr2.c
116 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_intrapred4_dspr2.c
117 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_intrapred8_dspr2.c
118 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_intrapred16_dspr2.c
119 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_itrans4_dspr2.c
120 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_itrans8_dspr2.c
121 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_itrans16_dspr2.c
122 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_itrans32_cols_dspr2.c
123 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_itrans32_dspr2.c
124 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_loopfilter_filters_dspr2.c
125 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_loopfilter_filters_dspr2.h
126 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_loopfilter_macros_dspr2.h
127 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_loopfilter_masks_dspr2.h
128 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_mbloop_loopfilter_dspr2.c
129 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_mblpf_horiz_loopfilter_dspr2.c
130 VP9_COMMON_SRCS-$(HAVE_DSPR2)  += common/mips/dspr2/vp9_mblpf_vert_loopfilter_dspr2.c
131
132 VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_idct_intrin_sse2.c
133 VP9_COMMON_SRCS-$(HAVE_SSE2) += common/x86/vp9_idct_intrin_sse2.h
134 VP9_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/vp9_idct_intrin_ssse3.c
135 ifeq ($(ARCH_X86_64), yes)
136 VP9_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/vp9_idct_ssse3_x86_64.asm
137 endif
138
139 VP9_COMMON_SRCS-$(HAVE_NEON_ASM) += common/arm/neon/vp9_loopfilter_16_neon_asm$(ASM)
140 VP9_COMMON_SRCS-$(HAVE_NEON_ASM) += common/arm/neon/vp9_loopfilter_8_neon_asm$(ASM)
141 VP9_COMMON_SRCS-$(HAVE_NEON_ASM) += common/arm/neon/vp9_mb_lpf_neon$(ASM)
142 VP9_COMMON_SRCS-$(HAVE_NEON_ASM) += common/arm/neon/vp9_save_reg_neon$(ASM)
143
144 VP9_COMMON_SRCS-$(HAVE_NEON) += common/arm/neon/vp9_iht4x4_add_neon.c
145 VP9_COMMON_SRCS-$(HAVE_NEON) += common/arm/neon/vp9_iht8x8_add_neon.c
146 VP9_COMMON_SRCS-$(HAVE_NEON) += common/arm/neon/vp9_loopfilter_neon.c
147
148 # neon with assembly and intrinsics implementations. If both are available
149 # prefer assembly.
150 ifeq ($(HAVE_NEON_ASM), yes)
151 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_avg_neon_asm$(ASM)
152 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_convolve8_avg_neon_asm$(ASM)
153 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_convolve8_neon_asm$(ASM)
154 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_convolve_neon.c
155 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_copy_neon_asm$(ASM)
156 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct16x16_1_add_neon_asm$(ASM)
157 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct16x16_add_neon_asm$(ASM)
158 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct16x16_neon.c
159 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct32x32_1_add_neon_asm$(ASM)
160 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct32x32_add_neon_asm$(ASM)
161 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct4x4_1_add_neon_asm$(ASM)
162 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct4x4_add_neon_asm$(ASM)
163 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct8x8_1_add_neon_asm$(ASM)
164 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct8x8_add_neon_asm$(ASM)
165 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_loopfilter_4_neon_asm$(ASM)
166 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_reconintra_neon_asm$(ASM)
167 else
168 ifeq ($(HAVE_NEON), yes)
169 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_avg_neon.c
170 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_convolve8_avg_neon.c
171 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_convolve8_neon.c
172 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_convolve_neon.c
173 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_copy_neon.c
174 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct16x16_1_add_neon.c
175 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct16x16_add_neon.c
176 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct16x16_neon.c
177 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct32x32_1_add_neon.c
178 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct32x32_add_neon.c
179 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct4x4_1_add_neon.c
180 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct4x4_add_neon.c
181 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct8x8_1_add_neon.c
182 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct8x8_add_neon.c
183 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_loopfilter_16_neon.c
184 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_loopfilter_4_neon.c
185 # TODO(johannkoenig): re-enable when chromium build is fixed
186 # # https://code.google.com/p/chromium/issues/detail?id=443839
187 #VP9_COMMON_SRCS-yes += common/arm/neon/vp9_loopfilter_8_neon.c
188 VP9_COMMON_SRCS-yes += common/arm/neon/vp9_reconintra_neon.c
189 endif  # HAVE_NEON
190 endif  # HAVE_NEON_ASM
191
192 $(eval $(call rtcd_h_template,vp9_rtcd,vp9/common/vp9_rtcd_defs.pl))