diff -Nurp xine-lib-1.1.12-old/src/post/deinterlace/plugins/tomsmocomp/SearchLoop0A.inc xine-lib-1.1.12/src/post/deinterlace/plugins/tomsmocomp/SearchLoop0A.inc --- xine-lib-1.1.12-old/src/post/deinterlace/plugins/tomsmocomp/SearchLoop0A.inc 2008-01-23 06:11:53.000000000 +0100 +++ xine-lib-1.1.12/src/post/deinterlace/plugins/tomsmocomp/SearchLoop0A.inc 2008-06-09 19:32:17.000000000 +0200 @@ -7,9 +7,9 @@ // up by a little, and adjust later #ifdef IS_SSE2 - "paddusb "MANGLE(ONES)", %%xmm7\n\t" // bias toward no motion + "paddusb "_ONES", %%xmm7\n\t" // bias toward no motion #else - "paddusb "MANGLE(ONES)", %%mm7\n\t" // bias toward no motion + "paddusb "_ONES", %%mm7\n\t" // bias toward no motion #endif MERGE4PIXavg("(%%"XDI", %%"XCX")", "(%%"XSI", %%"XCX")") // center, in old and new diff -Nurp xine-lib-1.1.12-old/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc xine-lib-1.1.12/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc --- xine-lib-1.1.12-old/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc 2008-01-23 06:11:53.000000000 +0100 +++ xine-lib-1.1.12/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc 2008-06-09 23:46:59.000000000 +0200 @@ -18,7 +18,7 @@ // Use the best weave if diffs less than 10 as that // means the image is still or moving cleanly // if there is motion we will clip which will catch anything - "psubusb "MANGLE(FOURS)", %%mm7\n\t" // sets bits to zero if weave diff < 4 + "psubusb "_FOURS", %%mm7\n\t" // sets bits to zero if weave diff < 4 "pxor %%mm0, %%mm0\n\t" "pcmpeqb %%mm0, %%mm7\n\t" // all ff where weave better, else 00 "pcmpeqb %%mm7, %%mm0\n\t" // all ff where bob better, else 00 @@ -28,10 +28,10 @@ #else // Use the better of bob or weave // pminub mm4, TENS // the most we care about - V_PMINUB ("%%mm4", MANGLE(TENS), "%%mm0") // the most we care about + V_PMINUB ("%%mm4", _TENS, "%%mm0") // the most we care about "psubusb %%mm4, %%mm7\n\t" // foregive that much from weave est? - "psubusb "MANGLE(FOURS)", %%mm7\n\t" // bias it a bit toward weave + "psubusb "_FOURS", %%mm7\n\t" // bias it a bit toward weave "pxor %%mm0, %%mm0\n\t" "pcmpeqb %%mm0, %%mm7\n\t" // all ff where weave better, else 00 "pcmpeqb %%mm7, %%mm0\n\t" // all ff where bob better, else 00 @@ -42,39 +42,39 @@ // pminub mm0, Max_Vals // but clip to catch the stray error -// V_PMINUB ("%%mm0", MANGLE(Max_Vals), "%%mm1") // but clip to catch the stray error +// V_PMINUB ("%%mm0", _Max_Vals, "%%mm1") // but clip to catch the stray error // pmaxub mm0, Min_Vals -// V_PMAXUB ("%%mm0", MANGLE(Min_Vals)) +// V_PMAXUB ("%%mm0", _Min_Vals) #endif MOVX" "_pDest", %%"XAX"\n\t" - + ADDX" "_olddx", %%"XAX"\n\t" + #ifdef USE_VERTICAL_FILTER "movq %%mm0, %%mm1\n\t" - // pavgb mm0, qword ptr["XBX"] - V_PAVGB ("%%mm0", "(%%"XBX")", "%%mm2", MANGLE(ShiftMask)) - // movntq qword ptr["XAX"+"XDX"], mm0 - V_MOVNTQ ("(%"XAX", %%"XDX")", "%%mm0") - // pavgb mm1, qword ptr["XBX"+"XCX"] - V_PAVGB ("%%mm1", "(%%"XBX", %%"XCX")", "%%mm2", MANGLE(ShiftMask)) - "addq "_dst_pitchw", %%"XBX - // movntq qword ptr["XAX"+"XDX"], mm1 - V_MOVNTQ ("(%%"XAX", %%"XDX")", "%%mm1") + // pavgb mm0, qword ptr["XDX"] + V_PAVGB ("%%mm0", "(%%"XDX")", "%%mm2", _ShiftMask) + // movntq qword ptr["XAX"+"_olddx"], mm0 + V_MOVNTQ ("(%"XAX")", "%%mm0") + // pavgb mm1, qword ptr["XDX"+"XCX"] + V_PAVGB ("%%mm1", "(%%"XDX", %%"XCX")", "%%mm2", _ShiftMask) + "addq "_dst_pitchw", %%"XDX + // movntq qword ptr["XAX"+"_olddx"], mm1 + V_MOVNTQ ("(%%"XAX")", "%%mm1") #else - // movntq qword ptr["XAX"+"XDX"], mm0 - V_MOVNTQ ("(%%"XAX", %%"XDX")", "%%mm0") + // movntq qword ptr["XAX"+"_olddx"], mm0 + V_MOVNTQ ("(%%"XAX")", "%%mm0") #endif - LEAX" 8(%%"XDX"), %%"XDX"\n\t" // bump offset pointer - CMPX" "_Last8", %%"XDX"\n\t" // done with line? + ADDX" $8, "_olddx"\n\t" // bump offset pointer + MOVX" "_olddx", %%"XAX"\n\t" + CMPX" "_Last8", %%"XAX"\n\t" // done with line? "jb 1b\n\t" // y #endif - MOVX" "_oldbx", %%"XBX"\n\t" - : /* no outputs */ : "m"(pBob), @@ -85,7 +85,17 @@ "m"(pSrc), "m"(pSrcP), "m"(pBobP), - "m"(oldbx) + "m"(olddx), + "m"(UVMask), + "m"(ShiftMask), + "m"(FOURS), + "m"(TENS), + "m"(Max_Vals), + "m"(Min_Vals), + "m"(YMask), + "m"(Max_Mov), + "m"(ONES), + "m"(DiffThres) : XAX, XCX, XDX, XSI, XDI, #ifdef ARCH_X86 diff -Nurp xine-lib-1.1.12-old/src/post/deinterlace/plugins/tomsmocomp/SearchLoopTop.inc xine-lib-1.1.12/src/post/deinterlace/plugins/tomsmocomp/SearchLoopTop.inc --- xine-lib-1.1.12-old/src/post/deinterlace/plugins/tomsmocomp/SearchLoopTop.inc 2008-01-23 06:11:53.000000000 +0100 +++ xine-lib-1.1.12/src/post/deinterlace/plugins/tomsmocomp/SearchLoopTop.inc 2008-06-09 23:49:04.000000000 +0200 @@ -66,7 +66,17 @@ long dst_pitchw = dst_pitch; // local s #define _pSrc "%5" #define _pSrcP "%6" #define _pBobP "%7" -#define _oldbx "%8" +#define _olddx "%8" +#define _UVMask "%9" +#define _ShiftMask "%10" +#define _FOURS "%11" +#define _TENS "%12" +#define _Max_Vals "%13" +#define _Min_Vals "%14" +#define _YMask "%15" +#define _Max_Mov "%16" +#define _ONES "%17" +#define _DiffThres "%18" #endif for (y=1; y < FldHeight-1; y++) @@ -77,75 +87,75 @@ long dst_pitchw = dst_pitch; // local s // Loop general reg usage // // XAX - pBobP, then pDest - // XBX - pBob + // XDX - pBob // XCX - src_pitch2 - // XDX - current offset + // _olddx - current offset // XDI - prev weave pixels, 1 line up // XSI - next weave pixels, 1 line up - // Save "XBX" (-fPIC) - MOVX" %%"XBX", "_oldbx"\n\t" - #ifdef IS_SSE2 // sse2 code deleted for now #else // simple bob first 8 bytes - MOVX" "_pBob", %%"XBX"\n\t" + MOVX" "_pBob", %%"XDX"\n\t" MOVX" "_src_pitch2", %%"XCX"\n\t" #ifdef USE_VERTICAL_FILTER - "movq (%%"XBX"), %%mm0\n\t" - "movq (%%"XBX", %%"XCX"), %%mm1\n\t" //, qword ptr["XBX"+"XCX"] + "movq (%%"XDX"), %%mm0\n\t" + "movq (%%"XDX", %%"XCX"), %%mm1\n\t" //, qword ptr["XDX"+"XCX"] "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // halfway between - V_PAVGB ("%%mm0", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 1/4 way - V_PAVGB ("%%mm1", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 3/4 way + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // halfway between + V_PAVGB ("%%mm0", "%%mm2", "%%mm3", _ShiftMask) // 1/4 way + V_PAVGB ("%%mm1", "%%mm2", "%%mm3", _ShiftMask) // 3/4 way MOVX" "_pDest", %%"XDI"\n\t" MOVX" "_dst_pitchw", %%"XAX"\n\t" V_MOVNTQ ("(%%"XDI")", "%%mm0") V_MOVNTQ ("(%%"XDI", %%"XAX")", "%%mm1") // qword ptr["XDI"+"XAX"], mm1 // simple bob last 8 bytes - MOVX" "_Last8", %%"XDX"\n\t" - LEAX" (%%"XBX", %%"XDX"), %%"XSI"\n\t" // ["XBX"+"XDX"] + MOVX" "_Last8", %%"XSI"\n\t" + MOVX" %%"XSI", "_olddx"\n\t" + ADDX" %%"XDX", %%"XSI"\n\t" // ["XDX"+"_olddx"] "movq (%%"XSI"), %%mm0\n\t" "movq (%%"XSI", %%"XCX"), %%mm1\n\t" // qword ptr["XSI"+"XCX"] "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // halfway between - V_PAVGB ("%%mm0", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 1/4 way - V_PAVGB ("%%mm1", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 3/4 way - ADDX" %%"XDX", %%"XDI"\n\t" // last 8 bytes of dest + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // halfway between + V_PAVGB ("%%mm0", "%%mm2", "%%mm3", _ShiftMask) // 1/4 way + V_PAVGB ("%%mm1", "%%mm2", "%%mm3", _ShiftMask) // 3/4 way + ADDX" "_olddx", %%"XDI"\n\t" // last 8 bytes of dest V_MOVNTQ ("%%"XDI"", "%%mm0") V_MOVNTQ ("(%%"XDI", %%"XAX")", "%%mm1") // qword ptr["XDI"+"XAX"], mm1) #else - "movq (%%"XBX"), %%mm0\n\t" - // pavgb mm0, qword ptr["XBX"+"XCX"] - V_PAVGB ("%%mm0", "(%%"XBX", %%"XCX")", "%%mm2", MANGLE(ShiftMask)) // qword ptr["XBX"+"XCX"], mm2, ShiftMask) + "movq (%%"XDX"), %%mm0\n\t" + // pavgb mm0, qword ptr["XDX"+"XCX"] + V_PAVGB ("%%mm0", "(%%"XDX", %%"XCX")", "%%mm2", _ShiftMask) // qword ptr["XDX"+"XCX"], mm2, ShiftMask) MOVX" "_pDest", %%"XDI"\n\t" V_MOVNTQ ("(%%"XDI")", "%%mm0") // simple bob last 8 bytes - MOVX" "_Last8", %%"XDX"\n\t" - LEAX" (%%"XBX", %%"XDX"), %%"XSI"\n\t" //"XSI", ["XBX"+"XDX"] + MOVX" "_Last8", %%"XSI"\n\t" + MOVX" %%"XSI", "_olddx"\n\t" + ADDX" %%"XDX", %%"XSI"\n\t" //"XSI", ["XDX"+"_olddx"] "movq (%%"XSI"), %%mm0\n\t" // pavgb mm0, qword ptr["XSI"+"XCX"] - V_PAVGB ("%%mm0", "(%%"XSI", %%"XCX")", "%%mm2", MANGLE(ShiftMask)) // qword ptr["XSI"+"XCX"], mm2, ShiftMask) - V_MOVNTQ ("(%%"XDI", %%"XDX")", "%%mm0") // qword ptr["XDI"+"XDX"], mm0) + V_PAVGB ("%%mm0", "(%%"XSI", %%"XCX")", "%%mm2", _ShiftMask) // qword ptr["XSI"+"XCX"], mm2, ShiftMask) + ADDX" "_olddx", %%"XDI"\n\t" + V_MOVNTQ ("(%%"XDI")", "%%mm0") // qword ptr["XDI"+"_olddx"], mm0) #endif // now loop and get the middle qwords MOVX" "_pSrc", %%"XSI"\n\t" MOVX" "_pSrcP", %%"XDI"\n\t" - MOVX" $8, %%"XDX"\n\t" // curr offset longo all lines + MOVX" $8, "_olddx"\n\t" // curr offset longo all lines "1:\n\t" MOVX" "_pBobP", %%"XAX"\n\t" ADDX" $8, %%"XDI"\n\t" ADDX" $8, %%"XSI"\n\t" - ADDX" $8, %%"XBX"\n\t" - ADDX" %%"XDX", %%"XAX"\n\t" + ADDX" $8, %%"XDX"\n\t" + ADDX" "_olddx", %%"XAX"\n\t" #ifdef USE_STRANGE_BOB #include "StrangeBob.inc" diff -Nurp xine-lib-1.1.12-old/src/post/deinterlace/plugins/tomsmocomp/StrangeBob.inc xine-lib-1.1.12/src/post/deinterlace/plugins/tomsmocomp/StrangeBob.inc --- xine-lib-1.1.12-old/src/post/deinterlace/plugins/tomsmocomp/StrangeBob.inc 2008-01-23 06:11:53.000000000 +0100 +++ xine-lib-1.1.12/src/post/deinterlace/plugins/tomsmocomp/StrangeBob.inc 2008-06-09 23:34:35.000000000 +0200 @@ -31,22 +31,22 @@ "pxor %%mm6, %%mm6\n\t" "pxor %%mm7, %%mm7\n\t" - "movq -2(%%"XBX"), %%mm0\n\t" // value a from top left - "movq -4(%%"XBX", %%"XCX"), %%mm1\n\t" // value m from bottom right + "movq -2(%%"XDX"), %%mm0\n\t" // value a from top left + "movq -4(%%"XDX", %%"XCX"), %%mm1\n\t" // value m from bottom right "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" "por %%mm1, %%mm3\n\t" // abs(a,m) - "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(a,m) > Thres else 0 + "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(a,m) > Thres else 0 "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(a,m) < Thres, else 00 "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(a,m) > Thres, else 00 - "movq -4(%%"XBX"), %%mm0\n\t" // value j - "movq 4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n + "movq -4(%%"XDX"), %%mm0\n\t" // value j + "movq 4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n "movq %%mm0, %%mm2\n\t" "pavgb %%mm1, %%mm2\n\t" // avg(j,n) "movq %%mm0, %%mm3\n\t" @@ -55,7 +55,7 @@ "por %%mm1, %%mm0\n\t" // abs(j,n) "movq %%mm0, %%mm1\n\t" - "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(j,n) > Thres else 0 + "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(j,n) > Thres else 0 "pxor %%mm3, %%mm3\n\t" "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(j,n) < Thres, else 00 @@ -75,31 +75,31 @@ "por %%mm0, %%mm7\n\t" // k & m - "movq 2(%%"XBX"), %%mm0\n\t" // value c from top left - "movq 4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n from bottom right + "movq 2(%%"XDX"), %%mm0\n\t" // value c from top left + "movq 4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n from bottom right "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" "por %%mm1, %%mm3\n\t" // abs(c,n) - "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(c,n) > Thres else 0 + "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(c,n) > Thres else 0 "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(c,n) < Thres, else 00 "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(c,n) > Thres, else 00 - "movq 4(%%"XBX"), %%mm0\n\t" // value k - "movq -4(%%"XBX", %%"XCX"), %%mm1\n\t" // value m + "movq 4(%%"XDX"), %%mm0\n\t" // value k + "movq -4(%%"XDX", %%"XCX"), %%mm1\n\t" // value m "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(k,m) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(k,m) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm0\n\t" "psubusb %%mm3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" // abs(k,m) "movq %%mm0, %%mm1\n\t" - "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(k,m) > Thres else 0 + "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(k,m) > Thres else 0 "pxor %%mm3, %%mm3\n\t" "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(k,m) < Thres, else 00 @@ -120,30 +120,30 @@ // c & d - "movq (%%"XBX"), %%mm0\n\t" // value b from top left - "movq 2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f from bottom right + "movq (%%"XDX"), %%mm0\n\t" // value b from top left + "movq 2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f from bottom right "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" "por %%mm1, %%mm3\n\t" // abs(b,f) - "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(b,f) > Thres else 0 + "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(b,f) > Thres else 0 "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(b,f) < Thres, else 00 "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(b,f) > Thres, else 00 - "movq 2(%%"XBX"), %%mm0\n\t" // value c - "movq -2(%%"XBX", %%"XCX"), %%mm1\n\t" // value d + "movq 2(%%"XDX"), %%mm0\n\t" // value c + "movq -2(%%"XDX", %%"XCX"), %%mm1\n\t" // value d "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(c,d) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(c,d) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm0\n\t" "psubusb %%mm3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" // abs(c,d) "movq %%mm0, %%mm1\n\t" - "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(c,d) > Thres else 0 + "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(c,d) > Thres else 0 "pxor %%mm3, %%mm3\n\t" "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(c,d) < Thres, else 00 @@ -163,30 +163,30 @@ "por %%mm0, %%mm7\n\t" // a & f - "movq (%%"XBX"), %%mm0\n\t" // value b from top left - "movq -2(%%"XBX", %%"XCX"), %%mm1\n\t" // value d from bottom right + "movq (%%"XDX"), %%mm0\n\t" // value b from top left + "movq -2(%%"XDX", %%"XCX"), %%mm1\n\t" // value d from bottom right "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" "por %%mm1, %%mm3\n\t" // abs(b,d) - "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(b,d) > Thres else 0 + "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(b,d) > Thres else 0 "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(b,d) < Thres, else 00 "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(b,d) > Thres, else 00 - "movq -2(%%"XBX"), %%mm0\n\t" // value a - "movq 2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f + "movq -2(%%"XDX"), %%mm0\n\t" // value a + "movq 2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(a,f) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(a,f) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm0\n\t" "psubusb %%mm3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" // abs(a,f) "movq %%mm0, %%mm1\n\t" - "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(a,f) > Thres else 0 + "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(a,f) > Thres else 0 "pxor %%mm3, %%mm3\n\t" "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(a,f) < Thres, else 00 @@ -205,22 +205,22 @@ "por %%mm2, %%mm6\n\t" "por %%mm0, %%mm7\n\t" - "pand "MANGLE(YMask)", %%mm5\n\t" // mask out chroma from here - "pand "MANGLE(YMask)", %%mm6\n\t" // mask out chroma from here - "pand "MANGLE(YMask)", %%mm7\n\t" // mask out chroma from here + "pand "_YMask", %%mm5\n\t" // mask out chroma from here + "pand "_YMask", %%mm6\n\t" // mask out chroma from here + "pand "_YMask", %%mm7\n\t" // mask out chroma from here // b,e - "movq (%%"XBX"), %%mm0\n\t" // value b from top - "movq (%%"XBX", %%"XCX"), %%mm1\n\t" // value e from bottom + "movq (%%"XDX"), %%mm0\n\t" // value b from top + "movq (%%"XDX", %%"XCX"), %%mm1\n\t" // value e from bottom "movq %%mm0, %%mm2\n\t" - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(b,e) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(b,e) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm0\n\t" "psubusb %%mm3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" // abs(b,e) "movq %%mm0, %%mm1\n\t" - "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(b,e) > Thres else 0 + "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(b,e) > Thres else 0 "pxor %%mm3, %%mm3\n\t" "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(b,e) < Thres, else 00 @@ -238,8 +238,8 @@ "por %%mm0, %%mm7\n\t" // bob in any leftovers - "movq (%%"XBX"), %%mm0\n\t" // value b from top - "movq (%%"XBX", %%"XCX"), %%mm1\n\t" // value e from bottom + "movq (%%"XDX"), %%mm0\n\t" // value b from top + "movq (%%"XDX", %%"XCX"), %%mm1\n\t" // value e from bottom // We will also calc here the max/min values to later limit comb @@ -271,7 +271,7 @@ "por %%mm2, %%mm3\n\t" // abs diff // pmaxub %%mm3, %%mm4 // top or bottom pixel moved most V_PMAXUB ("%%mm3", "%%mm4") // top or bottom pixel moved most - "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // moved more than allowed? or goes to 0? + "psubusb "_DiffThres", %%mm3\n\t" // moved more than allowed? or goes to 0? "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where low motion, else high motion @@ -283,19 +283,19 @@ V_PMAXUB ("%%mm6", "%%mm2") "psubusb %%mm3, %%mm2\n\t" // maybe decrease it to 0000.. if no surround motion -// "movq %%mm2, "MANGLE(Min_Vals)"\n\t" +// "movq %%mm2, "_Min_Vals"\n\t" "movq %%mm0, %%mm2\n\t" V_PMAXUB ("%%mm2", "%%mm1") // pminub %%mm6, %%mm2 // clip our current results so far to be below this V_PMINUB ("%%mm6", "%%mm2", "%%mm4") "paddusb %%mm3, %%mm2\n\t" // maybe increase it to ffffff if no surround motion -// "movq %%mm2, "MANGLE(Max_Vals)"\n\t" +// "movq %%mm2, "_Max_Vals"\n\t" #endif "movq %%mm0, %%mm2\n\t" // pavgb %%mm2, %%mm1 // avg(b,e) - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(b,e) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(b,e) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" diff -Nurp xine-lib-1.1.12-old/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc xine-lib-1.1.12/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc --- xine-lib-1.1.12-old/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc 2008-01-23 06:11:53.000000000 +0100 +++ xine-lib-1.1.12/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc 2008-06-09 21:30:18.000000000 +0200 @@ -33,8 +33,8 @@ static const int64_t __attribute__((__us static const int64_t __attribute__((__used__)) FOURS = 0x0404040404040404ull; static const int64_t __attribute__((__used__)) ONES = 0x0101010101010101ull; static const int64_t __attribute__((__used__)) ShiftMask = 0xfefffefffefffeffull; -//static int64_t Min_Vals = 0x0000000000000000ull; -//static int64_t Max_Vals = 0x0000000000000000ull; +static int64_t Min_Vals = 0x0000000000000000ull; +static int64_t Max_Vals = 0x0000000000000000ull; #endif #ifndef TopFirst @@ -69,7 +69,7 @@ static void FUNCT_NAME(uint8_t *output, int rowsize; int FldHeight; int stride = (width*2); - long oldbx; + long olddx; src_pitch = stride*2; diff -Nurp xine-lib-1.1.12-old/src/post/deinterlace/plugins/tomsmocomp/WierdBob.inc xine-lib-1.1.12/src/post/deinterlace/plugins/tomsmocomp/WierdBob.inc --- xine-lib-1.1.12-old/src/post/deinterlace/plugins/tomsmocomp/WierdBob.inc 2008-01-23 06:11:53.000000000 +0100 +++ xine-lib-1.1.12/src/post/deinterlace/plugins/tomsmocomp/WierdBob.inc 2008-06-09 23:34:41.000000000 +0200 @@ -14,22 +14,22 @@ // selected for the smallest of abs(a,f), abs(c,d), or abs(b,e), etc. // a,f - "movq -2(%%"XBX"), %%mm0\n\t" // value a from top left - "movq 2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f from bottom right + "movq -2(%%"XDX"), %%mm0\n\t" // value a from top left + "movq 2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f from bottom right "movq %%mm0, %%mm6\n\t" // pavgb %%mm6, %%mm1 // avg(a,f), also best so far - V_PAVGB ("%%mm6", "%%mm1", "%%mm7", MANGLE(ShiftMask)) // avg(a,f), also best so far + V_PAVGB ("%%mm6", "%%mm1", "%%mm7", _ShiftMask) // avg(a,f), also best so far "movq %%mm0, %%mm7\n\t" "psubusb %%mm1, %%mm7\n\t" "psubusb %%mm0, %%mm1\n\t" "por %%mm1, %%mm7\n\t" // abs diff, also best so far // c,d - "movq 2(%%"XBX"), %%mm0\n\t" // value a from top left - "movq -2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f from bottom right + "movq 2(%%"XDX"), %%mm0\n\t" // value a from top left + "movq -2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f from bottom right "movq %%mm0, %%mm2\n\t" // pavgb %%mm2, %%mm1 // avg(c,d) - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(c,d) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(c,d) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" @@ -49,15 +49,15 @@ "por %%mm2, %%mm6\n\t" // and merge new & old vals keeping best "por %%mm1, %%mm7\n\t" - "por "MANGLE(UVMask)", %%mm7\n\t" // but we know chroma is worthless so far - "pand "MANGLE(YMask)", %%mm5\n\t" // mask out chroma from here also + "por "_UVMask", %%mm7\n\t" // but we know chroma is worthless so far + "pand "_YMask", %%mm5\n\t" // mask out chroma from here also // j,n - "movq -4(%%"XBX"), %%mm0\n\t" // value j from top left - "movq 4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n from bottom right + "movq -4(%%"XDX"), %%mm0\n\t" // value j from top left + "movq 4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n from bottom right "movq %%mm0, %%mm2\n\t" // pavgb %%mm2, %%mm1 // avg(j,n) - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(j,n) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(j,n) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" "psubusb %%mm0, %%mm1\n\t" @@ -79,11 +79,11 @@ "por %%mm1, %%mm7\n\t" // " // k, m - "movq 4(%%"XBX"), %%mm0\n\t" // value k from top right - "movq -4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n from bottom left + "movq 4(%%"XDX"), %%mm0\n\t" // value k from top right + "movq -4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n from bottom left "movq %%mm0, %%mm4\n\t" // pavgb %%mm4, %%mm1 // avg(k,m) - V_PAVGB ("%%mm4", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(k,m) + V_PAVGB ("%%mm4", "%%mm1", "%%mm3", _ShiftMask) // avg(k,m) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" @@ -108,8 +108,8 @@ "por %%mm1, %%mm7\n\t" // " // b,e - "movq (%%"XBX"), %%mm0\n\t" // value b from top - "movq (%%"XBX", %%"XCX"), %%mm1\n\t" // value e from bottom + "movq (%%"XDX"), %%mm0\n\t" // value b from top + "movq (%%"XDX", %%"XCX"), %%mm1\n\t" // value e from bottom // We will also calc here the max/min values to later limit comb // so the max excursion will not exceed the Max_Comb constant @@ -140,7 +140,7 @@ "por %%mm2, %%mm3\n\t" // abs diff // pmaxub %%mm3, %%mm4 // top or bottom pixel moved most V_PMAXUB ("%%mm3", "%%mm4") // top or bottom pixel moved most - "psubusb "MANGLE(Max_Mov)", %%mm3\n\t" // moved more than allowed? or goes to 0? + "psubusb "_Max_Mov", %%mm3\n\t" // moved more than allowed? or goes to 0? "pxor %%mm4, %%mm4\n\t" "pcmpeqb %%mm4, %%mm3\n\t" // now ff where low motion, else high motion @@ -152,19 +152,19 @@ V_PMAXUB ("%%mm6", "%%mm2") "psubusb %%mm3, %%mm2\n\t" // maybe decrease it to 0000.. if no surround motion -// "movq %%mm2, "MANGLE(Min_Vals)"\n\t" +// "movq %%mm2, "_Min_Vals"\n\t" "movq %%mm0, %%mm2\n\t" V_PMAXUB ("%%mm2", "%%mm1") // pminub %%mm6, %%mm2 // clip our current results so far to be below this V_PMINUB ("%%mm6", "%%mm2", "%%mm4") "paddusb %%mm3, %%mm2\n\t" // maybe increase it to ffffff if no surround motion -// "movq %%mm2, "MANGLE(Max_Vals)"\n\t" +// "movq %%mm2, "_Max_Vals"\n\t" #endif "movq %%mm0, %%mm2\n\t" // pavgb %%mm2, %%mm1 // avg(b,e) - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(b,e) + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(b,e) "movq %%mm0, %%mm3\n\t" "psubusb %%mm1, %%mm3\n\t" diff -Nurp xine-lib-1.1.12-old/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h xine-lib-1.1.12/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h --- xine-lib-1.1.12-old/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h 2008-03-02 22:17:16.000000000 +0100 +++ xine-lib-1.1.12/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h 2008-06-09 19:38:28.000000000 +0200 @@ -114,7 +114,7 @@ "por %%xmm0, %%xmm5\n\t" /* and merge new & old vals */ \ "por %%xmm2, %%xmm7\n\t" -#define RESET_CHROMA "por "MANGLE(UVMask)", %%xmm7\n\t" +#define RESET_CHROMA "por "_UVMask", %%xmm7\n\t" #else // ifdef IS_SSE2 @@ -126,7 +126,7 @@ "psubusb %%mm1, %%mm2\n\t" \ "psubusb %%mm0, %%mm3\n\t" \ "por %%mm3, %%mm2\n\t" \ - V_PAVGB ("%%mm0", "%%mm1", "%%mm3", MANGLE(ShiftMask)) /* avg of 2 pixels */ \ + V_PAVGB ("%%mm0", "%%mm1", "%%mm3", _ShiftMask) /* avg of 2 pixels */ \ "movq %%mm2, %%mm3\n\t" /* another copy of our our weights */ \ "pxor %%mm1, %%mm1\n\t" \ "psubusb %%mm7, %%mm3\n\t" /* nonzero where old weights lower, else 0 */ \ @@ -144,14 +144,14 @@ "movq "PADDR2A", %%mm1\n\t" /* our pixel2 value */ \ "movq "PADDR1B", %%mm2\n\t" /* our 4 pixels */ \ "movq "PADDR2B", %%mm3\n\t" /* our pixel2 value */ \ - V_PAVGB("%%mm0", "%%mm2", "%%mm2", MANGLE(ShiftMask)) \ - V_PAVGB("%%mm1", "%%mm3", "%%mm3", MANGLE(ShiftMask)) \ + V_PAVGB("%%mm0", "%%mm2", "%%mm2", _ShiftMask) \ + V_PAVGB("%%mm1", "%%mm3", "%%mm3", _ShiftMask) \ "movq %%mm0, %%mm2\n\t" /* another copy of our pixel1 value */ \ "movq %%mm1, %%mm3\n\t" /* another copy of our pixel1 value */ \ "psubusb %%mm1, %%mm2\n\t" \ "psubusb %%mm0, %%mm3\n\t" \ "por %%mm3, %%mm2\n\t" \ - V_PAVGB("%%mm0", "%%mm1", "%%mm3", MANGLE(ShiftMask)) /* avg of 2 pixels */ \ + V_PAVGB("%%mm0", "%%mm1", "%%mm3", _ShiftMask) /* avg of 2 pixels */ \ "movq %%mm2, %%mm3\n\t" /* another copy of our our weights */ \ "pxor %%mm1, %%mm1\n\t" \ "psubusb %%mm7, %%mm3\n\t" /* nonzero where old weights lower, else 0 */ \ @@ -164,7 +164,7 @@ "por %%mm0, %%mm5\n\t" /* and merge new & old vals */ \ "por %%mm2, %%mm7\n\t" -#define RESET_CHROMA "por "MANGLE(UVMask)", %%mm7\n\t" +#define RESET_CHROMA "por "_UVMask", %%mm7\n\t" #endif