summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2008-02-28 17:01:35 +0000
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2008-02-28 17:01:35 +0000
commit7e14b8082d16816151bdecce8ad1c2bbbd003d55 (patch)
treeab78adc613cfb30afe169cb33ec28a477cf6f6f4
parent48026fbef68edeaf4b8053ed551f80122a1d3af4 (diff)
Use cltd instead of cdq asm mnemonic, ICC and gcc support both, but
SunStudio 12 only supports the former. Originally committed as revision 12275 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/cabac.h6
-rw-r--r--libavutil/internal.h2
2 files changed, 4 insertions, 4 deletions
diff --git a/libavcodec/cabac.h b/libavcodec/cabac.h
index 65e3a02dfc..6d5a6f1708 100644
--- a/libavcodec/cabac.h
+++ b/libavcodec/cabac.h
@@ -327,7 +327,7 @@ static inline void renorm_cabac_decoder_once(CABACContext *c){
//P3:665 athlon:517
asm(
"lea -0x100(%0), %%eax \n\t"
- "cdq \n\t"
+ "cltd \n\t"
"mov %0, %%eax \n\t"
"and %%edx, %0 \n\t"
"and %1, %%edx \n\t"
@@ -599,7 +599,7 @@ static int get_cabac_bypass(CABACContext *c){
"shl $17, %%ebx \n\t"
"add %%eax, %%eax \n\t"
"sub %%ebx, %%eax \n\t"
- "cdq \n\t"
+ "cltd \n\t"
"and %%edx, %%ebx \n\t"
"add %%ebx, %%eax \n\t"
"test %%ax, %%ax \n\t"
@@ -646,7 +646,7 @@ static av_always_inline int get_cabac_bypass_sign(CABACContext *c, int val){
"shl $17, %%ebx \n\t"
"add %%eax, %%eax \n\t"
"sub %%ebx, %%eax \n\t"
- "cdq \n\t"
+ "cltd \n\t"
"and %%edx, %%ebx \n\t"
"add %%ebx, %%eax \n\t"
"xor %%edx, %%ecx \n\t"
diff --git a/libavutil/internal.h b/libavutil/internal.h
index c4c151d8f7..749a85c450 100644
--- a/libavutil/internal.h
+++ b/libavutil/internal.h
@@ -205,7 +205,7 @@ static inline unsigned int ff_sqrt(unsigned int a)
#if defined(ARCH_X86)
#define MASK_ABS(mask, level)\
asm volatile(\
- "cdq \n\t"\
+ "cltd \n\t"\
"xorl %1, %0 \n\t"\
"subl %1, %0 \n\t"\
: "+a" (level), "=&d" (mask)\