comparison x86/mpegaudiodec_mmx.c @ 11941:9e12316c508a libavcodec

Fix asm constraints in apply_window()
author vitor
date Thu, 24 Jun 2010 08:46:47 +0000
parents ef338bd70180
children ce4b71c171aa
comparison
equal deleted inserted replaced
11940:1d6362654d4c 11941:9e12316c508a
49 float *sum1a = sum1+len; 49 float *sum1a = sum1+len;
50 float *sum2a = sum2+len; 50 float *sum2a = sum2+len;
51 51
52 52
53 #define MULT(a, b) \ 53 #define MULT(a, b) \
54 "movaps " #a "(%0,%5), %%xmm1 \n\t" \ 54 "movaps " #a "(%1,%0), %%xmm1 \n\t" \
55 "movaps " #a "(%2,%5), %%xmm2 \n\t" \ 55 "movaps " #a "(%3,%0), %%xmm2 \n\t" \
56 "mulps %%xmm2, %%xmm1 \n\t" \ 56 "mulps %%xmm2, %%xmm1 \n\t" \
57 "subps %%xmm1, %%xmm0 \n\t" \ 57 "subps %%xmm1, %%xmm0 \n\t" \
58 "mulps " #b "(%1,%5), %%xmm2 \n\t" \ 58 "mulps " #b "(%2,%0), %%xmm2 \n\t" \
59 "subps %%xmm2, %%xmm4 \n\t" \ 59 "subps %%xmm2, %%xmm4 \n\t" \
60 60
61 __asm__ volatile( 61 __asm__ volatile(
62 "1: \n\t" 62 "1: \n\t"
63 "xorps %%xmm0, %%xmm0 \n\t" 63 "xorps %%xmm0, %%xmm0 \n\t"
70 MULT(1024, 256) 70 MULT(1024, 256)
71 MULT(1280, 320) 71 MULT(1280, 320)
72 MULT(1536, 384) 72 MULT(1536, 384)
73 MULT(1792, 448) 73 MULT(1792, 448)
74 74
75 "movaps %%xmm0, (%3,%5) \n\t" 75 "movaps %%xmm0, (%4,%0) \n\t"
76 "movaps %%xmm4, (%4,%5) \n\t" 76 "movaps %%xmm4, (%5,%0) \n\t"
77 "addl $16, %5 \n\t" 77 "addl $16, %0 \n\t"
78 "jl 1b \n\t" 78 "jl 1b \n\t"
79 :"+&r"(win1a), "+&r"(win2a), "+&r"(bufa), "+&r"(sum1a), "+&r"(sum2a), "+&r"(count) 79 :"+&r"(count)
80 :"r"(win1a), "r"(win2a), "r"(bufa), "r"(sum1a), "r"(sum2a)
80 ); 81 );
81 82
82 #undef MULT 83 #undef MULT
83 } 84 }
84 85