Mercurial > libpostproc.hg
comparison postprocess.c @ 36:b4fc1bd8525f libpostproc
Use common define for x86_32 and x86_64.
author | diego |
---|---|
date | Wed, 01 Nov 2006 18:34:40 +0000 |
parents | 48b25c548895 |
children | 63d07317cd7a |
comparison
equal
deleted
inserted
replaced
35:cd4aa05e3b5d | 36:b4fc1bd8525f |
---|---|
103 #define OPTIONS_ARRAY_SIZE 10 | 103 #define OPTIONS_ARRAY_SIZE 10 |
104 #define BLOCK_SIZE 8 | 104 #define BLOCK_SIZE 8 |
105 #define TEMP_STRIDE 8 | 105 #define TEMP_STRIDE 8 |
106 //#define NUM_BLOCKS_AT_ONCE 16 //not used yet | 106 //#define NUM_BLOCKS_AT_ONCE 16 //not used yet |
107 | 107 |
108 #if defined(ARCH_X86) || defined(ARCH_X86_64) | 108 #if defined(ARCH_X86) |
109 static uint64_t __attribute__((aligned(8))) attribute_used w05= 0x0005000500050005LL; | 109 static uint64_t __attribute__((aligned(8))) attribute_used w05= 0x0005000500050005LL; |
110 static uint64_t __attribute__((aligned(8))) attribute_used w04= 0x0004000400040004LL; | 110 static uint64_t __attribute__((aligned(8))) attribute_used w04= 0x0004000400040004LL; |
111 static uint64_t __attribute__((aligned(8))) attribute_used w20= 0x0020002000200020LL; | 111 static uint64_t __attribute__((aligned(8))) attribute_used w20= 0x0020002000200020LL; |
112 static uint64_t __attribute__((aligned(8))) attribute_used b00= 0x0000000000000000LL; | 112 static uint64_t __attribute__((aligned(8))) attribute_used b00= 0x0000000000000000LL; |
113 static uint64_t __attribute__((aligned(8))) attribute_used b01= 0x0101010101010101LL; | 113 static uint64_t __attribute__((aligned(8))) attribute_used b01= 0x0101010101010101LL; |
154 "ac", "ha:a:128:7,va:a,dering:a", | 154 "ac", "ha:a:128:7,va:a,dering:a", |
155 NULL //End Marker | 155 NULL //End Marker |
156 }; | 156 }; |
157 | 157 |
158 | 158 |
159 #if defined(ARCH_X86) || defined(ARCH_X86_64) | 159 #if defined(ARCH_X86) |
160 static inline void prefetchnta(void *p) | 160 static inline void prefetchnta(void *p) |
161 { | 161 { |
162 asm volatile( "prefetchnta (%0)\n\t" | 162 asm volatile( "prefetchnta (%0)\n\t" |
163 : : "r" (p) | 163 : : "r" (p) |
164 ); | 164 ); |
579 #ifdef HAVE_ALTIVEC | 579 #ifdef HAVE_ALTIVEC |
580 #define COMPILE_ALTIVEC | 580 #define COMPILE_ALTIVEC |
581 #endif //HAVE_ALTIVEC | 581 #endif //HAVE_ALTIVEC |
582 #endif //ARCH_POWERPC | 582 #endif //ARCH_POWERPC |
583 | 583 |
584 #if defined(ARCH_X86) || defined(ARCH_X86_64) | 584 #if defined(ARCH_X86) |
585 | 585 |
586 #if (defined (HAVE_MMX) && !defined (HAVE_3DNOW) && !defined (HAVE_MMX2)) || defined (RUNTIME_CPUDETECT) | 586 #if (defined (HAVE_MMX) && !defined (HAVE_3DNOW) && !defined (HAVE_MMX2)) || defined (RUNTIME_CPUDETECT) |
587 #define COMPILE_MMX | 587 #define COMPILE_MMX |
588 #endif | 588 #endif |
589 | 589 |
592 #endif | 592 #endif |
593 | 593 |
594 #if (defined (HAVE_3DNOW) && !defined (HAVE_MMX2)) || defined (RUNTIME_CPUDETECT) | 594 #if (defined (HAVE_3DNOW) && !defined (HAVE_MMX2)) || defined (RUNTIME_CPUDETECT) |
595 #define COMPILE_3DNOW | 595 #define COMPILE_3DNOW |
596 #endif | 596 #endif |
597 #endif /* defined(ARCH_X86) || defined(ARCH_X86_64) */ | 597 #endif /* defined(ARCH_X86) */ |
598 | 598 |
599 #undef HAVE_MMX | 599 #undef HAVE_MMX |
600 #undef HAVE_MMX2 | 600 #undef HAVE_MMX2 |
601 #undef HAVE_3DNOW | 601 #undef HAVE_3DNOW |
602 #undef HAVE_ALTIVEC | 602 #undef HAVE_ALTIVEC |
660 | 660 |
661 // useing ifs here as they are faster than function pointers allthough the | 661 // useing ifs here as they are faster than function pointers allthough the |
662 // difference wouldnt be messureable here but its much better because | 662 // difference wouldnt be messureable here but its much better because |
663 // someone might exchange the cpu whithout restarting mplayer ;) | 663 // someone might exchange the cpu whithout restarting mplayer ;) |
664 #ifdef RUNTIME_CPUDETECT | 664 #ifdef RUNTIME_CPUDETECT |
665 #if defined(ARCH_X86) || defined(ARCH_X86_64) | 665 #if defined(ARCH_X86) |
666 // ordered per speed fasterst first | 666 // ordered per speed fasterst first |
667 if(c->cpuCaps & PP_CPU_CAPS_MMX2) | 667 if(c->cpuCaps & PP_CPU_CAPS_MMX2) |
668 postProcess_MMX2(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c); | 668 postProcess_MMX2(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c); |
669 else if(c->cpuCaps & PP_CPU_CAPS_3DNOW) | 669 else if(c->cpuCaps & PP_CPU_CAPS_3DNOW) |
670 postProcess_3DNow(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c); | 670 postProcess_3DNow(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c); |