Mercurial > libavcodec.hg
comparison cabac.h @ 4283:d6f83e2f8804 libavcodec
rename always_inline to av_always_inline and move to common.h
author | mru |
---|---|
date | Fri, 08 Dec 2006 00:35:08 +0000 |
parents | 92f773cfebf5 |
children | 88967250d718 |
comparison
equal
deleted
inserted
replaced
4282:9d64f6eacc7b | 4283:d6f83e2f8804 |
---|---|
361 #endif | 361 #endif |
362 if(!(c->low & CABAC_MASK)) | 362 if(!(c->low & CABAC_MASK)) |
363 refill(c); | 363 refill(c); |
364 } | 364 } |
365 | 365 |
366 static int always_inline get_cabac_inline(CABACContext *c, uint8_t * const state){ | 366 static int av_always_inline get_cabac_inline(CABACContext *c, uint8_t * const state){ |
367 //FIXME gcc generates duplicate load/stores for c->low and c->range | 367 //FIXME gcc generates duplicate load/stores for c->low and c->range |
368 #define LOW "0" | 368 #define LOW "0" |
369 #define RANGE "4" | 369 #define RANGE "4" |
370 #ifdef ARCH_X86_64 | 370 #ifdef ARCH_X86_64 |
371 #define BYTESTART "16" | 371 #define BYTESTART "16" |
629 } | 629 } |
630 #endif | 630 #endif |
631 } | 631 } |
632 | 632 |
633 | 633 |
634 static always_inline int get_cabac_bypass_sign(CABACContext *c, int val){ | 634 static av_always_inline int get_cabac_bypass_sign(CABACContext *c, int val){ |
635 #if defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__)) | 635 #if defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__)) |
636 asm volatile( | 636 asm volatile( |
637 "movl "RANGE "(%1), %%ebx \n\t" | 637 "movl "RANGE "(%1), %%ebx \n\t" |
638 "movl "LOW "(%1), %%eax \n\t" | 638 "movl "LOW "(%1), %%eax \n\t" |
639 "shl $17, %%ebx \n\t" | 639 "shl $17, %%ebx \n\t" |