Mercurial > libavcodec.hg
diff cabac.h @ 4008:b636f3d59283 libavcodec
prevent "mb level" get_cabac() calls from being inlined (3% faster decode_mb_cabac() on P3)
author | michael |
---|---|
date | Thu, 12 Oct 2006 14:49:19 +0000 |
parents | ec426fa57dfe |
children | f8c649ac09dd |
line wrap: on
line diff
--- a/cabac.h Thu Oct 12 12:27:02 2006 +0000 +++ b/cabac.h Thu Oct 12 14:49:19 2006 +0000 @@ -359,7 +359,7 @@ 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 @@ 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;