Home | History | Annotate | Download | only in x86
      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 DEQUANTIZE_X86_H
     13 #define DEQUANTIZE_X86_H
     14 
     15 
     16 /* Note:
     17  *
     18  * This platform is commonly built for runtime CPU detection. If you modify
     19  * any of the function mappings present in this file, be sure to also update
     20  * them in the function pointer initialization code
     21  */
     22 #if HAVE_MMX
     23 extern prototype_dequant_block(vp8_dequantize_b_mmx);
     24 extern prototype_dequant_idct_add(vp8_dequant_idct_add_mmx);
     25 extern prototype_dequant_dc_idct_add(vp8_dequant_dc_idct_add_mmx);
     26 extern prototype_dequant_dc_idct_add_y_block(vp8_dequant_dc_idct_add_y_block_mmx);
     27 extern prototype_dequant_idct_add_y_block(vp8_dequant_idct_add_y_block_mmx);
     28 extern prototype_dequant_idct_add_uv_block(vp8_dequant_idct_add_uv_block_mmx);
     29 
     30 #if !CONFIG_RUNTIME_CPU_DETECT
     31 #undef  vp8_dequant_block
     32 #define vp8_dequant_block vp8_dequantize_b_mmx
     33 
     34 #undef  vp8_dequant_idct_add
     35 #define vp8_dequant_idct_add vp8_dequant_idct_add_mmx
     36 
     37 #undef  vp8_dequant_dc_idct_add
     38 #define vp8_dequant_dc_idct_add vp8_dequant_dc_idct_add_mmx
     39 
     40 #undef vp8_dequant_dc_idct_add_y_block
     41 #define vp8_dequant_dc_idct_add_y_block vp8_dequant_dc_idct_add_y_block_mmx
     42 
     43 #undef vp8_dequant_idct_add_y_block
     44 #define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_mmx
     45 
     46 #undef vp8_dequant_idct_add_uv_block
     47 #define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_mmx
     48 
     49 #endif
     50 #endif
     51 
     52 #if HAVE_SSE2
     53 extern prototype_dequant_dc_idct_add_y_block(vp8_dequant_dc_idct_add_y_block_sse2);
     54 extern prototype_dequant_idct_add_y_block(vp8_dequant_idct_add_y_block_sse2);
     55 extern prototype_dequant_idct_add_uv_block(vp8_dequant_idct_add_uv_block_sse2);
     56 
     57 #if !CONFIG_RUNTIME_CPU_DETECT
     58 #undef vp8_dequant_dc_idct_add_y_block
     59 #define vp8_dequant_dc_idct_add_y_block vp8_dequant_dc_idct_add_y_block_sse2
     60 
     61 #undef vp8_dequant_idct_add_y_block
     62 #define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_sse2
     63 
     64 #undef vp8_dequant_idct_add_uv_block
     65 #define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_sse2
     66 
     67 #endif
     68 #endif
     69 
     70 #endif
     71