diff options
Diffstat (limited to 'src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc')
-rw-r--r-- | src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc | 54 |
1 files changed, 32 insertions, 22 deletions
diff --git a/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc b/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc index 63755d1fc..595325738 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc +++ b/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc @@ -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 |