Index: libvpx/source/libvpx/vp8/common/x86/x86_systemdependent.c |
diff --git a/libvpx/source/libvpx/vp8/common/x86/x86_systemdependent.c b/libvpx/source/libvpx/vp8/common/x86/x86_systemdependent.c |
index 33a984b792165a3d83c2012c1c106cfa7cbe0f40..e89c07a4fdad946e9b69ff56542c1ee8cb54a24c 100644 |
--- a/libvpx/source/libvpx/vp8/common/x86/x86_systemdependent.c |
+++ b/libvpx/source/libvpx/vp8/common/x86/x86_systemdependent.c |
@@ -9,7 +9,7 @@ |
*/ |
-#include "vpx_config.h" |
+#include "vpx_ports/config.h" |
#include "vpx_ports/x86.h" |
#include "vp8/common/g_common.h" |
#include "vp8/common/subpixel.h" |
@@ -24,6 +24,10 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) |
#if CONFIG_RUNTIME_CPU_DETECT |
VP8_COMMON_RTCD *rtcd = &ctx->rtcd; |
int flags = x86_simd_caps(); |
+ int mmx_enabled = flags & HAS_MMX; |
+ int xmm_enabled = flags & HAS_SSE; |
+ int wmt_enabled = flags & HAS_SSE2; |
+ int SSSE3Enabled = flags & HAS_SSSE3; |
/* Note: |
* |
@@ -35,7 +39,7 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) |
/* Override default functions with fastest ones for this CPU. */ |
#if HAVE_MMX |
- if (flags & HAS_MMX) |
+ if (mmx_enabled) |
{ |
rtcd->idct.idct1 = vp8_short_idct4x4llm_1_mmx; |
rtcd->idct.idct16 = vp8_short_idct4x4llm_mmx; |
@@ -63,9 +67,9 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) |
rtcd->loopfilter.normal_b_v = vp8_loop_filter_bv_mmx; |
rtcd->loopfilter.normal_mb_h = vp8_loop_filter_mbh_mmx; |
rtcd->loopfilter.normal_b_h = vp8_loop_filter_bh_mmx; |
- rtcd->loopfilter.simple_mb_v = vp8_loop_filter_simple_vertical_edge_mmx; |
+ rtcd->loopfilter.simple_mb_v = vp8_loop_filter_mbvs_mmx; |
rtcd->loopfilter.simple_b_v = vp8_loop_filter_bvs_mmx; |
- rtcd->loopfilter.simple_mb_h = vp8_loop_filter_simple_horizontal_edge_mmx; |
+ rtcd->loopfilter.simple_mb_h = vp8_loop_filter_mbhs_mmx; |
rtcd->loopfilter.simple_b_h = vp8_loop_filter_bhs_mmx; |
#if CONFIG_POSTPROC |
@@ -79,15 +83,11 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) |
#endif |
#if HAVE_SSE2 |
- if (flags & HAS_SSE2) |
+ if (wmt_enabled) |
{ |
rtcd->recon.recon2 = vp8_recon2b_sse2; |
rtcd->recon.recon4 = vp8_recon4b_sse2; |
rtcd->recon.copy16x16 = vp8_copy_mem16x16_sse2; |
- rtcd->recon.build_intra_predictors_mbuv = |
- vp8_build_intra_predictors_mbuv_sse2; |
- rtcd->recon.build_intra_predictors_mbuv_s = |
- vp8_build_intra_predictors_mbuv_s_sse2; |
rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_sse2; |
@@ -101,9 +101,9 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) |
rtcd->loopfilter.normal_b_v = vp8_loop_filter_bv_sse2; |
rtcd->loopfilter.normal_mb_h = vp8_loop_filter_mbh_sse2; |
rtcd->loopfilter.normal_b_h = vp8_loop_filter_bh_sse2; |
- rtcd->loopfilter.simple_mb_v = vp8_loop_filter_simple_vertical_edge_sse2; |
+ rtcd->loopfilter.simple_mb_v = vp8_loop_filter_mbvs_sse2; |
rtcd->loopfilter.simple_b_v = vp8_loop_filter_bvs_sse2; |
- rtcd->loopfilter.simple_mb_h = vp8_loop_filter_simple_horizontal_edge_sse2; |
+ rtcd->loopfilter.simple_mb_h = vp8_loop_filter_mbhs_sse2; |
rtcd->loopfilter.simple_b_h = vp8_loop_filter_bhs_sse2; |
#if CONFIG_POSTPROC |
@@ -118,7 +118,7 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) |
#if HAVE_SSSE3 |
- if (flags & HAS_SSSE3) |
+ if (SSSE3Enabled) |
{ |
rtcd->subpix.sixtap16x16 = vp8_sixtap_predict16x16_ssse3; |
rtcd->subpix.sixtap8x8 = vp8_sixtap_predict8x8_ssse3; |
@@ -126,11 +126,6 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) |
rtcd->subpix.sixtap4x4 = vp8_sixtap_predict4x4_ssse3; |
rtcd->subpix.bilinear16x16 = vp8_bilinear_predict16x16_ssse3; |
rtcd->subpix.bilinear8x8 = vp8_bilinear_predict8x8_ssse3; |
- |
- rtcd->recon.build_intra_predictors_mbuv = |
- vp8_build_intra_predictors_mbuv_ssse3; |
- rtcd->recon.build_intra_predictors_mbuv_s = |
- vp8_build_intra_predictors_mbuv_s_ssse3; |
} |
#endif |