comparison bitstream.h @ 8031:eebc7209c47f libavcodec

Convert asm keyword into __asm__. Neither the asm() nor the __asm__() keyword is part of the C99 standard, but while GCC accepts the former in C89 syntax, it is not accepted in C99 unless GNU extensions are turned on (with -fasm). The latter form is accepted in any syntax as an extension (without requiring further command-line options). Sun Studio C99 compiler also does not accept asm() while accepting __asm__(), albeit reporting warnings that it's not valid C99 syntax.
author flameeyes
date Thu, 16 Oct 2008 13:34:09 +0000
parents c4a4495715dd
children 9281a8a9387a
comparison
equal deleted inserted replaced
8030:a512ac8fa540 8031:eebc7209c47f
53 extern const uint8_t ff_reverse[256]; 53 extern const uint8_t ff_reverse[256];
54 54
55 #if defined(ARCH_X86) 55 #if defined(ARCH_X86)
56 // avoid +32 for shift optimization (gcc should do that ...) 56 // avoid +32 for shift optimization (gcc should do that ...)
57 static inline int32_t NEG_SSR32( int32_t a, int8_t s){ 57 static inline int32_t NEG_SSR32( int32_t a, int8_t s){
58 asm ("sarl %1, %0\n\t" 58 __asm__ ("sarl %1, %0\n\t"
59 : "+r" (a) 59 : "+r" (a)
60 : "ic" ((uint8_t)(-s)) 60 : "ic" ((uint8_t)(-s))
61 ); 61 );
62 return a; 62 return a;
63 } 63 }
64 static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ 64 static inline uint32_t NEG_USR32(uint32_t a, int8_t s){
65 asm ("shrl %1, %0\n\t" 65 __asm__ ("shrl %1, %0\n\t"
66 : "+r" (a) 66 : "+r" (a)
67 : "ic" ((uint8_t)(-s)) 67 : "ic" ((uint8_t)(-s))
68 ); 68 );
69 return a; 69 return a;
70 } 70 }
246 #ifdef ALT_BITSTREAM_WRITER 246 #ifdef ALT_BITSTREAM_WRITER
247 static inline void put_bits(PutBitContext *s, int n, unsigned int value) 247 static inline void put_bits(PutBitContext *s, int n, unsigned int value)
248 { 248 {
249 # ifdef ALIGNED_BITSTREAM_WRITER 249 # ifdef ALIGNED_BITSTREAM_WRITER
250 # if defined(ARCH_X86) 250 # if defined(ARCH_X86)
251 asm volatile( 251 __asm__ volatile(
252 "movl %0, %%ecx \n\t" 252 "movl %0, %%ecx \n\t"
253 "xorl %%eax, %%eax \n\t" 253 "xorl %%eax, %%eax \n\t"
254 "shrdl %%cl, %1, %%eax \n\t" 254 "shrdl %%cl, %1, %%eax \n\t"
255 "shrl %%cl, %1 \n\t" 255 "shrl %%cl, %1 \n\t"
256 "movl %0, %%ecx \n\t" 256 "movl %0, %%ecx \n\t"
277 index+= n; 277 index+= n;
278 s->index= index; 278 s->index= index;
279 # endif 279 # endif
280 # else //ALIGNED_BITSTREAM_WRITER 280 # else //ALIGNED_BITSTREAM_WRITER
281 # if defined(ARCH_X86) 281 # if defined(ARCH_X86)
282 asm volatile( 282 __asm__ volatile(
283 "movl $7, %%ecx \n\t" 283 "movl $7, %%ecx \n\t"
284 "andl %0, %%ecx \n\t" 284 "andl %0, %%ecx \n\t"
285 "addl %3, %%ecx \n\t" 285 "addl %3, %%ecx \n\t"
286 "negl %%ecx \n\t" 286 "negl %%ecx \n\t"
287 "shll %%cl, %1 \n\t" 287 "shll %%cl, %1 \n\t"
554 name##_bit_count-= 32;\ 554 name##_bit_count-= 32;\
555 }\ 555 }\
556 556
557 #if defined(ARCH_X86) 557 #if defined(ARCH_X86)
558 # define SKIP_CACHE(name, gb, num)\ 558 # define SKIP_CACHE(name, gb, num)\
559 asm(\ 559 __asm__(\
560 "shldl %2, %1, %0 \n\t"\ 560 "shldl %2, %1, %0 \n\t"\
561 "shll %2, %1 \n\t"\ 561 "shll %2, %1 \n\t"\
562 : "+r" (name##_cache0), "+r" (name##_cache1)\ 562 : "+r" (name##_cache0), "+r" (name##_cache1)\
563 : "Ic" ((uint8_t)(num))\ 563 : "Ic" ((uint8_t)(num))\
564 ); 564 );