diff options
author | Alex Converse <alex.converse@gmail.com> | 2011-01-30 01:04:41 -0800 |
---|---|---|
committer | Mans Rullgard <mans@mansr.com> | 2011-02-02 02:40:05 +0000 |
commit | 770c410fbb8e1b87ce8ad7f3d7eddaa55e2b8295 (patch) | |
tree | 5187c4ae2ee2ae58f2295aa39eb1a69a545e7c0b | |
parent | ea7f080749d68a431226ce196014da38761a0d82 (diff) | |
download | ffmpeg-streaming-770c410fbb8e1b87ce8ad7f3d7eddaa55e2b8295.zip ffmpeg-streaming-770c410fbb8e1b87ce8ad7f3d7eddaa55e2b8295.tar.gz |
Fix ff_imdct_calc_sse() on gcc-4.6
Gcc 4.6 only preserves the first value when using an array with an "m"
constraint.
Signed-off-by: Mans Rullgard <mans@mansr.com>
-rw-r--r-- | libavcodec/x86/fft_sse.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/libavcodec/x86/fft_sse.c b/libavcodec/x86/fft_sse.c index 9f02816..0d151bc 100644 --- a/libavcodec/x86/fft_sse.c +++ b/libavcodec/x86/fft_sse.c @@ -23,7 +23,7 @@ #include "libavcodec/dsputil.h" #include "fft.h" -DECLARE_ALIGNED(16, static const int, m1m1m1m1)[4] = +DECLARE_ASM_CONST(16, int, ff_m1m1m1m1)[4] = { 1 << 31, 1 << 31, 1 << 31, 1 << 31 }; void ff_fft_dispatch_sse(FFTComplex *z, int nbits); @@ -82,7 +82,7 @@ void ff_imdct_calc_sse(FFTContext *s, FFTSample *output, const FFTSample *input) j = -n; k = n-16; __asm__ volatile( - "movaps %4, %%xmm7 \n" + "movaps "MANGLE(ff_m1m1m1m1)", %%xmm7 \n" "1: \n" "movaps (%2,%1), %%xmm0 \n" "movaps (%3,%0), %%xmm1 \n" @@ -95,8 +95,7 @@ void ff_imdct_calc_sse(FFTContext *s, FFTSample *output, const FFTSample *input) "add $16, %0 \n" "jl 1b \n" :"+r"(j), "+r"(k) - :"r"(output+n4), "r"(output+n4*3), - "m"(*m1m1m1m1) + :"r"(output+n4), "r"(output+n4*3) XMM_CLOBBERS_ONLY("%xmm0", "%xmm1", "%xmm7") ); } |