summaryrefslogtreecommitdiff
path: root/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc
diff options
context:
space:
mode:
Diffstat (limited to 'src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc')
-rw-r--r--src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc54
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