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
This commit is contained in:
		
							parent
							
								
									48026fbef6
								
							
						
					
					
						commit
						7e14b8082d
					
				| @ -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" | ||||
|  | ||||
| @ -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)\ | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user