Merge commit '42d324694883cdf1fff1612ac70fa403692a1ad4'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 23 Jan 2013 13:04:50 +0000 (14:04 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 23 Jan 2013 13:04:50 +0000 (14:04 +0100)
* commit '42d324694883cdf1fff1612ac70fa403692a1ad4':
  floatdsp: move vector_fmul_reverse from dsputil to avfloatdsp.

Conflicts:
libavcodec/arm/dsputil_init_vfp.c
libavcodec/arm/dsputil_vfp.S
libavcodec/dsputil.c
libavcodec/ppc/float_altivec.c
libavcodec/x86/dsputil.asm
libavutil/x86/float_dsp.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
25 files changed:
1  2 
libavcodec/aacdec.c
libavcodec/aacenc.c
libavcodec/aacenc.h
libavcodec/aacsbr.c
libavcodec/arm/dsputil_init_arm.c
libavcodec/arm/dsputil_init_neon.c
libavcodec/arm/dsputil_neon.S
libavcodec/dsputil.c
libavcodec/dsputil.h
libavcodec/nellymoserenc.c
libavcodec/ppc/dsputil_ppc.c
libavcodec/wmadec.c
libavcodec/wmaenc.c
libavcodec/wmaprodec.c
libavcodec/x86/dsputil.asm
libavcodec/x86/dsputil_mmx.c
libavutil/arm/float_dsp_init_vfp.c
libavutil/arm/float_dsp_vfp.S
libavutil/float_dsp.c
libavutil/float_dsp.h
libavutil/ppc/float_dsp_altivec.c
libavutil/ppc/float_dsp_altivec.h
libavutil/ppc/float_dsp_init.c
libavutil/x86/float_dsp.asm
libavutil/x86/float_dsp_init.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -2483,14 -2353,7 +2483,7 @@@ WRAPPER8_16_SQ(quant_psnr8x8_c, quant_p
  WRAPPER8_16_SQ(rd8x8_c, rd16_c)
  WRAPPER8_16_SQ(bit8x8_c, bit16_c)
  
- static void vector_fmul_reverse_c(float *dst, const float *src0, const float *src1, int len){
-     int i;
-     src1 += len-1;
-     for(i=0; i<len; i++)
-         dst[i] = src0[i] * src1[-i];
- }
 -static void butterflies_float_c(float *restrict v1, float *restrict v2,
 +static void butterflies_float_c(float *av_restrict v1, float *av_restrict v2,
                                  int len)
  {
      int i;
Simple merge
Simple merge
@@@ -166,9 -158,8 +166,8 @@@ void ff_dsputil_init_ppc(DSPContext* c
  #if HAVE_ALTIVEC
      if(CONFIG_H264_DECODER) ff_dsputil_h264_init_ppc(c, avctx);
  
 -    if (av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC) {
 +    if (mm_flags & AV_CPU_FLAG_ALTIVEC) {
          ff_dsputil_init_altivec(c, avctx);
-         ff_float_init_altivec(c, avctx);
          ff_int_init_altivec(c, avctx);
          c->gmc1 = ff_gmc1_altivec;
  
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -2257,13 -2130,7 +2252,11 @@@ static void dsputil_init_sse(DSPContex
  #endif /* HAVE_INLINE_ASM */
  
  #if HAVE_YASM
-     c->vector_fmul_reverse = ff_vector_fmul_reverse_sse;
      c->scalarproduct_float          = ff_scalarproduct_float_sse;
 +
 +#if HAVE_INLINE_ASM && CONFIG_VIDEODSP
 +    c->gmc = gmc_sse;
 +#endif
  #endif /* HAVE_YASM */
  }
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -194,7 -188,42 +194,46 @@@ ALIGN 1
  
  INIT_XMM sse
  VECTOR_FMUL_ADD
 +%if HAVE_AVX_EXTERNAL
  INIT_YMM avx
  VECTOR_FMUL_ADD
 +%endif
+ ;-----------------------------------------------------------------------------
+ ; void vector_fmul_reverse(float *dst, const float *src0, const float *src1,
+ ;                          int len)
+ ;-----------------------------------------------------------------------------
+ %macro VECTOR_FMUL_REVERSE 0
+ cglobal vector_fmul_reverse, 4,4,2, dst, src0, src1, len
+     lea       lenq, [lend*4 - 2*mmsize]
+ ALIGN 16
+ .loop:
+ %if cpuflag(avx)
+     vmovaps     xmm0, [src1q + 16]
+     vinsertf128 m0, m0, [src1q], 1
+     vshufps     m0, m0, m0, q0123
+     vmovaps     xmm1, [src1q + mmsize + 16]
+     vinsertf128 m1, m1, [src1q + mmsize], 1
+     vshufps     m1, m1, m1, q0123
+ %else
+     mova    m0, [src1q]
+     mova    m1, [src1q + mmsize]
+     shufps  m0, m0, q0123
+     shufps  m1, m1, q0123
+ %endif
+     mulps   m0, m0, [src0q + lenq + mmsize]
+     mulps   m1, m1, [src0q + lenq]
+     mova    [dstq + lenq + mmsize], m0
+     mova    [dstq + lenq], m1
+     add     src1q, 2*mmsize
+     sub     lenq,  2*mmsize
+     jge     .loop
+     REP_RET
+ %endmacro
+ INIT_XMM sse
+ VECTOR_FMUL_REVERSE
++%if HAVE_AVX_EXTERNAL
+ INIT_YMM avx
+ VECTOR_FMUL_REVERSE
++%endif
Simple merge