LCOV - app.info - media/libvpx/vp8/common/x86/recon_wrapper_sse2.c

LCOV - code coverage report
| Current view: | directory - media/libvpx/vp8/common/x86 - recon_wrapper_sse2.c (source / functions) |  | Found | Hit | Coverage |
| Test: | app.info | Lines: | 29 | 0 | 0.0 %
| Date: | 2012-06-02 | Functions: | 5 | 0 | 0.0 %

           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                 : #include "vpx_ports/config.h"
          12                 : #include "vp8/common/recon.h"
          13                 : #include "recon_x86.h"
          14                 : #include "vpx_mem/vpx_mem.h"
          15                 :
          16                 : #define build_intra_predictors_mbuv_prototype(sym) \
          17                 :     void sym(unsigned char *dst, int dst_stride, \
          18                 :              const unsigned char *src, int src_stride)
          19                 : typedef build_intra_predictors_mbuv_prototype((*build_intra_predictors_mbuv_fn_t));
          20                 :
          21                 : extern build_intra_predictors_mbuv_prototype(vp8_intra_pred_uv_dc_mmx2);
          22                 : extern build_intra_predictors_mbuv_prototype(vp8_intra_pred_uv_dctop_mmx2);
          23                 : extern build_intra_predictors_mbuv_prototype(vp8_intra_pred_uv_dcleft_mmx2);
          24                 : extern build_intra_predictors_mbuv_prototype(vp8_intra_pred_uv_dc128_mmx);
          25                 : extern build_intra_predictors_mbuv_prototype(vp8_intra_pred_uv_ho_mmx2);
          26                 : extern build_intra_predictors_mbuv_prototype(vp8_intra_pred_uv_ho_ssse3);
          27                 : extern build_intra_predictors_mbuv_prototype(vp8_intra_pred_uv_ve_mmx);
          28                 : extern build_intra_predictors_mbuv_prototype(vp8_intra_pred_uv_tm_sse2);
          29                 : extern build_intra_predictors_mbuv_prototype(vp8_intra_pred_uv_tm_ssse3);
          30                 :
          31               0 : static void vp8_build_intra_predictors_mbuv_x86(MACROBLOCKD *x,
          32                 :                                                 unsigned char *dst_u,
          33                 :                                                 unsigned char *dst_v,
          34                 :                                                 int dst_stride,
          35                 :                                                 build_intra_predictors_mbuv_fn_t tm_func,
          36                 :                                                 build_intra_predictors_mbuv_fn_t ho_func)
          37                 : {
          38               0 :     int mode = x->mode_info_context->mbmi.uv_mode;
          39                 :     build_intra_predictors_mbuv_fn_t fn;
          40               0 :     int src_stride = x->dst.uv_stride;
          41                 :
          42               0 :     switch (mode) {
          43               0 :         case  V_PRED: fn = vp8_intra_pred_uv_ve_mmx; break;
          44               0 :         case  H_PRED: fn = ho_func; break;
          45               0 :         case TM_PRED: fn = tm_func; break;
          46                 :         case DC_PRED:
          47               0 :             if (x->up_available) {
          48               0 :                 if (x->left_available) {
          49               0 :                     fn = vp8_intra_pred_uv_dc_mmx2; break;
          50                 :                 } else {
          51               0 :                     fn = vp8_intra_pred_uv_dctop_mmx2; break;
          52                 :                 }
          53               0 :             } else if (x->left_available) {
          54               0 :                 fn = vp8_intra_pred_uv_dcleft_mmx2; break;
          55                 :             } else {
          56               0 :                 fn = vp8_intra_pred_uv_dc128_mmx; break;
          57                 :             }
          58                 :             break;
          59               0 :         default: return;
          60                 :     }
          61                 :
          62               0 :     fn(dst_u, dst_stride, x->dst.u_buffer, src_stride);
          63               0 :     fn(dst_v, dst_stride, x->dst.v_buffer, src_stride);
          64                 : }
          65                 :
          66               0 : void vp8_build_intra_predictors_mbuv_sse2(MACROBLOCKD *x)
          67                 : {
          68               0 :     vp8_build_intra_predictors_mbuv_x86(x, &x->predictor[256],
          69                 :                                         &x->predictor[320], 8,
          70                 :                                         vp8_intra_pred_uv_tm_sse2,
          71                 :                                         vp8_intra_pred_uv_ho_mmx2);
          72               0 : }
          73                 :
          74               0 : void vp8_build_intra_predictors_mbuv_ssse3(MACROBLOCKD *x)
          75                 : {
          76               0 :     vp8_build_intra_predictors_mbuv_x86(x, &x->predictor[256],
          77                 :                                         &x->predictor[320], 8,
          78                 :                                         vp8_intra_pred_uv_tm_ssse3,
          79                 :                                         vp8_intra_pred_uv_ho_ssse3);
          80               0 : }
          81                 :
          82               0 : void vp8_build_intra_predictors_mbuv_s_sse2(MACROBLOCKD *x)
          83                 : {
          84               0 :     vp8_build_intra_predictors_mbuv_x86(x, x->dst.u_buffer,
          85                 :                                         x->dst.v_buffer, x->dst.uv_stride,
          86                 :                                         vp8_intra_pred_uv_tm_sse2,
          87                 :                                         vp8_intra_pred_uv_ho_mmx2);
          88               0 : }
          89                 :
          90               0 : void vp8_build_intra_predictors_mbuv_s_ssse3(MACROBLOCKD *x)
          91                 : {
          92               0 :     vp8_build_intra_predictors_mbuv_x86(x, x->dst.u_buffer,
          93                 :                                         x->dst.v_buffer, x->dst.uv_stride,
          94                 :                                         vp8_intra_pred_uv_tm_ssse3,
          95                 :                                         vp8_intra_pred_uv_ho_ssse3);
          96               0 : }

Generated by: LCOV version 1.7