diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2006-10-12 14:49:19 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2006-10-12 14:49:19 +0000 |
commit | 851ded8918c977d8160c6617b69604f758cabf50 (patch) | |
tree | 054c0f0a8b9dfdaa7887edd0792bbe2daffad035 /libavcodec/cabac.h | |
parent | 1f6049f5151a43ebb15f4cb09befb30a41fcad3e (diff) | |
download | ffmpeg-851ded8918c977d8160c6617b69604f758cabf50.tar.gz |
prevent "mb level" get_cabac() calls from being inlined (3% faster decode_mb_cabac() on P3)
Originally committed as revision 6674 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/cabac.h')
-rw-r--r-- | libavcodec/cabac.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libavcodec/cabac.h b/libavcodec/cabac.h index c922126989..afd1ebf37f 100644 --- a/libavcodec/cabac.h +++ b/libavcodec/cabac.h @@ -359,7 +359,7 @@ static inline void renorm_cabac_decoder_once(CABACContext *c){ refill(c); } -static int get_cabac(CABACContext *c, uint8_t * const state){ +static int always_inline get_cabac_inline(CABACContext *c, uint8_t * const state){ //FIXME gcc generates duplicate load/stores for c->low and c->range #ifdef ARCH_X86 int bit; @@ -563,6 +563,14 @@ static int get_cabac(CABACContext *c, uint8_t * const state){ return bit; } +static int __attribute((noinline)) get_cabac_noinline(CABACContext *c, uint8_t * const state){ + return get_cabac_inline(c,state); +} + +static int get_cabac(CABACContext *c, uint8_t * const state){ + return get_cabac_inline(c,state); +} + static int get_cabac_bypass(CABACContext *c){ c->low += c->low; |