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;