Mercurial > libavcodec.hg
changeset 6575:d869966e57e5 libavcodec
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'."
author | melanson |
---|---|
date | Tue, 08 Apr 2008 23:49:34 +0000 |
parents | be4783347fbe |
children | 5e7c69ebc019 |
files | i386/dsputil_h264_template_ssse3.c |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/i386/dsputil_h264_template_ssse3.c Tue Apr 08 15:16:48 2008 +0000 +++ b/i386/dsputil_h264_template_ssse3.c Tue Apr 08 23:49:34 2008 +0000 @@ -43,7 +43,8 @@ "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 @@ "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(