diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2013-01-20 15:41:14 -0800 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2013-01-22 11:55:42 -0800 |
commit | 5959bfaca396ecaf63a8123055f499688b79cae3 (patch) | |
tree | a32f22fb1a5ad7ddc731e9cee13ffface840cb4a /libavutil/arm | |
parent | 42d324694883cdf1fff1612ac70fa403692a1ad4 (diff) | |
download | ffmpeg-5959bfaca396ecaf63a8123055f499688b79cae3.tar.gz |
floatdsp: move butterflies_float from dsputil to avfloatdsp.
This makes wmadec/enc, twinvq and mpegaudiodec (i.e. mp2/mp3)
independent of dsputil.
Diffstat (limited to 'libavutil/arm')
-rw-r--r-- | libavutil/arm/float_dsp_init_neon.c | 3 | ||||
-rw-r--r-- | libavutil/arm/float_dsp_neon.S | 12 |
2 files changed, 15 insertions, 0 deletions
diff --git a/libavutil/arm/float_dsp_init_neon.c b/libavutil/arm/float_dsp_init_neon.c index c6f02bd2c5..b3644e82a2 100644 --- a/libavutil/arm/float_dsp_init_neon.c +++ b/libavutil/arm/float_dsp_init_neon.c @@ -41,6 +41,8 @@ void ff_vector_fmul_add_neon(float *dst, const float *src0, const float *src1, void ff_vector_fmul_reverse_neon(float *dst, const float *src0, const float *src1, int len); +void ff_butterflies_float_neon(float *v1, float *v2, int len); + void ff_float_dsp_init_neon(AVFloatDSPContext *fdsp) { fdsp->vector_fmul = ff_vector_fmul_neon; @@ -49,4 +51,5 @@ void ff_float_dsp_init_neon(AVFloatDSPContext *fdsp) fdsp->vector_fmul_window = ff_vector_fmul_window_neon; fdsp->vector_fmul_add = ff_vector_fmul_add_neon; fdsp->vector_fmul_reverse = ff_vector_fmul_reverse_neon; + fdsp->butterflies_float = ff_butterflies_float_neon; } diff --git a/libavutil/arm/float_dsp_neon.S b/libavutil/arm/float_dsp_neon.S index d00e59de8f..4acc406d33 100644 --- a/libavutil/arm/float_dsp_neon.S +++ b/libavutil/arm/float_dsp_neon.S @@ -244,3 +244,15 @@ function ff_vector_fmul_reverse_neon, export=1 2: vst1.32 {q8-q9}, [r0,:128]! bx lr endfunc + +function ff_butterflies_float_neon, export=1 +1: vld1.32 {q0},[r0,:128] + vld1.32 {q1},[r1,:128] + vsub.f32 q2, q0, q1 + vadd.f32 q1, q0, q1 + vst1.32 {q2},[r1,:128]! + vst1.32 {q1},[r0,:128]! + subs r2, r2, #4 + bgt 1b + bx lr +endfunc |