Annotation of /trunk/xine-lib/patches/xine-lib-1.1.1-textrels.patch
Parent Directory | Revision Log
Revision 153 -
(hide annotations)
(download)
Tue May 8 20:52:56 2007 UTC (17 years, 4 months ago) by niro
File size: 48911 byte(s)
Tue May 8 20:52:56 2007 UTC (17 years, 4 months ago) by niro
File size: 48911 byte(s)
-import
1 | niro | 153 | Index: xine-lib-1.1.1/src/libw32dll/wine/module.c |
2 | =================================================================== | ||
3 | --- xine-lib-1.1.1.orig/src/libw32dll/wine/module.c | ||
4 | +++ xine-lib-1.1.1/src/libw32dll/wine/module.c | ||
5 | @@ -38,8 +38,8 @@ | ||
6 | |||
7 | #ifdef EMU_QTX_API | ||
8 | #include "wrapper.h" | ||
9 | -static int report_func(void *stack_base, int stack_size, reg386_t *reg, u_int32_t *flags); | ||
10 | -static int report_func_ret(void *stack_base, int stack_size, reg386_t *reg, u_int32_t *flags); | ||
11 | +int report_func(void *stack_base, int stack_size, reg386_t *reg, u_int32_t *flags); | ||
12 | +int report_func_ret(void *stack_base, int stack_size, reg386_t *reg, u_int32_t *flags); | ||
13 | #endif | ||
14 | |||
15 | //#undef TRACE | ||
16 | @@ -533,8 +533,6 @@ HMODULE WINAPI LoadLibraryExA(LPCSTR lib | ||
17 | printf ("wine/module: QuickTime.qts patched!!! old entry=%p\n",ptr[0]); | ||
18 | |||
19 | #ifdef EMU_QTX_API | ||
20 | - report_entry = report_func; | ||
21 | - report_ret = report_func_ret; | ||
22 | wrapper_target=ptr[0]; | ||
23 | ptr[0]=wrapper; | ||
24 | #endif | ||
25 | @@ -697,7 +695,7 @@ static int dump_component(char* name,int | ||
26 | static u_int32_t ret_array[4096]; | ||
27 | static int ret_i=0; | ||
28 | |||
29 | -static int report_func(void *stack_base, int stack_size, reg386_t *reg, u_int32_t *flags) | ||
30 | +int report_func(void *stack_base, int stack_size, reg386_t *reg, u_int32_t *flags) | ||
31 | { | ||
32 | #ifdef DEBUG_QTX_API | ||
33 | int i; | ||
34 | @@ -896,7 +894,7 @@ static int report_func(void *stack_base, | ||
35 | return 0; | ||
36 | } | ||
37 | |||
38 | -static int report_func_ret(void *stack_base, int stack_size, reg386_t *reg, u_int32_t *flags) | ||
39 | +int report_func_ret(void *stack_base, int stack_size, reg386_t *reg, u_int32_t *flags) | ||
40 | { | ||
41 | #ifdef DEBUG_QTX_API | ||
42 | int i; | ||
43 | @@ -1011,8 +1009,6 @@ FARPROC MODULE_GetProcAddress( | ||
44 | // || !strcmp(function,"_CallComponent") | ||
45 | ){ | ||
46 | fprintf(stderr,"theQuickTimeDispatcher caught -> %p\n",retproc); | ||
47 | - report_entry = report_func; | ||
48 | - report_ret = report_func_ret; | ||
49 | wrapper_target=(void *)retproc; | ||
50 | retproc=(void *)wrapper; | ||
51 | } | ||
52 | Index: xine-lib-1.1.1/src/libw32dll/wine/stubs.s | ||
53 | =================================================================== | ||
54 | --- xine-lib-1.1.1.orig/src/libw32dll/wine/stubs.s | ||
55 | +++ xine-lib-1.1.1/src/libw32dll/wine/stubs.s | ||
56 | @@ -33,3 +33,6 @@ exp_EH_prolog: | ||
57 | leal 12(%esp), %ebp | ||
58 | pushl %eax | ||
59 | ret | ||
60 | + | ||
61 | +.section .note.GNU-stack,"",@progbits | ||
62 | + | ||
63 | Index: xine-lib-1.1.1/src/libw32dll/wine/wrapper.S | ||
64 | =================================================================== | ||
65 | --- xine-lib-1.1.1.orig/src/libw32dll/wine/wrapper.S | ||
66 | +++ xine-lib-1.1.1/src/libw32dll/wine/wrapper.S | ||
67 | @@ -1,17 +1,19 @@ | ||
68 | .section .data | ||
69 | -.globl caller_return | ||
70 | caller_return: | ||
71 | .long 0 | ||
72 | -.globl report_entry | ||
73 | -report_entry: | ||
74 | - .long null_call | ||
75 | -.globl report_ret | ||
76 | -report_ret: | ||
77 | - .long null_call | ||
78 | .global wrapper_target | ||
79 | wrapper_target: | ||
80 | .long null_call | ||
81 | |||
82 | +#undef __i686 /* gcc define gets in our way */ | ||
83 | + .section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits | ||
84 | +.globl __i686.get_pc_thunk.bx | ||
85 | + .hidden __i686.get_pc_thunk.bx | ||
86 | + .type __i686.get_pc_thunk.bx,@function | ||
87 | +__i686.get_pc_thunk.bx: | ||
88 | + movl (%esp), %ebx | ||
89 | + ret | ||
90 | + | ||
91 | .section .text | ||
92 | .globl null_call | ||
93 | .type null_call, @function | ||
94 | @@ -22,46 +24,60 @@ null_call: | ||
95 | .type wrapper, @function | ||
96 | .balign 16,0x90 | ||
97 | wrapper: | ||
98 | + pushl $0 | ||
99 | pusha # store registers (EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI) | ||
100 | pushf # store flags | ||
101 | |||
102 | push %ebp # set up a stack frame | ||
103 | movl %esp, %ebp | ||
104 | |||
105 | + call __i686.get_pc_thunk.bx | ||
106 | + addl $_GLOBAL_OFFSET_TABLE_, %ebx | ||
107 | + | ||
108 | leal 4(%ebp), %eax # push flags addr | ||
109 | push %eax | ||
110 | leal 8(%ebp), %eax # push registers addr | ||
111 | push %eax | ||
112 | |||
113 | - leal 40(%ebp), %edx | ||
114 | + leal 44(%ebp), %edx | ||
115 | movl (%ebp), %eax | ||
116 | subl %edx, %eax | ||
117 | push %eax | ||
118 | push %edx | ||
119 | |||
120 | - call *report_entry # report entry | ||
121 | + call report_func@PLT # report entry | ||
122 | |||
123 | test %eax, %eax | ||
124 | jnz .Ldone | ||
125 | |||
126 | + movl 44(%ebp), %eax # switch return addresses | ||
127 | + movl %eax, caller_return@GOTOFF(%ebx) | ||
128 | + leal .Lwrapper_return@GOTOFF(%ebx), %eax | ||
129 | + movl %eax, 40(%ebp) | ||
130 | + | ||
131 | + movl wrapper_target@GOTOFF(%ebx), %eax | ||
132 | + mov %eax, 40(%ebp) # wrapper_target should return at .Lwrapper_return | ||
133 | + | ||
134 | leave # restore %esp, %ebp | ||
135 | popf # restore flags | ||
136 | popa # restore registers | ||
137 | - | ||
138 | - popl caller_return # switch return addresses | ||
139 | - pushl $.Lwrapper_return | ||
140 | - | ||
141 | - jmp *wrapper_target # wrapper_target should return at .Lwrapper_return | ||
142 | + | ||
143 | + ret # fake 'return' to wrapper_target actually | ||
144 | |||
145 | .balign 16, 0x90 | ||
146 | .Lwrapper_return: | ||
147 | - pushl caller_return # restore the original return address | ||
148 | + pushl $0 | ||
149 | pusha # more for reference sake here | ||
150 | pushf | ||
151 | |||
152 | push %ebp # set up a stack frame | ||
153 | movl %esp, %ebp | ||
154 | |||
155 | + call __i686.get_pc_thunk.bx | ||
156 | + addl $_GLOBAL_OFFSET_TABLE_, %ebx | ||
157 | + movl caller_return@GOTOFF(%ebx), %eax | ||
158 | + movl %eax, 40(%ebp) # restore the original return address | ||
159 | + | ||
160 | leal 4(%ebp), %eax # push flags addr | ||
161 | push %eax | ||
162 | leal 8(%ebp), %eax # push registers addr | ||
163 | @@ -73,11 +89,13 @@ wrapper: | ||
164 | push %eax | ||
165 | push %edx | ||
166 | |||
167 | - call *report_ret # report the return information (same args) | ||
168 | + call report_func_ret@PLT# report the return information (same args) | ||
169 | .Ldone: | ||
170 | |||
171 | leave | ||
172 | popf | ||
173 | popa | ||
174 | ret | ||
175 | - | ||
176 | + | ||
177 | +.section .note.GNU-stack,"",@progbits | ||
178 | + | ||
179 | Index: xine-lib-1.1.1/src/libw32dll/wine/wrapper.h | ||
180 | =================================================================== | ||
181 | --- xine-lib-1.1.1.orig/src/libw32dll/wine/wrapper.h | ||
182 | +++ xine-lib-1.1.1/src/libw32dll/wine/wrapper.h | ||
183 | @@ -11,10 +11,6 @@ typedef struct { | ||
184 | u_int32_t edi, esi, ebp, esp, ebx, edx, ecx, eax; | ||
185 | } reg386_t; | ||
186 | |||
187 | -typedef int (*wrapper_func_t)(void *stack_base, int stack_size, reg386_t *reg, u_int32_t *flags); | ||
188 | - | ||
189 | -extern wrapper_func_t report_entry, report_ret; | ||
190 | - | ||
191 | extern void (*wrapper_target)(void); | ||
192 | |||
193 | extern int wrapper(void); | ||
194 | Index: xine-lib-1.1.1/src/post/deinterlace/plugins/greedy2frame_template.c | ||
195 | =================================================================== | ||
196 | --- xine-lib-1.1.1.orig/src/post/deinterlace/plugins/greedy2frame_template.c | ||
197 | +++ xine-lib-1.1.1/src/post/deinterlace/plugins/greedy2frame_template.c | ||
198 | @@ -183,7 +183,7 @@ static void DeinterlaceGreedy2Frame_MMX( | ||
199 | * See above for a description of the algorithm. | ||
200 | */ | ||
201 | ".align 8 \n\t" | ||
202 | - "movq "MANGLE(Mask)", %%mm6 \n\t" | ||
203 | + "movq %4, %%mm6 \n\t" | ||
204 | |||
205 | "movq %0, %%mm1 \n\t" // T1 | ||
206 | "movq %1, %%mm0 \n\t" // M1 | ||
207 | @@ -191,7 +191,7 @@ static void DeinterlaceGreedy2Frame_MMX( | ||
208 | "movq %3, %%mm2 \n\t" // M0 | ||
209 | : /* no output */ | ||
210 | : "m" (*T1), "m" (*M1), | ||
211 | - "m" (*B1), "m" (*M0) ); | ||
212 | + "m" (*B1), "m" (*M0), "m" (Mask) ); | ||
213 | |||
214 | |||
215 | asm volatile( | ||
216 | @@ -248,10 +248,10 @@ static void DeinterlaceGreedy2Frame_MMX( | ||
217 | #endif | ||
218 | |||
219 | /* if |M1-M0| > Threshold we want dword worth of twos */ | ||
220 | - "pcmpgtb "MANGLE(qwGreedyTwoFrameThreshold)", %%mm4 \n\t" | ||
221 | - "pand "MANGLE(Mask)", %%mm4 \n\t" /* get rid of sign bit */ | ||
222 | - "pcmpgtd "MANGLE(DwordOne)", %%mm4 \n\t" /* do we want to bob */ | ||
223 | - "pandn "MANGLE(DwordTwo)", %%mm4 \n\t" | ||
224 | + "pcmpgtb %3, %%mm4 \n\t" | ||
225 | + "pand %4, %%mm4 \n\t" /* get rid of sign bit */ | ||
226 | + "pcmpgtd %5, %%mm4 \n\t" /* do we want to bob */ | ||
227 | + "pandn %6, %%mm4 \n\t" | ||
228 | |||
229 | "movq %1, %%mm2 \n\t" /* mm2 = T0 */ | ||
230 | |||
231 | @@ -264,11 +264,11 @@ static void DeinterlaceGreedy2Frame_MMX( | ||
232 | "pand %%mm6, %%mm5 \n\t" | ||
233 | |||
234 | /* if |T1-T0| > Threshold we want dword worth of ones */ | ||
235 | - "pcmpgtb "MANGLE(qwGreedyTwoFrameThreshold)", %%mm5 \n\t" | ||
236 | + "pcmpgtb %3, %%mm5 \n\t" | ||
237 | "pand %%mm6, %%mm5 \n\t" /* get rid of sign bit */ | ||
238 | |||
239 | - "pcmpgtd "MANGLE(DwordOne)", %%mm5 \n\t" | ||
240 | - "pandn "MANGLE(DwordOne)", %%mm5 \n\t" | ||
241 | + "pcmpgtd %5, %%mm5 \n\t" | ||
242 | + "pandn %5, %%mm5 \n\t" | ||
243 | "paddd %%mm5, %%mm4 \n\t" | ||
244 | |||
245 | "movq %2, %%mm2 \n\t" /* B0 */ | ||
246 | @@ -282,13 +282,13 @@ static void DeinterlaceGreedy2Frame_MMX( | ||
247 | "pand %%mm6, %%mm5 \n\t" | ||
248 | |||
249 | /* if |B1-B0| > Threshold we want dword worth of ones */ | ||
250 | - "pcmpgtb "MANGLE(qwGreedyTwoFrameThreshold)", %%mm5 \n\t" | ||
251 | + "pcmpgtb %3, %%mm5 \n\t" | ||
252 | "pand %%mm6, %%mm5 \n\t" /* get rid of any sign bit */ | ||
253 | - "pcmpgtd "MANGLE(DwordOne)", %%mm5 \n\t" | ||
254 | - "pandn "MANGLE(DwordOne)", %%mm5 \n\t" | ||
255 | + "pcmpgtd %5, %%mm5 \n\t" | ||
256 | + "pandn %5, %%mm5 \n\t" | ||
257 | "paddd %%mm5, %%mm4 \n\t" | ||
258 | |||
259 | - "pcmpgtd "MANGLE(DwordTwo)", %%mm4 \n\t" | ||
260 | + "pcmpgtd %6, %%mm4 \n\t" | ||
261 | |||
262 | /* debugging feature | ||
263 | * output the value of mm4 at this point which is pink where we will weave | ||
264 | @@ -314,7 +314,7 @@ static void DeinterlaceGreedy2Frame_MMX( | ||
265 | #endif | ||
266 | |||
267 | : "=m" (*Dest2) | ||
268 | - : "m" (*T0), "m" (*B0) ); | ||
269 | + : "m" (*T0), "m" (*B0), "m" (qwGreedyTwoFrameThreshold), "m" (Mask), "m" (DwordOne), "m" (DwordTwo) ); | ||
270 | |||
271 | /* Advance to the next set of pixels. */ | ||
272 | T1 += 8; | ||
273 | Index: xine-lib-1.1.1/src/post/deinterlace/plugins/greedyh.asm | ||
274 | =================================================================== | ||
275 | --- xine-lib-1.1.1.orig/src/post/deinterlace/plugins/greedyh.asm | ||
276 | +++ xine-lib-1.1.1/src/post/deinterlace/plugins/greedyh.asm | ||
277 | @@ -43,7 +43,6 @@ static void FUNCT_NAME(uint8_t *output, | ||
278 | |||
279 | int Line; | ||
280 | long LoopCtr; | ||
281 | - long oldbx; | ||
282 | unsigned int Pitch = stride*2; | ||
283 | int FieldHeight = height / 2; | ||
284 | |||
285 | @@ -52,6 +51,7 @@ static void FUNCT_NAME(uint8_t *output, | ||
286 | unsigned char* L3; // ptr to Line3 | ||
287 | |||
288 | unsigned char* L2P; // ptr to prev Line2 | ||
289 | + unsigned char* temp; | ||
290 | unsigned char* Dest = output; | ||
291 | |||
292 | int64_t LastAvg=0; //interp value from left qword | ||
293 | @@ -121,25 +121,21 @@ static void FUNCT_NAME(uint8_t *output, | ||
294 | #define asmLastAvg "%0" | ||
295 | #define asmL1 "%1" | ||
296 | #define asmL3 "%2" | ||
297 | -#define asmL2P "%3" | ||
298 | +#define asmtemp "%3" | ||
299 | #define asmL2 "%4" | ||
300 | #define asmDest "%5" | ||
301 | #define asmLoopCtr "%6" | ||
302 | -#define asmoldbx "%7" | ||
303 | #endif | ||
304 | |||
305 | // For ease of reading, the comments below assume that we're operating on an odd | ||
306 | // field (i.e., that InfoIsOdd is true). Assume the obvious for even lines.. | ||
307 | + temp = L2P; | ||
308 | __asm__ __volatile__ | ||
309 | ( | ||
310 | - // save ebx (-fPIC) | ||
311 | - MOVX" %%"XBX", "asmoldbx"\n\t" | ||
312 | - | ||
313 | MOVX" "asmL1", %%"XAX"\n\t" | ||
314 | - LEAX" 8(%%"XAX"), %%"XBX"\n\t" // next qword needed by DJR | ||
315 | + LEAX" 8(%%"XAX"), %%"XDX"\n\t" // next qword needed by DJR | ||
316 | MOVX" "asmL3", %%"XCX"\n\t" | ||
317 | SUBX" %%"XAX", %%"XCX"\n\t" // carry L3 addr as an offset | ||
318 | - MOVX" "asmL2P", %%"XDX"\n\t" | ||
319 | MOVX" "asmL2", %%"XSI"\n\t" | ||
320 | MOVX" "asmDest", %%"XDI"\n\t" // DL1 if Odd or DL2 if Even | ||
321 | |||
322 | @@ -148,11 +144,14 @@ static void FUNCT_NAME(uint8_t *output, | ||
323 | |||
324 | "movq (%%"XSI"), %%mm0\n\t" // L2 - the newest weave pixel value | ||
325 | "movq (%%"XAX"), %%mm1\n\t" // L1 - the top pixel | ||
326 | + PUSHX" %%"XDX "\n\t" | ||
327 | + MOVX" "asmtemp", %%"XDX"\n\t" | ||
328 | "movq (%%"XDX"), %%mm2\n\t" // L2P - the prev weave pixel | ||
329 | + POPX" %%"XDX "\n\t" | ||
330 | "movq (%%"XAX", %%"XCX"), %%mm3\n\t" // L3, next odd row | ||
331 | "movq %%mm1, %%mm6\n\t" // L1 - get simple single pixel interp | ||
332 | // pavgb mm6, mm3 // use macro below | ||
333 | - V_PAVGB ("%%mm6", "%%mm3", "%%mm4", MANGLE(ShiftMask)) | ||
334 | + V_PAVGB ("%%mm6", "%%mm3", "%%mm4", "%8") | ||
335 | |||
336 | // DJR - Diagonal Jaggie Reduction | ||
337 | // In the event that we are going to use an average (Bob) pixel we do not want a jagged | ||
338 | @@ -166,24 +165,24 @@ static void FUNCT_NAME(uint8_t *output, | ||
339 | "psllq $16, %%mm7\n\t" // left justify 3 pixels | ||
340 | "por %%mm7, %%mm4\n\t" // and combine | ||
341 | |||
342 | - "movq (%%"XBX"), %%mm5\n\t" // next horiz qword from L1 | ||
343 | + "movq (%%"XDX"), %%mm5\n\t" // next horiz qword from L1 | ||
344 | // pavgb mm5, qword ptr[ebx+ecx] // next horiz qword from L3, use macro below | ||
345 | - V_PAVGB ("%%mm5", "(%%"XBX",%%"XCX")", "%%mm7", MANGLE(ShiftMask)) | ||
346 | + V_PAVGB ("%%mm5", "(%%"XDX",%%"XCX")", "%%mm7", "%8") | ||
347 | "psllq $48, %%mm5\n\t" // left just 1 pixel | ||
348 | "movq %%mm6, %%mm7\n\t" // another copy of simple bob pixel | ||
349 | "psrlq $16, %%mm7\n\t" // right just 3 pixels | ||
350 | "por %%mm7, %%mm5\n\t" // combine | ||
351 | // pavgb mm4, mm5 // avg of forward and prev by 1 pixel, use macro | ||
352 | - V_PAVGB ("%%mm4", "%%mm5", "%%mm5", MANGLE(ShiftMask)) // mm5 gets modified if MMX | ||
353 | + V_PAVGB ("%%mm4", "%%mm5", "%%mm5", "%8") // mm5 gets modified if MMX | ||
354 | // pavgb mm6, mm4 // avg of center and surround interp vals, use macro | ||
355 | - V_PAVGB ("%%mm6", "%%mm4", "%%mm7", MANGLE(ShiftMask)) | ||
356 | + V_PAVGB ("%%mm6", "%%mm4", "%%mm7", "%8") | ||
357 | |||
358 | // Don't do any more averaging than needed for mmx. It hurts performance and causes rounding errors. | ||
359 | #ifndef IS_MMX | ||
360 | // pavgb mm4, mm6 // 1/4 center, 3/4 adjacent | ||
361 | - V_PAVGB ("%%mm4", "%%mm6", "%%mm7", MANGLE(ShiftMask)) | ||
362 | + V_PAVGB ("%%mm4", "%%mm6", "%%mm7", "%8") | ||
363 | // pavgb mm6, mm4 // 3/8 center, 5/8 adjacent | ||
364 | - V_PAVGB ("%%mm6", "%%mm4", "%%mm7", MANGLE(ShiftMask)) | ||
365 | + V_PAVGB ("%%mm6", "%%mm4", "%%mm7", "%8") | ||
366 | #endif | ||
367 | |||
368 | // get abs value of possible L2 comb | ||
369 | @@ -236,64 +235,71 @@ static void FUNCT_NAME(uint8_t *output, | ||
370 | // pminub mm5, mm3 // now = Min(L1,L3), use macro | ||
371 | V_PMINUB ("%%mm5", "%%mm3", "%%mm7") | ||
372 | // allow the value to be above the high or below the low by amt of MaxComb | ||
373 | - "psubusb "MANGLE(MaxComb)", %%mm5\n\t" // lower min by diff | ||
374 | - "paddusb "MANGLE(MaxComb)", %%mm2\n\t" // increase max by diff | ||
375 | + "psubusb %9, %%mm5\n\t" // lower min by diff | ||
376 | + "paddusb %9, %%mm2\n\t" // increase max by diff | ||
377 | // pmaxub mm4, mm5 // now = Max(best,Min(L1,L3) use macro | ||
378 | V_PMAXUB ("%%mm4", "%%mm5") | ||
379 | // pminub mm4, mm2 // now = Min( Max(best, Min(L1,L3), L2 )=L2 clipped | ||
380 | V_PMINUB ("%%mm4", "%%mm2", "%%mm7") | ||
381 | |||
382 | // Blend weave pixel with bob pixel, depending on motion val in mm0 | ||
383 | - "psubusb "MANGLE(MotionThreshold)", %%mm0\n\t"// test Threshold, clear chroma change >>>?? | ||
384 | - "pmullw "MANGLE(MotionSense)", %%mm0\n\t" // mul by user factor, keep low 16 bits | ||
385 | - "movq "MANGLE(QW256)", %%mm7\n\t" | ||
386 | + "psubusb %10, %%mm0\n\t"// test Threshold, clear chroma change >>>?? | ||
387 | + "pmullw %11, %%mm0\n\t" // mul by user factor, keep low 16 bits | ||
388 | + "movq %12, %%mm7\n\t" | ||
389 | #ifdef IS_SSE | ||
390 | "pminsw %%mm7, %%mm0\n\t" // max = 256 | ||
391 | #else | ||
392 | - "paddusw "MANGLE(QW256B)", %%mm0\n\t" // add, may sat at fff.. | ||
393 | - "psubusw "MANGLE(QW256B)", %%mm0\n\t" // now = Min(L1,256) | ||
394 | + "paddusw %13, %%mm0\n\t" // add, may sat at fff.. | ||
395 | + "psubusw %13, %%mm0\n\t" // now = Min(L1,256) | ||
396 | #endif | ||
397 | "psubusw %%mm0, %%mm7\n\t" // so the 2 sum to 256, weighted avg | ||
398 | "movq %%mm4, %%mm2\n\t" // save weave chroma info before trashing | ||
399 | - "pand "MANGLE(YMask)", %%mm4\n\t" // keep only luma from calc'd value | ||
400 | + "pand %14, %%mm4\n\t" // keep only luma from calc'd value | ||
401 | "pmullw %%mm7, %%mm4\n\t" // use more weave for less motion | ||
402 | - "pand "MANGLE(YMask)", %%mm6\n\t" // keep only luma from calc'd value | ||
403 | + "pand %14, %%mm6\n\t" // keep only luma from calc'd value | ||
404 | "pmullw %%mm0, %%mm6\n\t" // use more bob for large motion | ||
405 | "paddusw %%mm6, %%mm4\n\t" // combine | ||
406 | "psrlw $8, %%mm4\n\t" // div by 256 to get weighted avg | ||
407 | |||
408 | // chroma comes from weave pixel | ||
409 | - "pand "MANGLE(UVMask)", %%mm2\n\t" // keep chroma | ||
410 | + "pand %15, %%mm2\n\t" // keep chroma | ||
411 | "por %%mm4, %%mm2\n\t" // and combine | ||
412 | |||
413 | V_MOVNTQ ("(%%"XDI")", "%%mm2") // move in our clipped best, use macro | ||
414 | |||
415 | // bump ptrs and loop | ||
416 | LEAX" 8(%%"XAX"), %%"XAX"\n\t" | ||
417 | - LEAX" 8(%%"XBX"), %%"XBX"\n\t" | ||
418 | LEAX" 8(%%"XDX"), %%"XDX"\n\t" | ||
419 | + ADDX" $8, "asmtemp"\n\t" | ||
420 | LEAX" 8(%%"XDI"), %%"XDI"\n\t" | ||
421 | LEAX" 8(%%"XSI"), %%"XSI"\n\t" | ||
422 | DECX" "asmLoopCtr"\n\t" | ||
423 | "jg 1b\n\t" // loop if not to last line | ||
424 | // note P-III default assumes backward branches taken | ||
425 | "jl 1f\n\t" // done | ||
426 | - MOVX" %%"XAX", %%"XBX"\n\t" // sharpness lookahead 1 byte only, be wrong on 1 | ||
427 | + MOVX" %%"XAX", %%"XDX"\n\t" // sharpness lookahead 1 byte only, be wrong on 1 | ||
428 | "jmp 1b\n\t" | ||
429 | |||
430 | "1:\n\t" | ||
431 | - MOVX" "asmoldbx", %%"XBX"\n\t" | ||
432 | |||
433 | : /* no outputs */ | ||
434 | |||
435 | : "m"(LastAvg), | ||
436 | "m"(L1), | ||
437 | "m"(L3), | ||
438 | - "m"(L2P), | ||
439 | + "m"(temp), | ||
440 | "m"(L2), | ||
441 | "m"(Dest), | ||
442 | "m"(LoopCtr), | ||
443 | - "m"(oldbx) | ||
444 | + "m"(temp), | ||
445 | + "m"(ShiftMask), | ||
446 | + "m"(MaxComb), | ||
447 | + "m"(MotionThreshold), | ||
448 | + "m"(MotionSense), | ||
449 | + "m"(QW256), | ||
450 | + "m"(QW256B), | ||
451 | + "m"(YMask), | ||
452 | + "m"(UVMask) | ||
453 | |||
454 | : XAX, XCX, XDX, XSI, XDI, | ||
455 | #ifdef ARCH_X86 | ||
456 | Index: xine-lib-1.1.1/src/post/deinterlace/plugins/tomsmocomp/SearchLoop0A.inc | ||
457 | =================================================================== | ||
458 | --- xine-lib-1.1.1.orig/src/post/deinterlace/plugins/tomsmocomp/SearchLoop0A.inc | ||
459 | +++ xine-lib-1.1.1/src/post/deinterlace/plugins/tomsmocomp/SearchLoop0A.inc | ||
460 | @@ -7,9 +7,9 @@ | ||
461 | // up by a little, and adjust later | ||
462 | |||
463 | #ifdef IS_SSE2 | ||
464 | - "paddusb "MANGLE(ONES)", %%xmm7\n\t" // bias toward no motion | ||
465 | + "paddusb "_ONES", %%xmm7\n\t" // bias toward no motion | ||
466 | #else | ||
467 | - "paddusb "MANGLE(ONES)", %%mm7\n\t" // bias toward no motion | ||
468 | + "paddusb "_ONES", %%mm7\n\t" // bias toward no motion | ||
469 | #endif | ||
470 | |||
471 | MERGE4PIXavg("(%%"XDI", %%"XCX")", "(%%"XSI", %%"XCX")") // center, in old and new | ||
472 | Index: xine-lib-1.1.1/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc | ||
473 | =================================================================== | ||
474 | --- xine-lib-1.1.1.orig/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc | ||
475 | +++ xine-lib-1.1.1/src/post/deinterlace/plugins/tomsmocomp/SearchLoopBottom.inc | ||
476 | @@ -18,7 +18,7 @@ | ||
477 | // Use the best weave if diffs less than 10 as that | ||
478 | // means the image is still or moving cleanly | ||
479 | // if there is motion we will clip which will catch anything | ||
480 | - "psubusb "MANGLE(FOURS)", %%mm7\n\t" // sets bits to zero if weave diff < 4 | ||
481 | + "psubusb "_FOURS", %%mm7\n\t" // sets bits to zero if weave diff < 4 | ||
482 | "pxor %%mm0, %%mm0\n\t" | ||
483 | "pcmpeqb %%mm0, %%mm7\n\t" // all ff where weave better, else 00 | ||
484 | "pcmpeqb %%mm7, %%mm0\n\t" // all ff where bob better, else 00 | ||
485 | @@ -28,10 +28,10 @@ | ||
486 | #else | ||
487 | // Use the better of bob or weave | ||
488 | // pminub mm4, TENS // the most we care about | ||
489 | - V_PMINUB ("%%mm4", MANGLE(TENS), "%%mm0") // the most we care about | ||
490 | + V_PMINUB ("%%mm4", _TENS, "%%mm0") // the most we care about | ||
491 | |||
492 | "psubusb %%mm4, %%mm7\n\t" // foregive that much from weave est? | ||
493 | - "psubusb "MANGLE(FOURS)", %%mm7\n\t" // bias it a bit toward weave | ||
494 | + "psubusb "_FOURS", %%mm7\n\t" // bias it a bit toward weave | ||
495 | "pxor %%mm0, %%mm0\n\t" | ||
496 | "pcmpeqb %%mm0, %%mm7\n\t" // all ff where weave better, else 00 | ||
497 | "pcmpeqb %%mm7, %%mm0\n\t" // all ff where bob better, else 00 | ||
498 | @@ -42,9 +42,9 @@ | ||
499 | |||
500 | |||
501 | // pminub mm0, Max_Vals // but clip to catch the stray error | ||
502 | -// V_PMINUB ("%%mm0", MANGLE(Max_Vals), "%%mm1") // but clip to catch the stray error | ||
503 | +// V_PMINUB ("%%mm0", _Max_Vals, "%%mm1") // but clip to catch the stray error | ||
504 | // pmaxub mm0, Min_Vals | ||
505 | -// V_PMAXUB ("%%mm0", MANGLE(Min_Vals)) | ||
506 | +// V_PMAXUB ("%%mm0", _Min_Vals) | ||
507 | |||
508 | #endif | ||
509 | |||
510 | @@ -53,28 +53,29 @@ | ||
511 | |||
512 | #ifdef USE_VERTICAL_FILTER | ||
513 | "movq %%mm0, %%mm1\n\t" | ||
514 | - // pavgb mm0, qword ptr["XBX"] | ||
515 | - V_PAVGB ("%%mm0", "(%%"XBX")", "%%mm2", MANGLE(ShiftMask)) | ||
516 | - // movntq qword ptr["XAX"+"XDX"], mm0 | ||
517 | - V_MOVNTQ ("(%"XAX", %%"XDX")", "%%mm0") | ||
518 | - // pavgb mm1, qword ptr["XBX"+"XCX"] | ||
519 | - V_PAVGB ("%%mm1", "(%%"XBX", %%"XCX")", "%%mm2", MANGLE(ShiftMask)) | ||
520 | - "addq "_dst_pitchw", %%"XBX | ||
521 | - // movntq qword ptr["XAX"+"XDX"], mm1 | ||
522 | - V_MOVNTQ ("(%%"XAX", %%"XDX")", "%%mm1") | ||
523 | + // pavgb mm0, qword ptr["XDX"] | ||
524 | + V_PAVGB ("%%mm0", "(%%"XDX")", "%%mm2", _ShiftMask) | ||
525 | + // movntq qword ptr["XAX"+"olddx"], mm0 | ||
526 | + ADDX" "_olddx", %%"XAX"\n\t" | ||
527 | + V_MOVNTQ ("(%%"XAX")", "%%mm0") | ||
528 | + // pavgb mm1, qword ptr["XDX"+"XCX"] | ||
529 | + V_PAVGB ("%%mm1", "(%%"XDX", %%"XCX")", "%%mm2", _ShiftMask) | ||
530 | + "addq "_dst_pitchw", %%"XDX | ||
531 | + // movntq qword ptr["XAX"+"olddx"], mm1 | ||
532 | + V_MOVNTQ ("(%%"XAX")", "%%mm1") | ||
533 | #else | ||
534 | |||
535 | - // movntq qword ptr["XAX"+"XDX"], mm0 | ||
536 | - V_MOVNTQ ("(%%"XAX", %%"XDX")", "%%mm0") | ||
537 | + // movntq qword ptr["XAX"+"olddx"], mm0 | ||
538 | + ADDX" "_olddx", %%"XAX"\n\t" | ||
539 | + V_MOVNTQ ("(%%"XAX")", "%%mm0") | ||
540 | #endif | ||
541 | |||
542 | - LEAX" 8(%%"XDX"), %%"XDX"\n\t" // bump offset pointer | ||
543 | - CMPX" "_Last8", %%"XDX"\n\t" // done with line? | ||
544 | + ADDX" $8, "_olddx"\n\t" // bump offset pointer | ||
545 | + MOVX" "_olddx", %%"XAX"\n\t" | ||
546 | + CMPX" "_Last8", %%"XAX"\n\t" // done with line? | ||
547 | "jb 1b\n\t" // y | ||
548 | #endif | ||
549 | |||
550 | - MOVX" "_oldbx", %%"XBX"\n\t" | ||
551 | - | ||
552 | : /* no outputs */ | ||
553 | |||
554 | : "m"(pBob), | ||
555 | @@ -85,7 +86,17 @@ | ||
556 | "m"(pSrc), | ||
557 | "m"(pSrcP), | ||
558 | "m"(pBobP), | ||
559 | - "m"(oldbx) | ||
560 | + "m"(olddx), | ||
561 | + "m"(UVMask), | ||
562 | + "m"(ShiftMask), | ||
563 | + "m"(FOURS), | ||
564 | + "m"(TENS), | ||
565 | + "m"(Max_Vals), | ||
566 | + "m"(Min_Vals), | ||
567 | + "m"(YMask), | ||
568 | + "m"(Max_Mov), | ||
569 | + "m"(ONES), | ||
570 | + "m"(DiffThres) | ||
571 | |||
572 | : XAX, XCX, XDX, XSI, XDI, | ||
573 | #ifdef ARCH_X86 | ||
574 | Index: xine-lib-1.1.1/src/post/deinterlace/plugins/tomsmocomp/SearchLoopTop.inc | ||
575 | =================================================================== | ||
576 | --- xine-lib-1.1.1.orig/src/post/deinterlace/plugins/tomsmocomp/SearchLoopTop.inc | ||
577 | +++ xine-lib-1.1.1/src/post/deinterlace/plugins/tomsmocomp/SearchLoopTop.inc | ||
578 | @@ -66,7 +66,17 @@ long dst_pitchw = dst_pitch; // local s | ||
579 | #define _pSrc "%5" | ||
580 | #define _pSrcP "%6" | ||
581 | #define _pBobP "%7" | ||
582 | -#define _oldbx "%8" | ||
583 | +#define _olddx "%8" | ||
584 | +#define _UVMask "%9" | ||
585 | +#define _ShiftMask "%10" | ||
586 | +#define _FOURS "%11" | ||
587 | +#define _TENS "%12" | ||
588 | +#define _Max_Vals "%13" | ||
589 | +#define _Min_Vals "%14" | ||
590 | +#define _YMask "%15" | ||
591 | +#define _Max_Mov "%16" | ||
592 | +#define _ONES "%17" | ||
593 | +#define _DiffThres "%18" | ||
594 | #endif | ||
595 | |||
596 | for (y=1; y < FldHeight-1; y++) | ||
597 | @@ -77,75 +87,73 @@ long dst_pitchw = dst_pitch; // local s | ||
598 | // Loop general reg usage | ||
599 | // | ||
600 | // XAX - pBobP, then pDest | ||
601 | - // XBX - pBob | ||
602 | + // XDX - pBob | ||
603 | // XCX - src_pitch2 | ||
604 | - // XDX - current offset | ||
605 | + // _olddx - current offset | ||
606 | // XDI - prev weave pixels, 1 line up | ||
607 | // XSI - next weave pixels, 1 line up | ||
608 | |||
609 | - // Save "XBX" (-fPIC) | ||
610 | - MOVX" %%"XBX", "_oldbx"\n\t" | ||
611 | - | ||
612 | #ifdef IS_SSE2 | ||
613 | |||
614 | // sse2 code deleted for now | ||
615 | |||
616 | #else | ||
617 | // simple bob first 8 bytes | ||
618 | - MOVX" "_pBob", %%"XBX"\n\t" | ||
619 | + MOVX" "_pBob", %%"XDX"\n\t" | ||
620 | MOVX" "_src_pitch2", %%"XCX"\n\t" | ||
621 | |||
622 | #ifdef USE_VERTICAL_FILTER | ||
623 | - "movq (%%"XBX"), %%mm0\n\t" | ||
624 | - "movq (%%"XBX", %%"XCX"), %%mm1\n\t" //, qword ptr["XBX"+"XCX"] | ||
625 | + "movq (%%"XDX"), %%mm0\n\t" | ||
626 | + "movq (%%"XDX", %%"XCX"), %%mm1\n\t" //, qword ptr["XDX"+"XCX"] | ||
627 | "movq %%mm0, %%mm2\n\t" | ||
628 | - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // halfway between | ||
629 | - V_PAVGB ("%%mm0", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 1/4 way | ||
630 | - V_PAVGB ("%%mm1", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 3/4 way | ||
631 | + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // halfway between | ||
632 | + V_PAVGB ("%%mm0", "%%mm2", "%%mm3", _ShiftMask) // 1/4 way | ||
633 | + V_PAVGB ("%%mm1", "%%mm2", "%%mm3", _ShiftMask) // 3/4 way | ||
634 | MOVX" "_pDest", %%"XDI"\n\t" | ||
635 | MOVX" "_dst_pitchw", %%"XAX"\n\t" | ||
636 | V_MOVNTQ ("(%%"XDI")", "%%mm0") | ||
637 | V_MOVNTQ ("(%%"XDI", %%"XAX")", "%%mm1") // qword ptr["XDI"+"XAX"], mm1 | ||
638 | |||
639 | // simple bob last 8 bytes | ||
640 | - MOVX" "_Last8", %%"XDX"\n\t" | ||
641 | - LEAX" (%%"XBX", %%"XDX"), %%"XSI"\n\t" // ["XBX"+"XDX"] | ||
642 | + MOVX" "_Last8", %%"XSI"\n\t" | ||
643 | + ADDX" %%"XDX", %%"XSI"\n\t" // ["XDX"+"olddx"] | ||
644 | "movq (%%"XSI"), %%mm0\n\t" | ||
645 | "movq (%%"XSI", %%"XCX"), %%mm1\n\t" // qword ptr["XSI"+"XCX"] | ||
646 | "movq %%mm0, %%mm2\n\t" | ||
647 | - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // halfway between | ||
648 | - V_PAVGB ("%%mm0", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 1/4 way | ||
649 | - V_PAVGB ("%%mm1", "%%mm2", "%%mm3", MANGLE(ShiftMask)) // 3/4 way | ||
650 | - ADDX" %%"XDX", %%"XDI"\n\t" // last 8 bytes of dest | ||
651 | + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // halfway between | ||
652 | + V_PAVGB ("%%mm0", "%%mm2", "%%mm3", _ShiftMask) // 1/4 way | ||
653 | + V_PAVGB ("%%mm1", "%%mm2", "%%mm3", _ShiftMask) // 3/4 way | ||
654 | + ADDX" "_olddx", %%"XDI"\n\t" // last 8 bytes of dest | ||
655 | V_MOVNTQ ("%%"XDI"", "%%mm0") | ||
656 | V_MOVNTQ ("(%%"XDI", %%"XAX")", "%%mm1") // qword ptr["XDI"+"XAX"], mm1) | ||
657 | |||
658 | #else | ||
659 | - "movq (%%"XBX"), %%mm0\n\t" | ||
660 | - // pavgb mm0, qword ptr["XBX"+"XCX"] | ||
661 | - V_PAVGB ("%%mm0", "(%%"XBX", %%"XCX")", "%%mm2", MANGLE(ShiftMask)) // qword ptr["XBX"+"XCX"], mm2, ShiftMask) | ||
662 | + "movq (%%"XDX"), %%mm0\n\t" | ||
663 | + // pavgb mm0, qword ptr["XDX"+"XCX"] | ||
664 | + V_PAVGB ("%%mm0", "(%%"XDX", %%"XCX")", "%%mm2", _ShiftMask) // qword ptr["XDX"+"XCX"], mm2, ShiftMask) | ||
665 | MOVX" "_pDest", %%"XDI"\n\t" | ||
666 | V_MOVNTQ ("(%%"XDI")", "%%mm0") | ||
667 | |||
668 | // simple bob last 8 bytes | ||
669 | - MOVX" "_Last8", %%"XDX"\n\t" | ||
670 | - LEAX" (%%"XBX", %%"XDX"), %%"XSI"\n\t" //"XSI", ["XBX"+"XDX"] | ||
671 | + MOVX" "_Last8", %%"XSI"\n\t" | ||
672 | + ADDX" %%"XDX", %%"XSI"\n\t" //"XSI", ["XDX"+"olddx"] | ||
673 | "movq (%%"XSI"), %%mm0\n\t" | ||
674 | // pavgb mm0, qword ptr["XSI"+"XCX"] | ||
675 | - V_PAVGB ("%%mm0", "(%%"XSI", %%"XCX")", "%%mm2", MANGLE(ShiftMask)) // qword ptr["XSI"+"XCX"], mm2, ShiftMask) | ||
676 | - V_MOVNTQ ("(%%"XDI", %%"XDX")", "%%mm0") // qword ptr["XDI"+"XDX"], mm0) | ||
677 | + V_PAVGB ("%%mm0", "(%%"XSI", %%"XCX")", "%%mm2", _ShiftMask) // qword ptr["XSI"+"XCX"], mm2, ShiftMask) | ||
678 | + ADDX" "_olddx", %%"XDI"\n\t" | ||
679 | + V_MOVNTQ ("(%%"XDI")", "%%mm0") // qword ptr["XDI"+"olddx"], mm0) | ||
680 | #endif | ||
681 | // now loop and get the middle qwords | ||
682 | MOVX" "_pSrc", %%"XSI"\n\t" | ||
683 | MOVX" "_pSrcP", %%"XDI"\n\t" | ||
684 | - MOVX" $8, %%"XDX"\n\t" // curr offset longo all lines | ||
685 | + MOVX" $8, "_olddx"\n\t" // curr offset longo all lines | ||
686 | |||
687 | "1:\n\t" | ||
688 | MOVX" "_pBobP", %%"XAX"\n\t" | ||
689 | ADDX" $8, %%"XDI"\n\t" | ||
690 | ADDX" $8, %%"XSI"\n\t" | ||
691 | - ADDX" $8, %%"XBX"\n\t" | ||
692 | - ADDX" %%"XDX", %%"XAX"\n\t" | ||
693 | + ADDX" $8, %%"XDX"\n\t" | ||
694 | + ADDX" "_olddx", %%"XAX"\n\t" | ||
695 | |||
696 | #ifdef USE_STRANGE_BOB | ||
697 | #include "StrangeBob.inc" | ||
698 | Index: xine-lib-1.1.1/src/post/deinterlace/plugins/tomsmocomp/StrangeBob.inc | ||
699 | =================================================================== | ||
700 | --- xine-lib-1.1.1.orig/src/post/deinterlace/plugins/tomsmocomp/StrangeBob.inc | ||
701 | +++ xine-lib-1.1.1/src/post/deinterlace/plugins/tomsmocomp/StrangeBob.inc | ||
702 | @@ -31,22 +31,22 @@ | ||
703 | "pxor %%mm6, %%mm6\n\t" | ||
704 | "pxor %%mm7, %%mm7\n\t" | ||
705 | |||
706 | - "movq -2(%%"XBX"), %%mm0\n\t" // value a from top left | ||
707 | - "movq -4(%%"XBX", %%"XCX"), %%mm1\n\t" // value m from bottom right | ||
708 | + "movq -2(%%"XDX"), %%mm0\n\t" // value a from top left | ||
709 | + "movq -4(%%"XDX", %%"XCX"), %%mm1\n\t" // value m from bottom right | ||
710 | |||
711 | "movq %%mm0, %%mm3\n\t" | ||
712 | "psubusb %%mm1, %%mm3\n\t" | ||
713 | "psubusb %%mm0, %%mm1\n\t" | ||
714 | "por %%mm1, %%mm3\n\t" // abs(a,m) | ||
715 | |||
716 | - "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(a,m) > Thres else 0 | ||
717 | + "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(a,m) > Thres else 0 | ||
718 | "pxor %%mm4, %%mm4\n\t" | ||
719 | "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(a,m) < Thres, else 00 | ||
720 | "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(a,m) > Thres, else 00 | ||
721 | |||
722 | |||
723 | - "movq -4(%%"XBX"), %%mm0\n\t" // value j | ||
724 | - "movq 4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n | ||
725 | + "movq -4(%%"XDX"), %%mm0\n\t" // value j | ||
726 | + "movq 4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n | ||
727 | "movq %%mm0, %%mm2\n\t" | ||
728 | "pavgb %%mm1, %%mm2\n\t" // avg(j,n) | ||
729 | "movq %%mm0, %%mm3\n\t" | ||
730 | @@ -55,7 +55,7 @@ | ||
731 | "por %%mm1, %%mm0\n\t" // abs(j,n) | ||
732 | |||
733 | "movq %%mm0, %%mm1\n\t" | ||
734 | - "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(j,n) > Thres else 0 | ||
735 | + "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(j,n) > Thres else 0 | ||
736 | "pxor %%mm3, %%mm3\n\t" | ||
737 | "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(j,n) < Thres, else 00 | ||
738 | |||
739 | @@ -75,31 +75,31 @@ | ||
740 | "por %%mm0, %%mm7\n\t" | ||
741 | |||
742 | // k & m | ||
743 | - "movq 2(%%"XBX"), %%mm0\n\t" // value c from top left | ||
744 | - "movq 4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n from bottom right | ||
745 | + "movq 2(%%"XDX"), %%mm0\n\t" // value c from top left | ||
746 | + "movq 4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n from bottom right | ||
747 | |||
748 | "movq %%mm0, %%mm3\n\t" | ||
749 | "psubusb %%mm1, %%mm3\n\t" | ||
750 | "psubusb %%mm0, %%mm1\n\t" | ||
751 | "por %%mm1, %%mm3\n\t" // abs(c,n) | ||
752 | |||
753 | - "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(c,n) > Thres else 0 | ||
754 | + "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(c,n) > Thres else 0 | ||
755 | "pxor %%mm4, %%mm4\n\t" | ||
756 | "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(c,n) < Thres, else 00 | ||
757 | "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(c,n) > Thres, else 00 | ||
758 | |||
759 | |||
760 | - "movq 4(%%"XBX"), %%mm0\n\t" // value k | ||
761 | - "movq -4(%%"XBX", %%"XCX"), %%mm1\n\t" // value m | ||
762 | + "movq 4(%%"XDX"), %%mm0\n\t" // value k | ||
763 | + "movq -4(%%"XDX", %%"XCX"), %%mm1\n\t" // value m | ||
764 | "movq %%mm0, %%mm2\n\t" | ||
765 | - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(k,m) | ||
766 | + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(k,m) | ||
767 | "movq %%mm0, %%mm3\n\t" | ||
768 | "psubusb %%mm1, %%mm0\n\t" | ||
769 | "psubusb %%mm3, %%mm1\n\t" | ||
770 | "por %%mm1, %%mm0\n\t" // abs(k,m) | ||
771 | |||
772 | "movq %%mm0, %%mm1\n\t" | ||
773 | - "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(k,m) > Thres else 0 | ||
774 | + "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(k,m) > Thres else 0 | ||
775 | "pxor %%mm3, %%mm3\n\t" | ||
776 | "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(k,m) < Thres, else 00 | ||
777 | |||
778 | @@ -120,30 +120,30 @@ | ||
779 | |||
780 | |||
781 | // c & d | ||
782 | - "movq (%%"XBX"), %%mm0\n\t" // value b from top left | ||
783 | - "movq 2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f from bottom right | ||
784 | + "movq (%%"XDX"), %%mm0\n\t" // value b from top left | ||
785 | + "movq 2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f from bottom right | ||
786 | |||
787 | "movq %%mm0, %%mm3\n\t" | ||
788 | "psubusb %%mm1, %%mm3\n\t" | ||
789 | "psubusb %%mm0, %%mm1\n\t" | ||
790 | "por %%mm1, %%mm3\n\t" // abs(b,f) | ||
791 | |||
792 | - "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(b,f) > Thres else 0 | ||
793 | + "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(b,f) > Thres else 0 | ||
794 | "pxor %%mm4, %%mm4\n\t" | ||
795 | "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(b,f) < Thres, else 00 | ||
796 | "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(b,f) > Thres, else 00 | ||
797 | |||
798 | - "movq 2(%%"XBX"), %%mm0\n\t" // value c | ||
799 | - "movq -2(%%"XBX", %%"XCX"), %%mm1\n\t" // value d | ||
800 | + "movq 2(%%"XDX"), %%mm0\n\t" // value c | ||
801 | + "movq -2(%%"XDX", %%"XCX"), %%mm1\n\t" // value d | ||
802 | "movq %%mm0, %%mm2\n\t" | ||
803 | - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(c,d) | ||
804 | + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(c,d) | ||
805 | "movq %%mm0, %%mm3\n\t" | ||
806 | "psubusb %%mm1, %%mm0\n\t" | ||
807 | "psubusb %%mm3, %%mm1\n\t" | ||
808 | "por %%mm1, %%mm0\n\t" // abs(c,d) | ||
809 | |||
810 | "movq %%mm0, %%mm1\n\t" | ||
811 | - "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(c,d) > Thres else 0 | ||
812 | + "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(c,d) > Thres else 0 | ||
813 | "pxor %%mm3, %%mm3\n\t" | ||
814 | "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(c,d) < Thres, else 00 | ||
815 | |||
816 | @@ -163,30 +163,30 @@ | ||
817 | "por %%mm0, %%mm7\n\t" | ||
818 | |||
819 | // a & f | ||
820 | - "movq (%%"XBX"), %%mm0\n\t" // value b from top left | ||
821 | - "movq -2(%%"XBX", %%"XCX"), %%mm1\n\t" // value d from bottom right | ||
822 | + "movq (%%"XDX"), %%mm0\n\t" // value b from top left | ||
823 | + "movq -2(%%"XDX", %%"XCX"), %%mm1\n\t" // value d from bottom right | ||
824 | |||
825 | "movq %%mm0, %%mm3\n\t" | ||
826 | "psubusb %%mm1, %%mm3\n\t" | ||
827 | "psubusb %%mm0, %%mm1\n\t" | ||
828 | "por %%mm1, %%mm3\n\t" // abs(b,d) | ||
829 | |||
830 | - "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // nonzero where abs(b,d) > Thres else 0 | ||
831 | + "psubusb "_DiffThres", %%mm3\n\t" // nonzero where abs(b,d) > Thres else 0 | ||
832 | "pxor %%mm4, %%mm4\n\t" | ||
833 | "pcmpeqb %%mm4, %%mm3\n\t" // now ff where abs(b,d) < Thres, else 00 | ||
834 | "pcmpeqb %%mm3, %%mm4\n\t" // here ff where abs(b,d) > Thres, else 00 | ||
835 | |||
836 | - "movq -2(%%"XBX"), %%mm0\n\t" // value a | ||
837 | - "movq 2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f | ||
838 | + "movq -2(%%"XDX"), %%mm0\n\t" // value a | ||
839 | + "movq 2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f | ||
840 | "movq %%mm0, %%mm2\n\t" | ||
841 | - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(a,f) | ||
842 | + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(a,f) | ||
843 | "movq %%mm0, %%mm3\n\t" | ||
844 | "psubusb %%mm1, %%mm0\n\t" | ||
845 | "psubusb %%mm3, %%mm1\n\t" | ||
846 | "por %%mm1, %%mm0\n\t" // abs(a,f) | ||
847 | |||
848 | "movq %%mm0, %%mm1\n\t" | ||
849 | - "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(a,f) > Thres else 0 | ||
850 | + "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(a,f) > Thres else 0 | ||
851 | "pxor %%mm3, %%mm3\n\t" | ||
852 | "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(a,f) < Thres, else 00 | ||
853 | |||
854 | @@ -205,22 +205,22 @@ | ||
855 | "por %%mm2, %%mm6\n\t" | ||
856 | "por %%mm0, %%mm7\n\t" | ||
857 | |||
858 | - "pand "MANGLE(YMask)", %%mm5\n\t" // mask out chroma from here | ||
859 | - "pand "MANGLE(YMask)", %%mm6\n\t" // mask out chroma from here | ||
860 | - "pand "MANGLE(YMask)", %%mm7\n\t" // mask out chroma from here | ||
861 | + "pand "_YMask", %%mm5\n\t" // mask out chroma from here | ||
862 | + "pand "_YMask", %%mm6\n\t" // mask out chroma from here | ||
863 | + "pand "_YMask", %%mm7\n\t" // mask out chroma from here | ||
864 | |||
865 | // b,e | ||
866 | - "movq (%%"XBX"), %%mm0\n\t" // value b from top | ||
867 | - "movq (%%"XBX", %%"XCX"), %%mm1\n\t" // value e from bottom | ||
868 | + "movq (%%"XDX"), %%mm0\n\t" // value b from top | ||
869 | + "movq (%%"XDX", %%"XCX"), %%mm1\n\t" // value e from bottom | ||
870 | "movq %%mm0, %%mm2\n\t" | ||
871 | - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(b,e) | ||
872 | + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(b,e) | ||
873 | "movq %%mm0, %%mm3\n\t" | ||
874 | "psubusb %%mm1, %%mm0\n\t" | ||
875 | "psubusb %%mm3, %%mm1\n\t" | ||
876 | "por %%mm1, %%mm0\n\t" // abs(b,e) | ||
877 | |||
878 | "movq %%mm0, %%mm1\n\t" | ||
879 | - "psubusb "MANGLE(DiffThres)", %%mm1\n\t" // nonzero where abs(b,e) > Thres else 0 | ||
880 | + "psubusb "_DiffThres", %%mm1\n\t" // nonzero where abs(b,e) > Thres else 0 | ||
881 | "pxor %%mm3, %%mm3\n\t" | ||
882 | "pcmpeqb %%mm3, %%mm1\n\t" // now ff where abs(b,e) < Thres, else 00 | ||
883 | |||
884 | @@ -238,8 +238,8 @@ | ||
885 | "por %%mm0, %%mm7\n\t" | ||
886 | |||
887 | // bob in any leftovers | ||
888 | - "movq (%%"XBX"), %%mm0\n\t" // value b from top | ||
889 | - "movq (%%"XBX", %%"XCX"), %%mm1\n\t" // value e from bottom | ||
890 | + "movq (%%"XDX"), %%mm0\n\t" // value b from top | ||
891 | + "movq (%%"XDX", %%"XCX"), %%mm1\n\t" // value e from bottom | ||
892 | |||
893 | |||
894 | // We will also calc here the max/min values to later limit comb | ||
895 | @@ -271,7 +271,7 @@ | ||
896 | "por %%mm2, %%mm3\n\t" // abs diff | ||
897 | // pmaxub %%mm3, %%mm4 // top or bottom pixel moved most | ||
898 | V_PMAXUB ("%%mm3", "%%mm4") // top or bottom pixel moved most | ||
899 | - "psubusb "MANGLE(DiffThres)", %%mm3\n\t" // moved more than allowed? or goes to 0? | ||
900 | + "psubusb "_DiffThres", %%mm3\n\t" // moved more than allowed? or goes to 0? | ||
901 | "pxor %%mm4, %%mm4\n\t" | ||
902 | "pcmpeqb %%mm4, %%mm3\n\t" // now ff where low motion, else high motion | ||
903 | |||
904 | @@ -283,19 +283,19 @@ | ||
905 | V_PMAXUB ("%%mm6", "%%mm2") | ||
906 | |||
907 | "psubusb %%mm3, %%mm2\n\t" // maybe decrease it to 0000.. if no surround motion | ||
908 | -// "movq %%mm2, "MANGLE(Min_Vals)"\n\t" | ||
909 | +// "movq %%mm2, "_Min_Vals"\n\t" | ||
910 | |||
911 | "movq %%mm0, %%mm2\n\t" | ||
912 | V_PMAXUB ("%%mm2", "%%mm1") | ||
913 | // pminub %%mm6, %%mm2 // clip our current results so far to be below this | ||
914 | V_PMINUB ("%%mm6", "%%mm2", "%%mm4") | ||
915 | "paddusb %%mm3, %%mm2\n\t" // maybe increase it to ffffff if no surround motion | ||
916 | -// "movq %%mm2, "MANGLE(Max_Vals)"\n\t" | ||
917 | +// "movq %%mm2, "_Max_Vals"\n\t" | ||
918 | #endif | ||
919 | |||
920 | "movq %%mm0, %%mm2\n\t" | ||
921 | // pavgb %%mm2, %%mm1 // avg(b,e) | ||
922 | - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(b,e) | ||
923 | + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(b,e) | ||
924 | |||
925 | "movq %%mm0, %%mm3\n\t" | ||
926 | "psubusb %%mm1, %%mm3\n\t" | ||
927 | Index: xine-lib-1.1.1/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc | ||
928 | =================================================================== | ||
929 | --- xine-lib-1.1.1.orig/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc | ||
930 | +++ xine-lib-1.1.1/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc | ||
931 | @@ -33,8 +33,8 @@ static const int64_t __attribute__((__us | ||
932 | static const int64_t __attribute__((__used__)) FOURS = 0x0404040404040404ull; | ||
933 | static const int64_t __attribute__((__used__)) ONES = 0x0101010101010101ull; | ||
934 | static const int64_t __attribute__((__used__)) ShiftMask = 0xfefffefffefffeffull; | ||
935 | -//static int64_t Min_Vals = 0x0000000000000000ull; | ||
936 | -//static int64_t Max_Vals = 0x0000000000000000ull; | ||
937 | +static int64_t Min_Vals = 0x0000000000000000ull; | ||
938 | +static int64_t Max_Vals = 0x0000000000000000ull; | ||
939 | #endif | ||
940 | |||
941 | #ifndef TopFirst | ||
942 | @@ -69,7 +69,7 @@ static void FUNCT_NAME(uint8_t *output, | ||
943 | int rowsize; | ||
944 | int FldHeight; | ||
945 | int stride = (width*2); | ||
946 | - long oldbx; | ||
947 | + long olddx; | ||
948 | |||
949 | |||
950 | src_pitch = stride*2; | ||
951 | Index: xine-lib-1.1.1/src/post/deinterlace/plugins/tomsmocomp/WierdBob.inc | ||
952 | =================================================================== | ||
953 | --- xine-lib-1.1.1.orig/src/post/deinterlace/plugins/tomsmocomp/WierdBob.inc | ||
954 | +++ xine-lib-1.1.1/src/post/deinterlace/plugins/tomsmocomp/WierdBob.inc | ||
955 | @@ -14,22 +14,22 @@ | ||
956 | // selected for the smallest of abs(a,f), abs(c,d), or abs(b,e), etc. | ||
957 | |||
958 | // a,f | ||
959 | - "movq -2(%%"XBX"), %%mm0\n\t" // value a from top left | ||
960 | - "movq 2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f from bottom right | ||
961 | + "movq -2(%%"XDX"), %%mm0\n\t" // value a from top left | ||
962 | + "movq 2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f from bottom right | ||
963 | "movq %%mm0, %%mm6\n\t" | ||
964 | // pavgb %%mm6, %%mm1 // avg(a,f), also best so far | ||
965 | - V_PAVGB ("%%mm6", "%%mm1", "%%mm7", MANGLE(ShiftMask)) // avg(a,f), also best so far | ||
966 | + V_PAVGB ("%%mm6", "%%mm1", "%%mm7", _ShiftMask) // avg(a,f), also best so far | ||
967 | "movq %%mm0, %%mm7\n\t" | ||
968 | "psubusb %%mm1, %%mm7\n\t" | ||
969 | "psubusb %%mm0, %%mm1\n\t" | ||
970 | "por %%mm1, %%mm7\n\t" // abs diff, also best so far | ||
971 | |||
972 | // c,d | ||
973 | - "movq 2(%%"XBX"), %%mm0\n\t" // value a from top left | ||
974 | - "movq -2(%%"XBX", %%"XCX"), %%mm1\n\t" // value f from bottom right | ||
975 | + "movq 2(%%"XDX"), %%mm0\n\t" // value a from top left | ||
976 | + "movq -2(%%"XDX", %%"XCX"), %%mm1\n\t" // value f from bottom right | ||
977 | "movq %%mm0, %%mm2\n\t" | ||
978 | // pavgb %%mm2, %%mm1 // avg(c,d) | ||
979 | - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(c,d) | ||
980 | + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(c,d) | ||
981 | "movq %%mm0, %%mm3\n\t" | ||
982 | "psubusb %%mm1, %%mm3\n\t" | ||
983 | "psubusb %%mm0, %%mm1\n\t" | ||
984 | @@ -49,15 +49,15 @@ | ||
985 | |||
986 | "por %%mm2, %%mm6\n\t" // and merge new & old vals keeping best | ||
987 | "por %%mm1, %%mm7\n\t" | ||
988 | - "por "MANGLE(UVMask)", %%mm7\n\t" // but we know chroma is worthless so far | ||
989 | - "pand "MANGLE(YMask)", %%mm5\n\t" // mask out chroma from here also | ||
990 | + "por "_UVMask", %%mm7\n\t" // but we know chroma is worthless so far | ||
991 | + "pand "_YMask", %%mm5\n\t" // mask out chroma from here also | ||
992 | |||
993 | // j,n | ||
994 | - "movq -4(%%"XBX"), %%mm0\n\t" // value j from top left | ||
995 | - "movq 4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n from bottom right | ||
996 | + "movq -4(%%"XDX"), %%mm0\n\t" // value j from top left | ||
997 | + "movq 4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n from bottom right | ||
998 | "movq %%mm0, %%mm2\n\t" | ||
999 | // pavgb %%mm2, %%mm1 // avg(j,n) | ||
1000 | - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(j,n) | ||
1001 | + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(j,n) | ||
1002 | "movq %%mm0, %%mm3\n\t" | ||
1003 | "psubusb %%mm1, %%mm3\n\t" | ||
1004 | "psubusb %%mm0, %%mm1\n\t" | ||
1005 | @@ -79,11 +79,11 @@ | ||
1006 | "por %%mm1, %%mm7\n\t" // " | ||
1007 | |||
1008 | // k, m | ||
1009 | - "movq 4(%%"XBX"), %%mm0\n\t" // value k from top right | ||
1010 | - "movq -4(%%"XBX", %%"XCX"), %%mm1\n\t" // value n from bottom left | ||
1011 | + "movq 4(%%"XDX"), %%mm0\n\t" // value k from top right | ||
1012 | + "movq -4(%%"XDX", %%"XCX"), %%mm1\n\t" // value n from bottom left | ||
1013 | "movq %%mm0, %%mm4\n\t" | ||
1014 | // pavgb %%mm4, %%mm1 // avg(k,m) | ||
1015 | - V_PAVGB ("%%mm4", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(k,m) | ||
1016 | + V_PAVGB ("%%mm4", "%%mm1", "%%mm3", _ShiftMask) // avg(k,m) | ||
1017 | |||
1018 | "movq %%mm0, %%mm3\n\t" | ||
1019 | "psubusb %%mm1, %%mm3\n\t" | ||
1020 | @@ -108,8 +108,8 @@ | ||
1021 | "por %%mm1, %%mm7\n\t" // " | ||
1022 | |||
1023 | // b,e | ||
1024 | - "movq (%%"XBX"), %%mm0\n\t" // value b from top | ||
1025 | - "movq (%%"XBX", %%"XCX"), %%mm1\n\t" // value e from bottom | ||
1026 | + "movq (%%"XDX"), %%mm0\n\t" // value b from top | ||
1027 | + "movq (%%"XDX", %%"XCX"), %%mm1\n\t" // value e from bottom | ||
1028 | |||
1029 | // We will also calc here the max/min values to later limit comb | ||
1030 | // so the max excursion will not exceed the Max_Comb constant | ||
1031 | @@ -140,7 +140,7 @@ | ||
1032 | "por %%mm2, %%mm3\n\t" // abs diff | ||
1033 | // pmaxub %%mm3, %%mm4 // top or bottom pixel moved most | ||
1034 | V_PMAXUB ("%%mm3", "%%mm4") // top or bottom pixel moved most | ||
1035 | - "psubusb "MANGLE(Max_Mov)", %%mm3\n\t" // moved more than allowed? or goes to 0? | ||
1036 | + "psubusb "_Max_Mov", %%mm3\n\t" // moved more than allowed? or goes to 0? | ||
1037 | "pxor %%mm4, %%mm4\n\t" | ||
1038 | "pcmpeqb %%mm4, %%mm3\n\t" // now ff where low motion, else high motion | ||
1039 | |||
1040 | @@ -152,19 +152,19 @@ | ||
1041 | V_PMAXUB ("%%mm6", "%%mm2") | ||
1042 | |||
1043 | "psubusb %%mm3, %%mm2\n\t" // maybe decrease it to 0000.. if no surround motion | ||
1044 | -// "movq %%mm2, "MANGLE(Min_Vals)"\n\t" | ||
1045 | +// "movq %%mm2, "_Min_Vals"\n\t" | ||
1046 | |||
1047 | "movq %%mm0, %%mm2\n\t" | ||
1048 | V_PMAXUB ("%%mm2", "%%mm1") | ||
1049 | // pminub %%mm6, %%mm2 // clip our current results so far to be below this | ||
1050 | V_PMINUB ("%%mm6", "%%mm2", "%%mm4") | ||
1051 | "paddusb %%mm3, %%mm2\n\t" // maybe increase it to ffffff if no surround motion | ||
1052 | -// "movq %%mm2, "MANGLE(Max_Vals)"\n\t" | ||
1053 | +// "movq %%mm2, "_Max_Vals"\n\t" | ||
1054 | #endif | ||
1055 | |||
1056 | "movq %%mm0, %%mm2\n\t" | ||
1057 | // pavgb %%mm2, %%mm1 // avg(b,e) | ||
1058 | - V_PAVGB ("%%mm2", "%%mm1", "%%mm3", MANGLE(ShiftMask)) // avg(b,e) | ||
1059 | + V_PAVGB ("%%mm2", "%%mm1", "%%mm3", _ShiftMask) // avg(b,e) | ||
1060 | |||
1061 | "movq %%mm0, %%mm3\n\t" | ||
1062 | "psubusb %%mm1, %%mm3\n\t" | ||
1063 | Index: xine-lib-1.1.1/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h | ||
1064 | =================================================================== | ||
1065 | --- xine-lib-1.1.1.orig/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h | ||
1066 | +++ xine-lib-1.1.1/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h | ||
1067 | @@ -114,7 +114,7 @@ | ||
1068 | "por %%xmm0, %%xmm5\n\t" /* and merge new & old vals */ \ | ||
1069 | "por %%xmm2, %%xmm7\n\t" | ||
1070 | |||
1071 | -#define RESET_CHROMA "por "MANGLE(UVMask)", %%xmm7\n\t" | ||
1072 | +#define RESET_CHROMA "por "_UVMask", %%xmm7\n\t" | ||
1073 | |||
1074 | #else // ifdef IS_SSE2 | ||
1075 | |||
1076 | @@ -126,7 +126,7 @@ | ||
1077 | "psubusb %%mm1, %%mm2\n\t" \ | ||
1078 | "psubusb %%mm0, %%mm3\n\t" \ | ||
1079 | "por %%mm3, %%mm2\n\t" \ | ||
1080 | - V_PAVGB ("%%mm0", "%%mm1", "%%mm3", MANGLE(ShiftMask)) /* avg of 2 pixels */ \ | ||
1081 | + V_PAVGB ("%%mm0", "%%mm1", "%%mm3", _ShiftMask) /* avg of 2 pixels */ \ | ||
1082 | "movq %%mm2, %%mm3\n\t" /* another copy of our our weights */ \ | ||
1083 | "pxor %%mm1, %%mm1\n\t" \ | ||
1084 | "psubusb %%mm7, %%mm3\n\t" /* nonzero where old weights lower, else 0 */ \ | ||
1085 | @@ -144,14 +144,14 @@ | ||
1086 | "movq "PADDR2A", %%mm1\n\t" /* our pixel2 value */ \ | ||
1087 | "movq "PADDR1B", %%mm2\n\t" /* our 4 pixels */ \ | ||
1088 | "movq "PADDR2B", %%mm3\n\t" /* our pixel2 value */ \ | ||
1089 | - V_PAVGB("%%mm0", "%%mm2", "%%mm2", MANGLE(ShiftMask)) \ | ||
1090 | - V_PAVGB("%%mm1", "%%mm3", "%%mm3", MANGLE(ShiftMask)) \ | ||
1091 | + V_PAVGB("%%mm0", "%%mm2", "%%mm2", _ShiftMask) \ | ||
1092 | + V_PAVGB("%%mm1", "%%mm3", "%%mm3", _ShiftMask) \ | ||
1093 | "movq %%mm0, %%mm2\n\t" /* another copy of our pixel1 value */ \ | ||
1094 | "movq %%mm1, %%mm3\n\t" /* another copy of our pixel1 value */ \ | ||
1095 | "psubusb %%mm1, %%mm2\n\t" \ | ||
1096 | "psubusb %%mm0, %%mm3\n\t" \ | ||
1097 | "por %%mm3, %%mm2\n\t" \ | ||
1098 | - V_PAVGB("%%mm0", "%%mm1", "%%mm3", MANGLE(ShiftMask)) /* avg of 2 pixels */ \ | ||
1099 | + V_PAVGB("%%mm0", "%%mm1", "%%mm3", _ShiftMask) /* avg of 2 pixels */ \ | ||
1100 | "movq %%mm2, %%mm3\n\t" /* another copy of our our weights */ \ | ||
1101 | "pxor %%mm1, %%mm1\n\t" \ | ||
1102 | "psubusb %%mm7, %%mm3\n\t" /* nonzero where old weights lower, else 0 */ \ | ||
1103 | @@ -164,7 +164,7 @@ | ||
1104 | "por %%mm0, %%mm5\n\t" /* and merge new & old vals */ \ | ||
1105 | "por %%mm2, %%mm7\n\t" | ||
1106 | |||
1107 | -#define RESET_CHROMA "por "MANGLE(UVMask)", %%mm7\n\t" | ||
1108 | +#define RESET_CHROMA "por "_UVMask", %%mm7\n\t" | ||
1109 | |||
1110 | #endif | ||
1111 |