Mercurial > libavcodec.hg
diff i386/dsputil_mmx.c @ 387:b8f3affeb8e1 libavcodec
shared lib support (req by kabi) ...
author | michaelni |
---|---|
date | Fri, 17 May 2002 13:01:01 +0000 |
parents | f49629bab18d |
children | bf164fce2c14 |
line wrap: on
line diff
--- a/i386/dsputil_mmx.c Fri May 17 01:04:14 2002 +0000 +++ b/i386/dsputil_mmx.c Fri May 17 13:01:01 2002 +0000 @@ -50,9 +50,9 @@ void ff_mmxext_idct(DCTELEM *block); /* pixel operations */ -static const unsigned long long int mm_bone __attribute__ ((aligned(8))) = 0x0101010101010101LL; -static const unsigned long long int mm_wone __attribute__ ((aligned(8))) = 0x0001000100010001LL; -static const unsigned long long int mm_wtwo __attribute__ ((aligned(8))) = 0x0002000200020002LL; +static const uint64_t mm_bone __attribute__ ((aligned(8))) = 0x0101010101010101ULL; +static const uint64_t mm_wone __attribute__ ((aligned(8))) = 0x0001000100010001ULL; +static const uint64_t mm_wtwo __attribute__ ((aligned(8))) = 0x0002000200020002ULL; //static const unsigned short mm_wone[4] __attribute__ ((aligned(8))) = { 0x1, 0x1, 0x1, 0x1 }; //static const unsigned short mm_wtwo[4] __attribute__ ((aligned(8))) = { 0x2, 0x2, 0x2, 0x2 }; @@ -62,6 +62,7 @@ #ifndef PIC #define MOVQ_WONE(regd) __asm __volatile ("movq %0, %%" #regd " \n\t" ::"m"(mm_wone)) #define MOVQ_WTWO(regd) __asm __volatile ("movq %0, %%" #regd " \n\t" ::"m"(mm_wtwo)) +#define MOVQ_BONE(regd) "movq "MANGLE(mm_bone)", "#regd" \n\t" #else // for shared library it's better to use this way for accessing constants // pcmpeqd -> -1 @@ -75,8 +76,14 @@ "pcmpeqd %%" #regd ", %%" #regd " \n\t" \ "psrlw $15, %%" #regd " \n\t" \ "psllw $1, %%" #regd ::) + +#define MOVQ_BONE(regd) \ + "pcmpeqd " #regd ", " #regd " \n\t" \ + "psrlw $15, " #regd " \n\t"\ + "packuswb " #regd ", " #regd " \n\t" #endif + /***********************************/ /* 3Dnow specific */