Use intel compliant CDQ instead of CLTD in inline asm.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Matt Oliver 2014-03-30 12:34:49 +11:00 committed by Michael Niedermayer
parent 6d9bdd9d8b
commit 0f2588d7e5
2 changed files with 3 additions and 3 deletions

View File

@ -219,7 +219,7 @@ static av_always_inline int get_cabac_bypass_sign_x86(CABACContext *c, int val)
"shl $17, %k1 \n\t" "shl $17, %k1 \n\t"
"add %%eax, %%eax \n\t" "add %%eax, %%eax \n\t"
"sub %k1, %%eax \n\t" "sub %k1, %%eax \n\t"
"cltd \n\t" "cdq \n\t"
"and %%edx, %k1 \n\t" "and %%edx, %k1 \n\t"
"add %k1, %%eax \n\t" "add %k1, %%eax \n\t"
"xor %%edx, %%ecx \n\t" "xor %%edx, %%ecx \n\t"
@ -266,7 +266,7 @@ static av_always_inline int get_cabac_bypass_x86(CABACContext *c)
"shl $17, %k1 \n\t" "shl $17, %k1 \n\t"
"add %%eax, %%eax \n\t" "add %%eax, %%eax \n\t"
"sub %k1, %%eax \n\t" "sub %k1, %%eax \n\t"
"cltd \n\t" "cdq \n\t"
"and %%edx, %k1 \n\t" "and %%edx, %k1 \n\t"
"add %k1, %%eax \n\t" "add %k1, %%eax \n\t"
"inc %%edx \n\t" "inc %%edx \n\t"

View File

@ -100,7 +100,7 @@ __asm__ volatile(\
#endif /* HAVE_I686 */ #endif /* HAVE_I686 */
#define MASK_ABS(mask, level) \ #define MASK_ABS(mask, level) \
__asm__ ("cltd \n\t" \ __asm__ ("cdq \n\t" \
"xorl %1, %0 \n\t" \ "xorl %1, %0 \n\t" \
"subl %1, %0 \n\t" \ "subl %1, %0 \n\t" \
: "+a"(level), "=&d"(mask)) : "+a"(level), "=&d"(mask))