53 lines
2.2 KiB
Diff
53 lines
2.2 KiB
Diff
![]() |
diff -r 38b7a12cc141 src/post/deinterlace/plugins/greedy2frame_template_sse2.c
|
||
|
--- a/src/post/deinterlace/plugins/greedy2frame_template_sse2.c Mon Jun 11 12:59:44 2012 +0300
|
||
|
+++ b/src/post/deinterlace/plugins/greedy2frame_template_sse2.c Wed Jun 13 01:07:05 2012 +0200
|
||
|
@@ -171,10 +171,10 @@
|
||
|
* See above for a description of the algorithm.
|
||
|
* weave if (weave(M) AND (weave(T) OR weave(B)))
|
||
|
*/
|
||
|
- "movdqa (%3), %%xmm1 \n\t" /* xmm1 = T1 */
|
||
|
- "movdqa (%4), %%xmm0 \n\t" /* xmm0 = T0 */
|
||
|
- "movdqa (%q5,%3), %%xmm3 \n\t" /* xmm3 = B1 */
|
||
|
- "movdqa (%q5,%4), %%xmm2 \n\t" /* xmm2 = B0 */
|
||
|
+ "movdqa (%2), %%xmm1 \n\t" /* xmm1 = T1 */
|
||
|
+ "movdqa (%3), %%xmm0 \n\t" /* xmm0 = T0 */
|
||
|
+ "movdqa (%q4,%2), %%xmm3 \n\t" /* xmm3 = B1 */
|
||
|
+ "movdqa (%q4,%3), %%xmm2 \n\t" /* xmm2 = B0 */
|
||
|
|
||
|
/* calculate |T1-T0| keep T1 put result in xmm5 */
|
||
|
"movdqa %%xmm1, %%xmm5 \n\t"
|
||
|
@@ -182,20 +182,19 @@
|
||
|
"psubusb %%xmm1, %%xmm0 \n\t"
|
||
|
"por %%xmm0, %%xmm5 \n\t"
|
||
|
|
||
|
- "movdqa (%0), %%xmm0 \n\t" /* xmm0 = M1 */
|
||
|
/* T1 is data for line to copy */
|
||
|
- "movntdq %%xmm1, %2 \n\t"
|
||
|
+ "movntdq %%xmm1, %1 \n\t"
|
||
|
|
||
|
/* if |T1-T0| > Threshold we want 0 else dword minus one */
|
||
|
"psrlw $1, %%xmm5 \n\t"
|
||
|
"pand %%xmm6, %%xmm5 \n\t"
|
||
|
- "pcmpgtb %1, %%xmm5 \n\t"
|
||
|
+ "pcmpgtb %0, %%xmm5 \n\t"
|
||
|
"pcmpeqd %%xmm7, %%xmm5 \n\t"
|
||
|
|
||
|
- "prefetcht0 64(%q5,%3) \n\t"
|
||
|
- "prefetcht0 64(%q5,%4) \n\t"
|
||
|
+ "prefetcht0 64(%q4,%2) \n\t"
|
||
|
+ "prefetcht0 64(%q4,%3) \n\t"
|
||
|
:
|
||
|
- : "r" (M1), "m" (GreedyTwoFrameThreshold128),
|
||
|
+ : "m" (GreedyTwoFrameThreshold128),
|
||
|
"m" (*Destc), "r" (T1), "r" (T0), "r" (Pitch) );
|
||
|
|
||
|
asm volatile (
|
||
|
@@ -205,6 +204,7 @@
|
||
|
"psubusb %%xmm3, %%xmm2 \n\t"
|
||
|
"por %%xmm2, %%xmm4 \n\t"
|
||
|
|
||
|
+ "movdqa (%0), %%xmm0 \n\t" /* xmm0 = M1 */
|
||
|
"movdqa (%1), %%xmm2 \n\t" /* xmm2 = M0 */
|
||
|
|
||
|
/* if |B1-B0| > Threshold we want 0 else dword minus one */
|