Mercurial > libavcodec.hg
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 |