aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoren Merritt <lorenm@u.washington.edu>2008-04-08 23:49:34 +0000
committerMike Melanson <mike@multimedia.cx>2008-04-08 23:49:34 +0000
commit96275520a383464ce9552ed727bd38dcb91d70fb (patch)
treed2f2fc1c0a0358d0445aebcfa80814ce62f8983d
parenta19caa0f3e05bd31ed9e432687e1f238723f9e28 (diff)
downloadffmpeg-96275520a383464ce9552ed727bd38dcb91d70fb.tar.gz
Fix H.264 interframe decoding when compiling with icc. Patch by Loren
Merritt: "It seems that icc copies the constants from their global var onto the stack, at which point they're not aligned, hence the crash. [This change] really shouldn't mean anything different, but maybe it'll confuse icc into not performing that 'optimization'." Originally committed as revision 12772 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/i386/dsputil_h264_template_ssse3.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libavcodec/i386/dsputil_h264_template_ssse3.c b/libavcodec/i386/dsputil_h264_template_ssse3.c
index 27b5c56408..2ff685d76d 100644
--- a/libavcodec/i386/dsputil_h264_template_ssse3.c
+++ b/libavcodec/i386/dsputil_h264_template_ssse3.c
@@ -43,7 +43,8 @@ static void H264_CHROMA_MC8_TMPL(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*
"pshuflw $0, %%xmm7, %%xmm7 \n\t"
"movlhps %%xmm6, %%xmm6 \n\t"
"movlhps %%xmm7, %%xmm7 \n\t"
- :: "r"(255*(x+y)+8), "m"(rnd?ff_pw_4:ff_pw_3));
+ :: "r"(255*(x+y)+8), "m"(*(rnd?&ff_pw_4:&ff_pw_3))
+ );
if(x) {
asm volatile(
@@ -114,7 +115,7 @@ static void H264_CHROMA_MC8_TMPL(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*
"pshuflw $0, %%xmm6, %%xmm6 \n\t"
"movlhps %%xmm7, %%xmm7 \n\t"
"movlhps %%xmm6, %%xmm6 \n\t"
- :: "r"((x*255+8)*(8-y)), "r"((x*255+8)*y), "m"(rnd?ff_pw_32:ff_pw_28)
+ :: "r"((x*255+8)*(8-y)), "r"((x*255+8)*y), "m"(*(rnd?&ff_pw_32:&ff_pw_28))
);
asm volatile(