Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 192646 Details for
Bug 271476
=media-video/transcode-1.1.7: text relocation in aclib
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
attempt at text relocation fix - incomplete
text-rel-fix.patch (text/plain), 13.52 KB, created by
Rafał Mużyło
on 2009-05-27 22:54:29 UTC
(
hide
)
Description:
attempt at text relocation fix - incomplete
Filename:
MIME Type:
Creator:
Rafał Mużyło
Created:
2009-05-27 22:54:29 UTC
Size:
13.52 KB
patch
obsolete
>diff -ur filter/tomsmocomp-old/SearchLoopBottom.inc filter/tomsmocomp/SearchLoopBottom.inc >--- filter/tomsmocomp-old/SearchLoopBottom.inc 2009-02-21 15:34:02.000000000 +0100 >+++ filter/tomsmocomp/SearchLoopBottom.inc 2009-05-27 20:04:00.000000000 +0200 >@@ -50,31 +50,31 @@ > > > "movl "_pDest", %%eax\n\t" >+ "addl "_olddx", %%eax\n\t" > > #ifdef USE_VERTICAL_FILTER > "movq %%mm0, %%mm1\n\t" >- // pavgb mm0, qword ptr[ebx] >- V_PAVGB ("%%mm0", "(%%ebx)", "%%mm2", _ShiftMask) >- // movntq qword ptr[eax+edx], mm0 >- V_MOVNTQ ("(%%eax, %%edx)", "%%mm0") >- // pavgb mm1, qword ptr[ebx+ecx] >- V_PAVGB ("%%mm1", "(%%ebx, %%ecx)", "%%mm2", _ShiftMask) >+ // pavgb mm0, qword ptr[edx] >+ V_PAVGB ("%%mm0", "(%%edx)", "%%mm2", _ShiftMask) >+ // movntq qword ptr[eax+_olddx], mm0 >+ V_MOVNTQ ("(%%eax)", "%%mm0") >+ // pavgb mm1, qword ptr[edx+ecx] >+ V_PAVGB ("%%mm1", "(%%edx, %%ecx)", "%%mm2", _ShiftMask) > "addl "_dst_pitchw", %%eax" >- // movntq qword ptr[eax+edx], mm1 >- V_MOVNTQ ("(%%eax, %%edx)", "%%mm1") >+ // movntq qword ptr[eax+_olddx], mm1 >+ V_MOVNTQ ("(%%eax)", "%%mm1") > #else > >- // movntq qword ptr[eax+edx], mm0 >- V_MOVNTQ ("(%%eax, %%edx)", "%%mm0") >+ // movntq qword ptr[eax+_olddx], mm0 >+ V_MOVNTQ ("(%%eax)", "%%mm0") > #endif > >- "leal 8(%%edx), %%edx\n\t" // bump offset pointer >- "cmpl "_Last8", %%edx\n\t" // done with line? >+ "addl $8, "_olddx"\n\t" // bump offset pointer >+ "movl "_olddx", %%eax\n\t" >+ "cmpl "_Last8", %%eax\n\t" // done with line? > "jb 1b\n\t" // y > #endif > >- "popl %%ebx\n\t" >- > : /* no outputs */ > : "m"(pBob), > "m"(src_pitch2), >@@ -93,7 +93,8 @@ > "m"(ONES[0]), > "m"(UVMask[0]), > "m"(Max_Mov[0]), >- "m"(YMask[0]) >+ "m"(YMask[0]), >+ "m"(olddx) > > : "eax", "ecx", "edx", "esi", "edi", > "st", "st(1)", "st(2)", "st(3)", "st(4)", "st(5)", "st(6)", "st(7)", >@@ -119,6 +120,7 @@ > #undef _UVMask > #undef _Max_Mov > #undef _YMask >+#undef _olddx > > // adjust for next line > pSrc += src_pitch2; >diff -ur filter/tomsmocomp-old/SearchLoopTop.inc filter/tomsmocomp/SearchLoopTop.inc >--- filter/tomsmocomp-old/SearchLoopTop.inc 2009-02-21 15:34:02.000000000 +0100 >+++ filter/tomsmocomp/SearchLoopTop.inc 2009-05-27 20:02:28.000000000 +0200 >@@ -1,6 +1,7 @@ > // -*- c++ -*- > > unsigned char* pDest; >+long olddx; > const unsigned char* pSrcP; > const unsigned char* pSrc; > const unsigned char* pBob; >@@ -84,6 +85,7 @@ > #define _UVMask "%15" > #define _Max_Mov "%16" > #define _YMask "%17" >+#define _olddx "%18" > > for (y=1; y < FldHeight-1; y++) > { >@@ -99,21 +101,18 @@ > // edi - prev weave pixels, 1 line up > // esi - next weave pixels, 1 line up > >- // Save ebx (-fPIC) >- "pushl %%ebx\n\t" >- > #ifdef IS_SSE2 > > // sse2 code deleted for now > > #else > // simple bob first 8 bytes >- "movl "_pBob", %%ebx\n\t" >+ "movl "_pBob", %%edx\n\t" > "movl "_src_pitch2", %%ecx\n\t" > > #ifdef USE_VERTICAL_FILTER >- "movq (%%ebx), %%mm0\n\t" >- "movq (%%ebx, %%ecx), %%mm1\n\t" //, qword ptr[ebx+ecx] >+ "movq (%%edx), %%mm0\n\t" >+ "movq (%%edx, %%ecx), %%mm1\n\t" //, qword ptr[edx+ecx] > "movq %%mm0, %%mm2\n\t" > V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // halfway between > V_PAVGB ("%%mm0", "%%mm2", "%%mm3", _ShiftMask) // 1/4 way >@@ -124,44 +123,47 @@ > V_MOVNTQ ("(%%edi, %%eax)", "%%mm1") // qword ptr[edi+eax], mm1 > > // simple bob last 8 bytes >- "movl "_Last8", %%edx\n\t" >- "leal (%%ebx, %%edx), %%esi\n\t" // [ebx+edx] >+ "movl "_Last8", %%esi\n\t" >+ "movl %%esi, "_olddx"\n\t" >+ "addl %%edx, %%esi\n\t" // [edx+_olddx] > "movq (%%esi), %%mm0\n\t" > "movq (%%esi, %%ecx), %%mm1\n\t" // qword ptr[esi+ecx] > "movq %%mm0, %%mm2\n\t" > 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 >- "addl %%edx, %%edi\n\t" // last 8 bytes of dest >+ "addl "_olddx", %%edi\n\t" // last 8 bytes of dest > V_MOVNTQ ("%%edi", "%%mm0") > V_MOVNTQ ("(%%edi, %%eax)", "%%mm1") // qword ptr[edi+eax], mm1) > > #else >- "movq (%%ebx), %%mm0\n\t" >- // pavgb mm0, qword ptr[ebx+ecx] >- V_PAVGB ("%%mm0", "(%%ebx, %%ecx)", "%%mm2", _ShiftMask) // qword ptr[ebx+ecx], mm2, ShiftMask) >+ "movq (%%edx), %%mm0\n\t" >+ // pavgb mm0, qword ptr[edx+ecx] >+ V_PAVGB ("%%mm0", "(%%edx, %%ecx)", "%%mm2", _ShiftMask) // qword ptr[edx+ecx], mm2, ShiftMask) > "movl "_pDest", %%edi\n\t" > V_MOVNTQ ("(%%edi)", "%%mm0") > > // simple bob last 8 bytes >- "movl "_Last8", %%edx\n\t" >- "leal (%%ebx, %%edx), %%esi\n\t" //esi, [ebx+edx] >+ "movl "_Last8", %%esi\n\t" >+ "movl %%esi, "_olddx"\n\t" >+ "addl %%edx, %%esi\n\t" //esi, [edx+_olddx] > "movq (%%esi), %%mm0\n\t" > // pavgb mm0, qword ptr[esi+ecx] > V_PAVGB ("%%mm0", "(%%esi, %%ecx)", "%%mm2", _ShiftMask) // qword ptr[esi+ecx], mm2, ShiftMask) >- V_MOVNTQ ("(%%edi, %%edx)", "%%mm0") // qword ptr[edi+edx], mm0) >+ "addl "_olddx", %%edi\n\t" >+ V_MOVNTQ ("(%%edi)", "%%mm0") // qword ptr[edi+_olddx], mm0) > #endif > // now loop and get the middle qwords > "movl "_pSrc", %%esi\n\t" > "movl "_pSrcP", %%edi\n\t" >- "movl $8, %%edx\n\t" // curr offset into all lines >+ "movl $8, "_olddx"\n\t" // curr offset into all lines > > "1:\n\t" > "movl "_pBobP", %%eax\n\t" > "addl $8, %%edi\n\t" > "addl $8, %%esi\n\t" >- "addl $8, %%ebx\n\t" >- "addl %%edx, %%eax\n\t" >+ "addl $8, %%edx\n\t" >+ "addl "_olddx", %%eax\n\t" > > #ifdef USE_STRANGE_BOB > #include "StrangeBob.inc" >diff -ur filter/tomsmocomp-old/StrangeBob.inc filter/tomsmocomp/StrangeBob.inc >--- filter/tomsmocomp-old/StrangeBob.inc 2009-02-21 15:34:02.000000000 +0100 >+++ filter/tomsmocomp/StrangeBob.inc 2009-05-27 20:02:28.000000000 +0200 >@@ -31,8 +31,8 @@ > "pxor %%mm6, %%mm6\n\t" > "pxor %%mm7, %%mm7\n\t" > >- "movq -2(%%ebx), %%mm0\n\t" // value a from top left >- "movq -4(%%ebx, %%ecx), %%mm1\n\t" // value m from bottom right >+ "movq -2(%%edx), %%mm0\n\t" // value a from top left >+ "movq -4(%%edx, %%ecx), %%mm1\n\t" // value m from bottom right > > "movq %%mm0, %%mm3\n\t" > "psubusb %%mm1, %%mm3\n\t" >@@ -45,8 +45,8 @@ > "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(a,m) > Thres, else 00 > > >- "movq -4(%%ebx), %%mm0\n\t" // value j >- "movq 4(%%ebx, %%ecx), %%mm1\n\t" // value n >+ "movq -4(%%edx), %%mm0\n\t" // value j >+ "movq 4(%%edx, %%ecx), %%mm1\n\t" // value n > "movq %%mm0, %%mm2\n\t" > "pavgb %%mm1, %%mm2\n\t" // avg(j,n) > "movq %%mm0, %%mm3\n\t" >@@ -75,8 +75,8 @@ > "por %%mm0, %%mm7\n\t" > > // k & m >- "movq 2(%%ebx), %%mm0\n\t" // value c from top left >- "movq 4(%%ebx, %%ecx), %%mm1\n\t" // value n from bottom right >+ "movq 2(%%edx), %%mm0\n\t" // value c from top left >+ "movq 4(%%edx, %%ecx), %%mm1\n\t" // value n from bottom right > > "movq %%mm0, %%mm3\n\t" > "psubusb %%mm1, %%mm3\n\t" >@@ -89,8 +89,8 @@ > "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(c,n) > Thres, else 00 > > >- "movq 4(%%ebx), %%mm0\n\t" // value k >- "movq -4(%%ebx, %%ecx), %%mm1\n\t" // value m >+ "movq 4(%%edx), %%mm0\n\t" // value k >+ "movq -4(%%edx, %%ecx), %%mm1\n\t" // value m > "movq %%mm0, %%mm2\n\t" > V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(k,m) > "movq %%mm0, %%mm3\n\t" >@@ -120,8 +120,8 @@ > > > // c & d >- "movq (%%ebx), %%mm0\n\t" // value b from top left >- "movq 2(%%ebx, %%ecx), %%mm1\n\t" // value f from bottom right >+ "movq (%%edx), %%mm0\n\t" // value b from top left >+ "movq 2(%%edx, %%ecx), %%mm1\n\t" // value f from bottom right > > "movq %%mm0, %%mm3\n\t" > "psubusb %%mm1, %%mm3\n\t" >@@ -133,8 +133,8 @@ > "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(%%ebx), %%mm0\n\t" // value c >- "movq -2(%%ebx, %%ecx), %%mm1\n\t" // value d >+ "movq 2(%%edx), %%mm0\n\t" // value c >+ "movq -2(%%edx, %%ecx), %%mm1\n\t" // value d > "movq %%mm0, %%mm2\n\t" > V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(c,d) > "movq %%mm0, %%mm3\n\t" >@@ -163,8 +163,8 @@ > "por %%mm0, %%mm7\n\t" > > // a & f >- "movq (%%ebx), %%mm0\n\t" // value b from top left >- "movq -2(%%ebx, %%ecx), %%mm1\n\t" // value d from bottom right >+ "movq (%%edx), %%mm0\n\t" // value b from top left >+ "movq -2(%%edx, %%ecx), %%mm1\n\t" // value d from bottom right > > "movq %%mm0, %%mm3\n\t" > "psubusb %%mm1, %%mm3\n\t" >@@ -176,8 +176,8 @@ > "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(%%ebx), %%mm0\n\t" // value a >- "movq 2(%%ebx, %%ecx), %%mm1\n\t" // value f >+ "movq -2(%%edx), %%mm0\n\t" // value a >+ "movq 2(%%edx, %%ecx), %%mm1\n\t" // value f > "movq %%mm0, %%mm2\n\t" > V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(a,f) > "movq %%mm0, %%mm3\n\t" >@@ -210,8 +210,8 @@ > "pand "_YMask", %%mm7\n\t" // mask out chroma from here > > // b,e >- "movq (%%ebx), %%mm0\n\t" // value b from top >- "movq (%%ebx, %%ecx), %%mm1\n\t" // value e from bottom >+ "movq (%%edx), %%mm0\n\t" // value b from top >+ "movq (%%edx, %%ecx), %%mm1\n\t" // value e from bottom > "movq %%mm0, %%mm2\n\t" > V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(b,e) > "movq %%mm0, %%mm3\n\t" >@@ -238,8 +238,8 @@ > "por %%mm0, %%mm7\n\t" > > // bob in any leftovers >- "movq (%%ebx), %%mm0\n\t" // value b from top >- "movq (%%ebx, %%ecx), %%mm1\n\t" // value e from bottom >+ "movq (%%edx), %%mm0\n\t" // value b from top >+ "movq (%%edx, %%ecx), %%mm1\n\t" // value e from bottom > > > // We will also calc here the max/min values to later limit comb >diff -ur filter/tomsmocomp-old/WierdBob.inc filter/tomsmocomp/WierdBob.inc >--- filter/tomsmocomp-old/WierdBob.inc 2009-02-21 15:34:02.000000000 +0100 >+++ filter/tomsmocomp/WierdBob.inc 2009-05-27 20:02:28.000000000 +0200 >@@ -14,8 +14,8 @@ > // selected for the smallest of abs(a,f), abs(c,d), or abs(b,e), etc. > > // a,f >- "movq -2(%%ebx), %%mm0\n\t" // value a from top left >- "movq 2(%%ebx, %%ecx), %%mm1\n\t" // value f from bottom right >+ "movq -2(%%edx), %%mm0\n\t" // value a from top left >+ "movq 2(%%edx, %%ecx), %%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", _ShiftMask) // avg(a,f), also best so far >@@ -25,8 +25,8 @@ > "por %%mm1, %%mm7\n\t" // abs diff, also best so far > > // c,d >- "movq 2(%%ebx), %%mm0\n\t" // value a from top left >- "movq -2(%%ebx, %%ecx), %%mm1\n\t" // value f from bottom right >+ "movq 2(%%edx), %%mm0\n\t" // value a from top left >+ "movq -2(%%edx, %%ecx), %%mm1\n\t" // value f from bottom right > "movq %%mm0, %%mm2\n\t" > // pavgb %%mm2, %%mm1 // avg(c,d) > V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(c,d) >@@ -53,8 +53,8 @@ > "pand "_YMask", %%mm5\n\t" // mask out chroma from here also > > // j,n >- "movq -4(%%ebx), %%mm0\n\t" // value j from top left >- "movq 4(%%ebx, %%ecx), %%mm1\n\t" // value n from bottom right >+ "movq -4(%%edx), %%mm0\n\t" // value j from top left >+ "movq 4(%%edx, %%ecx), %%mm1\n\t" // value n from bottom right > "movq %%mm0, %%mm2\n\t" > // pavgb %%mm2, %%mm1 // avg(j,n) > V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(j,n) >@@ -79,8 +79,8 @@ > "por %%mm1, %%mm7\n\t" // " > > // k, m >- "movq 4(%%ebx), %%mm0\n\t" // value k from top right >- "movq -4(%%ebx, %%ecx), %%mm1\n\t" // value n from bottom left >+ "movq 4(%%edx), %%mm0\n\t" // value k from top right >+ "movq -4(%%edx, %%ecx), %%mm1\n\t" // value n from bottom left > "movq %%mm0, %%mm4\n\t" > // pavgb %%mm4, %%mm1 // avg(k,m) > V_PAVGB ("%%mm4", "%%mm1", "%%mm3", _ShiftMask) // avg(k,m) >@@ -108,8 +108,8 @@ > "por %%mm1, %%mm7\n\t" // " > > // b,e >- "movq (%%ebx), %%mm0\n\t" // value b from top >- "movq (%%ebx, %%ecx), %%mm1\n\t" // value e from bottom >+ "movq (%%edx), %%mm0\n\t" // value b from top >+ "movq (%%edx, %%ecx), %%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
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 271476
:
192645
| 192646