Mercurial > libavcodec.hg
diff common.h @ 706:e65798d228ea libavcodec
idct permutation cleanup, idct can be selected per context now
fixing some threadunsafe code
author | michaelni |
---|---|
date | Sun, 29 Sep 2002 22:44:22 +0000 |
parents | 85b071dfc7e3 |
children | 1aa1cbb8c3c1 |
line wrap: on
line diff
--- a/common.h Sun Sep 29 15:14:28 2002 +0000 +++ b/common.h Sun Sep 29 22:44:22 2002 +0000 @@ -932,6 +932,22 @@ return (s[0]) + (s[1]<<8) + (s[2]<<16) + (s[3]<<24); } + +#ifdef ARCH_X86 +#define MASK_ABS(mask, level)\ + asm volatile(\ + "cdq \n\t"\ + "xorl %1, %0 \n\t"\ + "subl %1, %0 \n\t"\ + : "+a" (level), "=&d" (mask)\ + ); +#else +#define MASK_ABS(mask, level)\ + mask= level>>31;\ + level= (level^mask)-mask; +#endif + + #if __CPU__ >= 686 && !defined(RUNTIME_CPUDETECT) #define COPY3_IF_LT(x,y,a,b,c,d)\ asm volatile (\