Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 271476 | Differences between
and this patch

Collapse All | Expand All

(-)filter/tomsmocomp-old/SearchLoopBottom.inc (-15 / +17 lines)
Lines 50-80 Link Here
50
50
51
51
52
            "movl     "_pDest", %%eax\n\t"
52
            "movl     "_pDest", %%eax\n\t"
53
            "addl     "_olddx", %%eax\n\t"
53
54
54
#ifdef USE_VERTICAL_FILTER
55
#ifdef USE_VERTICAL_FILTER
55
            "movq    %%mm0, %%mm1\n\t"
56
            "movq    %%mm0, %%mm1\n\t"
56
            //      pavgb   mm0, qword ptr[ebx]
57
            //      pavgb   mm0, qword ptr[edx]
57
            V_PAVGB ("%%mm0", "(%%ebx)", "%%mm2", _ShiftMask)
58
            V_PAVGB ("%%mm0", "(%%edx)", "%%mm2", _ShiftMask)
58
            //      movntq  qword ptr[eax+edx], mm0
59
            //      movntq  qword ptr[eax+_olddx], mm0
59
            V_MOVNTQ ("(%%eax, %%edx)", "%%mm0")
60
            V_MOVNTQ ("(%%eax)", "%%mm0")
60
            //      pavgb   mm1, qword ptr[ebx+ecx]
61
            //      pavgb   mm1, qword ptr[edx+ecx]
61
            V_PAVGB ("%%mm1", "(%%ebx, %%ecx)", "%%mm2", _ShiftMask)
62
            V_PAVGB ("%%mm1", "(%%edx, %%ecx)", "%%mm2", _ShiftMask)
62
            "addl   "_dst_pitchw", %%eax"
63
            "addl   "_dst_pitchw", %%eax"
63
            //      movntq  qword ptr[eax+edx], mm1
64
            //      movntq  qword ptr[eax+_olddx], mm1
64
            V_MOVNTQ ("(%%eax, %%edx)", "%%mm1")
65
            V_MOVNTQ ("(%%eax)", "%%mm1")
65
#else
66
#else
66
67
67
            //      movntq  qword ptr[eax+edx], mm0
68
            //      movntq  qword ptr[eax+_olddx], mm0
68
                V_MOVNTQ ("(%%eax, %%edx)", "%%mm0")
69
                V_MOVNTQ ("(%%eax)", "%%mm0")
69
#endif
70
#endif
70
71
71
           "leal    8(%%edx), %%edx\n\t"       // bump offset pointer
72
           "addl    $8, "_olddx"\n\t"          // bump offset pointer
72
           "cmpl    "_Last8", %%edx\n\t"       // done with line?
73
           "movl    "_olddx", %%eax\n\t"
74
           "cmpl    "_Last8", %%eax\n\t"       // done with line?
73
           "jb      1b\n\t"                    // y
75
           "jb      1b\n\t"                    // y
74
#endif
76
#endif
75
77
76
            "popl %%ebx\n\t"
77
78
        : /* no outputs */
78
        : /* no outputs */
79
        : "m"(pBob),
79
        : "m"(pBob),
80
          "m"(src_pitch2),
80
          "m"(src_pitch2),
Lines 93-99 Link Here
93
          "m"(ONES[0]),
93
          "m"(ONES[0]),
94
          "m"(UVMask[0]),
94
          "m"(UVMask[0]),
95
          "m"(Max_Mov[0]),
95
          "m"(Max_Mov[0]),
96
          "m"(YMask[0])
96
          "m"(YMask[0]),
97
          "m"(olddx)
97
98
98
        : "eax", "ecx", "edx", "esi", "edi",
99
        : "eax", "ecx", "edx", "esi", "edi",
99
          "st", "st(1)", "st(2)", "st(3)", "st(4)", "st(5)", "st(6)", "st(7)",
100
          "st", "st(1)", "st(2)", "st(3)", "st(4)", "st(5)", "st(6)", "st(7)",
Lines 119-124 Link Here
119
#undef _UVMask
120
#undef _UVMask
120
#undef _Max_Mov
121
#undef _Max_Mov
121
#undef _YMask
122
#undef _YMask
123
#undef _olddx
122
124
123
        // adjust for next line
125
        // adjust for next line
124
        pSrc  += src_pitch2;
126
        pSrc  += src_pitch2;
(-)filter/tomsmocomp-old/SearchLoopTop.inc (-18 / +20 lines)
Lines 1-6 Link Here
1
// -*- c++ -*-
1
// -*- c++ -*-
2
2
3
unsigned char*	pDest;
3
unsigned char*	pDest;
4
long		olddx;
4
const unsigned char*	pSrcP;
5
const unsigned char*	pSrcP;
5
const unsigned char*	pSrc;
6
const unsigned char*	pSrc;
6
const unsigned char*	pBob;
7
const unsigned char*	pBob;
Lines 84-89 Link Here
84
#define _UVMask     "%15"
85
#define _UVMask     "%15"
85
#define _Max_Mov    "%16"
86
#define _Max_Mov    "%16"
86
#define _YMask      "%17"
87
#define _YMask      "%17"
88
#define _olddx      "%18"
87
89
88
	for (y=1; y < FldHeight-1; y++)
90
	for (y=1; y < FldHeight-1; y++)
89
	{
91
	{
Lines 99-119 Link Here
99
             // edi - prev weave pixels, 1 line up
101
             // edi - prev weave pixels, 1 line up
100
             // esi - next weave pixels, 1 line up
102
             // esi - next weave pixels, 1 line up
101
103
102
             // Save ebx (-fPIC)
103
             "pushl %%ebx\n\t"
104
105
#ifdef IS_SSE2
104
#ifdef IS_SSE2
106
105
107
             // sse2 code deleted for now
106
             // sse2 code deleted for now
108
107
109
#else
108
#else
110
             // simple bob first 8 bytes
109
             // simple bob first 8 bytes
111
             "movl		"_pBob",        %%ebx\n\t"
110
             "movl		"_pBob",        %%edx\n\t"
112
             "movl	"_src_pitch2",  %%ecx\n\t"
111
             "movl	"_src_pitch2",  %%ecx\n\t"
113
112
114
#ifdef USE_VERTICAL_FILTER
113
#ifdef USE_VERTICAL_FILTER
115
             "movq	    (%%ebx),        %%mm0\n\t"
114
             "movq	    (%%edx),        %%mm0\n\t"
116
             "movq	    (%%ebx, %%ecx), %%mm1\n\t" //, qword ptr[ebx+ecx]
115
             "movq	    (%%edx, %%ecx), %%mm1\n\t" //, qword ptr[edx+ecx]
117
             "movq	    %%mm0,          %%mm2\n\t"
116
             "movq	    %%mm0,          %%mm2\n\t"
118
             V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)		// halfway between
117
             V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)		// halfway between
119
             V_PAVGB ("%%mm0", "%%mm2", "%%mm3", _ShiftMask)		// 1/4 way
118
             V_PAVGB ("%%mm0", "%%mm2", "%%mm3", _ShiftMask)		// 1/4 way
Lines 124-167 Link Here
124
             V_MOVNTQ	("(%%edi, %%eax)", "%%mm1") // qword ptr[edi+eax], mm1
123
             V_MOVNTQ	("(%%edi, %%eax)", "%%mm1") // qword ptr[edi+eax], mm1
125
124
126
             // simple bob last 8 bytes
125
             // simple bob last 8 bytes
127
             "movl		"_Last8", %%edx\n\t"
126
             "movl		"_Last8", %%esi\n\t"
128
             "leal		(%%ebx, %%edx), %%esi\n\t"  // [ebx+edx]
127
             "movl		%%esi, "_olddx"\n\t"
128
             "addl		%%edx, %%esi\n\t" // [edx+_olddx]
129
             "movq	    (%%esi), %%mm0\n\t"
129
             "movq	    (%%esi), %%mm0\n\t"
130
             "movq	    (%%esi, %%ecx), %%mm1\n\t"    // qword ptr[esi+ecx]
130
             "movq	    (%%esi, %%ecx), %%mm1\n\t"    // qword ptr[esi+ecx]
131
             "movq	    %%mm0, %%mm2\n\t"
131
             "movq	    %%mm0, %%mm2\n\t"
132
             V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)		// halfway between
132
             V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)		// halfway between
133
             V_PAVGB ("%%mm0", "%%mm2", "%%mm3", _ShiftMask)		// 1/4 way
133
             V_PAVGB ("%%mm0", "%%mm2", "%%mm3", _ShiftMask)		// 1/4 way
134
             V_PAVGB ("%%mm1", "%%mm2", "%%mm3", _ShiftMask)		// 3/4 way
134
             V_PAVGB ("%%mm1", "%%mm2", "%%mm3", _ShiftMask)		// 3/4 way
135
             "addl		%%edx, %%edi\n\t"						// last 8 bytes of dest
135
             "addl		"_olddx", %%edi\n\t"						// last 8 bytes of dest
136
             V_MOVNTQ	("%%edi", "%%mm0")
136
             V_MOVNTQ	("%%edi", "%%mm0")
137
             V_MOVNTQ	("(%%edi, %%eax)", "%%mm1") // qword ptr[edi+eax], mm1)
137
             V_MOVNTQ	("(%%edi, %%eax)", "%%mm1") // qword ptr[edi+eax], mm1)
138
138
139
#else
139
#else
140
             "movq	(%%ebx), %%mm0\n\t"
140
             "movq	(%%edx), %%mm0\n\t"
141
             //		pavgb	mm0, qword ptr[ebx+ecx]
141
             //		pavgb	mm0, qword ptr[edx+ecx]
142
             V_PAVGB ("%%mm0", "(%%ebx, %%ecx)", "%%mm2", _ShiftMask) // qword ptr[ebx+ecx], mm2, ShiftMask)
142
             V_PAVGB ("%%mm0", "(%%edx, %%ecx)", "%%mm2", _ShiftMask) // qword ptr[edx+ecx], mm2, ShiftMask)
143
             "movl		"_pDest", %%edi\n\t"
143
             "movl		"_pDest", %%edi\n\t"
144
             V_MOVNTQ	("(%%edi)", "%%mm0")
144
             V_MOVNTQ	("(%%edi)", "%%mm0")
145
145
146
             // simple bob last 8 bytes
146
             // simple bob last 8 bytes
147
             "movl		"_Last8", %%edx\n\t"
147
             "movl		"_Last8", %%esi\n\t"
148
             "leal		(%%ebx, %%edx), %%esi\n\t" //esi, [ebx+edx]
148
             "movl		%%esi, "_olddx"\n\t"
149
             "addl		%%edx, %%esi\n\t" //esi, [edx+_olddx]
149
             "movq	    (%%esi), %%mm0\n\t"
150
             "movq	    (%%esi), %%mm0\n\t"
150
             //		pavgb	mm0, qword ptr[esi+ecx]
151
             //		pavgb	mm0, qword ptr[esi+ecx]
151
             V_PAVGB	("%%mm0", "(%%esi, %%ecx)", "%%mm2", _ShiftMask) // qword ptr[esi+ecx], mm2, ShiftMask)
152
             V_PAVGB	("%%mm0", "(%%esi, %%ecx)", "%%mm2", _ShiftMask) // qword ptr[esi+ecx], mm2, ShiftMask)
152
             V_MOVNTQ	("(%%edi, %%edx)", "%%mm0") // qword ptr[edi+edx], mm0)
153
             "addl		"_olddx", %%edi\n\t"
154
             V_MOVNTQ	("(%%edi)", "%%mm0") // qword ptr[edi+_olddx], mm0)
153
#endif
155
#endif
154
             // now loop and get the middle qwords
156
             // now loop and get the middle qwords
155
             "movl		"_pSrc", %%esi\n\t"
157
             "movl		"_pSrc", %%esi\n\t"
156
             "movl		"_pSrcP", %%edi\n\t"
158
             "movl		"_pSrcP", %%edi\n\t"
157
             "movl		$8, %%edx\n\t"				// curr offset into all lines
159
             "movl		$8, "_olddx"\n\t"				// curr offset into all lines
158
160
159
             "1:\n\t"
161
             "1:\n\t"
160
             "movl		"_pBobP", %%eax\n\t"
162
             "movl		"_pBobP", %%eax\n\t"
161
             "addl		$8, %%edi\n\t"
163
             "addl		$8, %%edi\n\t"
162
             "addl		$8, %%esi\n\t"
164
             "addl		$8, %%esi\n\t"
163
             "addl		$8, %%ebx\n\t"
165
             "addl		$8, %%edx\n\t"
164
             "addl		%%edx, %%eax\n\t"
166
             "addl		"_olddx", %%eax\n\t"
165
167
166
#ifdef USE_STRANGE_BOB
168
#ifdef USE_STRANGE_BOB
167
#include "StrangeBob.inc"
169
#include "StrangeBob.inc"
(-)filter/tomsmocomp-old/StrangeBob.inc (-20 / +20 lines)
Lines 31-38 Link Here
31
        "pxor %%mm6, %%mm6\n\t"
31
        "pxor %%mm6, %%mm6\n\t"
32
        "pxor %%mm7, %%mm7\n\t"
32
        "pxor %%mm7, %%mm7\n\t"
33
33
34
		"movq    -2(%%ebx), %%mm0\n\t"		// value a from top left
34
		"movq    -2(%%edx), %%mm0\n\t"		// value a from top left
35
		"movq    -4(%%ebx, %%ecx), %%mm1\n\t"	// value m from bottom right
35
		"movq    -4(%%edx, %%ecx), %%mm1\n\t"	// value m from bottom right
36
36
37
		"movq	%%mm0, %%mm3\n\t"
37
		"movq	%%mm0, %%mm3\n\t"
38
		"psubusb	%%mm1, %%mm3\n\t"
38
		"psubusb	%%mm1, %%mm3\n\t"
Lines 45-52 Link Here
45
		"pcmpeqb	%%mm3, %%mm4\n\t"			// here ff where abs(a,m) > Thres, else 00
45
		"pcmpeqb	%%mm3, %%mm4\n\t"			// here ff where abs(a,m) > Thres, else 00
46
46
47
47
48
		"movq    -4(%%ebx), %%mm0\n\t"		// value j
48
		"movq    -4(%%edx), %%mm0\n\t"		// value j
49
		"movq    4(%%ebx, %%ecx), %%mm1\n\t"	// value n
49
		"movq    4(%%edx, %%ecx), %%mm1\n\t"	// value n
50
		"movq	%%mm0, %%mm2\n\t"
50
		"movq	%%mm0, %%mm2\n\t"
51
		"pavgb	%%mm1, %%mm2\n\t"					// avg(j,n)
51
		"pavgb	%%mm1, %%mm2\n\t"					// avg(j,n)
52
        "movq	%%mm0, %%mm3\n\t"
52
        "movq	%%mm0, %%mm3\n\t"
Lines 75-82 Link Here
75
        "por     %%mm0, %%mm7\n\t"
75
        "por     %%mm0, %%mm7\n\t"
76
76
77
        // k & m
77
        // k & m
78
		"movq    2(%%ebx), %%mm0\n\t"		// value c from top left
78
		"movq    2(%%edx), %%mm0\n\t"		// value c from top left
79
		"movq    4(%%ebx, %%ecx), %%mm1\n\t"	// value n from bottom right
79
		"movq    4(%%edx, %%ecx), %%mm1\n\t"	// value n from bottom right
80
80
81
		"movq	%%mm0, %%mm3\n\t"
81
		"movq	%%mm0, %%mm3\n\t"
82
		"psubusb	%%mm1, %%mm3\n\t"
82
		"psubusb	%%mm1, %%mm3\n\t"
Lines 89-96 Link Here
89
		"pcmpeqb	%%mm3, %%mm4\n\t"			// here ff where abs(c,n) > Thres, else 00
89
		"pcmpeqb	%%mm3, %%mm4\n\t"			// here ff where abs(c,n) > Thres, else 00
90
90
91
91
92
		"movq    4(%%ebx), %%mm0\n\t"		// value k
92
		"movq    4(%%edx), %%mm0\n\t"		// value k
93
		"movq    -4(%%ebx, %%ecx), %%mm1\n\t"	// value m
93
		"movq    -4(%%edx, %%ecx), %%mm1\n\t"	// value m
94
		"movq	%%mm0, %%mm2\n\t"
94
		"movq	%%mm0, %%mm2\n\t"
95
		V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)	// avg(k,m)
95
		V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)	// avg(k,m)
96
        "movq	%%mm0, %%mm3\n\t"
96
        "movq	%%mm0, %%mm3\n\t"
Lines 120-127 Link Here
120
120
121
121
122
        // c & d
122
        // c & d
123
		"movq    (%%ebx), %%mm0\n\t"		// value b from top left
123
		"movq    (%%edx), %%mm0\n\t"		// value b from top left
124
		"movq    2(%%ebx, %%ecx), %%mm1\n\t"	// value f from bottom right
124
		"movq    2(%%edx, %%ecx), %%mm1\n\t"	// value f from bottom right
125
125
126
		"movq	%%mm0, %%mm3\n\t"
126
		"movq	%%mm0, %%mm3\n\t"
127
		"psubusb	%%mm1, %%mm3\n\t"
127
		"psubusb	%%mm1, %%mm3\n\t"
Lines 133-140 Link Here
133
		"pcmpeqb %%mm4, %%mm3\n\t"			// now ff where abs(b,f) < Thres, else 00
133
		"pcmpeqb %%mm4, %%mm3\n\t"			// now ff where abs(b,f) < Thres, else 00
134
		"pcmpeqb	%%mm3, %%mm4\n\t"			// here ff where abs(b,f) > Thres, else 00
134
		"pcmpeqb	%%mm3, %%mm4\n\t"			// here ff where abs(b,f) > Thres, else 00
135
135
136
		"movq    2(%%ebx), %%mm0\n\t"		// value c
136
		"movq    2(%%edx), %%mm0\n\t"		// value c
137
		"movq    -2(%%ebx, %%ecx), %%mm1\n\t"	// value d
137
		"movq    -2(%%edx, %%ecx), %%mm1\n\t"	// value d
138
		"movq	%%mm0, %%mm2\n\t"
138
		"movq	%%mm0, %%mm2\n\t"
139
		V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)	// avg(c,d)
139
		V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)	// avg(c,d)
140
        "movq	%%mm0, %%mm3\n\t"
140
        "movq	%%mm0, %%mm3\n\t"
Lines 163-170 Link Here
163
        "por     %%mm0, %%mm7\n\t"
163
        "por     %%mm0, %%mm7\n\t"
164
164
165
        // a & f
165
        // a & f
166
		"movq    (%%ebx), %%mm0\n\t"		// value b from top left
166
		"movq    (%%edx), %%mm0\n\t"		// value b from top left
167
		"movq    -2(%%ebx, %%ecx), %%mm1\n\t"	// value d from bottom right
167
		"movq    -2(%%edx, %%ecx), %%mm1\n\t"	// value d from bottom right
168
168
169
		"movq	%%mm0, %%mm3\n\t"
169
		"movq	%%mm0, %%mm3\n\t"
170
		"psubusb	%%mm1, %%mm3\n\t"
170
		"psubusb	%%mm1, %%mm3\n\t"
Lines 176-183 Link Here
176
		"pcmpeqb %%mm4, %%mm3\n\t"			// now ff where abs(b,d) < Thres, else 00
176
		"pcmpeqb %%mm4, %%mm3\n\t"			// now ff where abs(b,d) < Thres, else 00
177
		"pcmpeqb	%%mm3, %%mm4\n\t"			// here ff where abs(b,d) > Thres, else 00
177
		"pcmpeqb	%%mm3, %%mm4\n\t"			// here ff where abs(b,d) > Thres, else 00
178
178
179
		"movq    -2(%%ebx), %%mm0\n\t"		// value a
179
		"movq    -2(%%edx), %%mm0\n\t"		// value a
180
		"movq    2(%%ebx, %%ecx), %%mm1\n\t"	// value f
180
		"movq    2(%%edx, %%ecx), %%mm1\n\t"	// value f
181
		"movq	%%mm0, %%mm2\n\t"
181
		"movq	%%mm0, %%mm2\n\t"
182
		V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)	// avg(a,f)
182
		V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)	// avg(a,f)
183
        "movq	%%mm0, %%mm3\n\t"
183
        "movq	%%mm0, %%mm3\n\t"
Lines 210-217 Link Here
210
 		"pand	"_YMask", %%mm7\n\t"			// mask out chroma from here
210
 		"pand	"_YMask", %%mm7\n\t"			// mask out chroma from here
211
211
212
		// b,e
212
		// b,e
213
		"movq    (%%ebx), %%mm0\n\t"		// value b from top
213
		"movq    (%%edx), %%mm0\n\t"		// value b from top
214
		"movq    (%%ebx, %%ecx), %%mm1\n\t"	// value e from bottom
214
		"movq    (%%edx, %%ecx), %%mm1\n\t"	// value e from bottom
215
		"movq	%%mm0, %%mm2\n\t"
215
		"movq	%%mm0, %%mm2\n\t"
216
		V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)	// avg(b,e)
216
		V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)	// avg(b,e)
217
        "movq	%%mm0, %%mm3\n\t"
217
        "movq	%%mm0, %%mm3\n\t"
Lines 238-245 Link Here
238
        "por     %%mm0, %%mm7\n\t"
238
        "por     %%mm0, %%mm7\n\t"
239
239
240
		// bob in any leftovers
240
		// bob in any leftovers
241
		"movq    (%%ebx), %%mm0\n\t"		// value b from top
241
		"movq    (%%edx), %%mm0\n\t"		// value b from top
242
		"movq    (%%ebx, %%ecx), %%mm1\n\t"	// value e from bottom
242
		"movq    (%%edx, %%ecx), %%mm1\n\t"	// value e from bottom
243
243
244
244
245
// We will also calc here the max/min values to later limit comb
245
// We will also calc here the max/min values to later limit comb
(-)filter/tomsmocomp-old/WierdBob.inc (-10 / +10 lines)
Lines 14-21 Link Here
14
		// selected for the	smallest of abs(a,f), abs(c,d), or abs(b,e), etc.
14
		// selected for the	smallest of abs(a,f), abs(c,d), or abs(b,e), etc.
15
15
16
		// a,f
16
		// a,f
17
		"movq    -2(%%ebx), %%mm0\n\t"		// value a from top left
17
		"movq    -2(%%edx), %%mm0\n\t"		// value a from top left
18
		"movq    2(%%ebx, %%ecx), %%mm1\n\t"	// value f from bottom right
18
		"movq    2(%%edx, %%ecx), %%mm1\n\t"	// value f from bottom right
19
		"movq	%%mm0, %%mm6\n\t"
19
		"movq	%%mm0, %%mm6\n\t"
20
//		pavgb	%%mm6, %%mm1					// avg(a,f), also best so far
20
//		pavgb	%%mm6, %%mm1					// avg(a,f), also best so far
21
		V_PAVGB ("%%mm6", "%%mm1", "%%mm7", _ShiftMask)	// avg(a,f), also best so far
21
		V_PAVGB ("%%mm6", "%%mm1", "%%mm7", _ShiftMask)	// avg(a,f), also best so far
Lines 25-32 Link Here
25
		"por		%%mm1, %%mm7\n\t"					// abs diff, also best so far
25
		"por		%%mm1, %%mm7\n\t"					// abs diff, also best so far
26
26
27
		// c,d
27
		// c,d
28
		"movq    2(%%ebx), %%mm0\n\t"		// value a from top left
28
		"movq    2(%%edx), %%mm0\n\t"		// value a from top left
29
		"movq    -2(%%ebx, %%ecx), %%mm1\n\t"	// value f from bottom right
29
		"movq    -2(%%edx, %%ecx), %%mm1\n\t"	// value f from bottom right
30
		"movq	%%mm0, %%mm2\n\t"
30
		"movq	%%mm0, %%mm2\n\t"
31
//		pavgb	%%mm2, %%mm1					// avg(c,d)
31
//		pavgb	%%mm2, %%mm1					// avg(c,d)
32
		V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)	// avg(c,d)
32
		V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)	// avg(c,d)
Lines 53-60 Link Here
53
		"pand	"_YMask", %%mm5\n\t"			// mask out chroma from here also
53
		"pand	"_YMask", %%mm5\n\t"			// mask out chroma from here also
54
54
55
		// j,n
55
		// j,n
56
		"movq    -4(%%ebx), %%mm0\n\t"		// value j from top left
56
		"movq    -4(%%edx), %%mm0\n\t"		// value j from top left
57
		"movq    4(%%ebx, %%ecx), %%mm1\n\t"	// value n from bottom right
57
		"movq    4(%%edx, %%ecx), %%mm1\n\t"	// value n from bottom right
58
		"movq	%%mm0, %%mm2\n\t"
58
		"movq	%%mm0, %%mm2\n\t"
59
//		pavgb	%%mm2, %%mm1					// avg(j,n)
59
//		pavgb	%%mm2, %%mm1					// avg(j,n)
60
		V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)	// avg(j,n)
60
		V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask)	// avg(j,n)
Lines 79-86 Link Here
79
		"por		%%mm1, %%mm7\n\t"			// "
79
		"por		%%mm1, %%mm7\n\t"			// "
80
80
81
		// k, m
81
		// k, m
82
		"movq    4(%%ebx), %%mm0\n\t"		// value k from top right
82
		"movq    4(%%edx), %%mm0\n\t"		// value k from top right
83
		"movq    -4(%%ebx, %%ecx), %%mm1\n\t"	// value n from bottom left
83
		"movq    -4(%%edx, %%ecx), %%mm1\n\t"	// value n from bottom left
84
		"movq	%%mm0, %%mm4\n\t"
84
		"movq	%%mm0, %%mm4\n\t"
85
//		pavgb	%%mm4, %%mm1					// avg(k,m)
85
//		pavgb	%%mm4, %%mm1					// avg(k,m)
86
		V_PAVGB ("%%mm4", "%%mm1", "%%mm3", _ShiftMask)	// avg(k,m)
86
		V_PAVGB ("%%mm4", "%%mm1", "%%mm3", _ShiftMask)	// avg(k,m)
Lines 108-115 Link Here
108
		"por		%%mm1, %%mm7\n\t"			// "
108
		"por		%%mm1, %%mm7\n\t"			// "
109
109
110
		// b,e
110
		// b,e
111
		"movq    (%%ebx), %%mm0\n\t"		// value b from top
111
		"movq    (%%edx), %%mm0\n\t"		// value b from top
112
		"movq    (%%ebx, %%ecx), %%mm1\n\t"	// value e from bottom
112
		"movq    (%%edx, %%ecx), %%mm1\n\t"	// value e from bottom
113
113
114
// We will also calc here the max/min values to later limit comb
114
// We will also calc here the max/min values to later limit comb
115
// so the max excursion will not exceed the Max_Comb constant
115
// so the max excursion will not exceed the Max_Comb constant

Return to bug 271476