Mercurial > mplayer.hg
comparison libvo/osd_template.c @ 28335:31287e75b5d8
HAVE_3DNOW --> HAVE_AMD3DNOW
author | diego |
---|---|
date | Mon, 26 Jan 2009 09:29:53 +0000 |
parents | 25337a2147e7 |
children | 7681eab10aea |
comparison
equal
deleted
inserted
replaced
28334:9e4c389f670f | 28335:31287e75b5d8 |
---|---|
5 #undef PREFETCH | 5 #undef PREFETCH |
6 #undef EMMS | 6 #undef EMMS |
7 #undef PREFETCHW | 7 #undef PREFETCHW |
8 #undef PAVGB | 8 #undef PAVGB |
9 | 9 |
10 #if HAVE_3DNOW | 10 #if HAVE_AMD3DNOW |
11 #define PREFETCH "prefetch" | 11 #define PREFETCH "prefetch" |
12 #define PREFETCHW "prefetchw" | 12 #define PREFETCHW "prefetchw" |
13 #define PAVGB "pavgusb" | 13 #define PAVGB "pavgusb" |
14 #elif HAVE_MMX2 | 14 #elif HAVE_MMX2 |
15 #define PREFETCH "prefetchnta" | 15 #define PREFETCH "prefetchnta" |
18 #else | 18 #else |
19 #define PREFETCH " # nop" | 19 #define PREFETCH " # nop" |
20 #define PREFETCHW " # nop" | 20 #define PREFETCHW " # nop" |
21 #endif | 21 #endif |
22 | 22 |
23 #if HAVE_3DNOW | 23 #if HAVE_AMD3DNOW |
24 /* On K6 femms is faster of emms. On K7 femms is directly mapped on emms. */ | 24 /* On K6 femms is faster of emms. On K7 femms is directly mapped on emms. */ |
25 #define EMMS "femms" | 25 #define EMMS "femms" |
26 #else | 26 #else |
27 #define EMMS "emms" | 27 #define EMMS "emms" |
28 #endif | 28 #endif |
305 int y; | 305 int y; |
306 #ifdef WORDS_BIGENDIAN | 306 #ifdef WORDS_BIGENDIAN |
307 dstbase++; | 307 dstbase++; |
308 #endif | 308 #endif |
309 #if HAVE_MMX | 309 #if HAVE_MMX |
310 #if HAVE_3DNOW | 310 #if HAVE_AMD3DNOW |
311 __asm__ volatile( | 311 __asm__ volatile( |
312 "pxor %%mm7, %%mm7\n\t" | 312 "pxor %%mm7, %%mm7\n\t" |
313 "pcmpeqb %%mm6, %%mm6\n\t" // F..F | 313 "pcmpeqb %%mm6, %%mm6\n\t" // F..F |
314 ::); | 314 ::); |
315 #else /* HAVE_3DNOW */ | 315 #else /* HAVE_AMD3DNOW */ |
316 __asm__ volatile( | 316 __asm__ volatile( |
317 "pxor %%mm7, %%mm7\n\t" | 317 "pxor %%mm7, %%mm7\n\t" |
318 "pcmpeqb %%mm5, %%mm5\n\t" // F..F | 318 "pcmpeqb %%mm5, %%mm5\n\t" // F..F |
319 "movq %%mm5, %%mm4\n\t" | 319 "movq %%mm5, %%mm4\n\t" |
320 "psllw $8, %%mm5\n\t" //FF00FF00FF00 | 320 "psllw $8, %%mm5\n\t" //FF00FF00FF00 |
321 "psrlw $8, %%mm4\n\t" //00FF00FF00FF | 321 "psrlw $8, %%mm4\n\t" //00FF00FF00FF |
322 ::); | 322 ::); |
323 #endif /* HAVE_3DNOW */ | 323 #endif /* HAVE_AMD3DNOW */ |
324 #endif /* HAVE_MMX */ | 324 #endif /* HAVE_MMX */ |
325 for(y=0;y<h;y++){ | 325 for(y=0;y<h;y++){ |
326 register int x; | 326 register int x; |
327 #if ARCH_X86 && (!ARCH_X86_64 || HAVE_MMX) | 327 #if ARCH_X86 && (!ARCH_X86_64 || HAVE_MMX) |
328 #if HAVE_MMX | 328 #if HAVE_MMX |
329 #if HAVE_3DNOW | 329 #if HAVE_AMD3DNOW |
330 __asm__ volatile( | 330 __asm__ volatile( |
331 PREFETCHW" %0\n\t" | 331 PREFETCHW" %0\n\t" |
332 PREFETCH" %1\n\t" | 332 PREFETCH" %1\n\t" |
333 PREFETCH" %2\n\t" | 333 PREFETCH" %2\n\t" |
334 ::"m"(*dstbase),"m"(*srca),"m"(*src):"memory"); | 334 ::"m"(*dstbase),"m"(*srca),"m"(*src):"memory"); |