avcodec/cabac: force get_cabac to be not inlined
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 5 Dec 2013 00:41:10 +0000 (01:41 +0100)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Mon, 9 Dec 2013 09:40:08 +0000 (10:40 +0100)
works around bug in gccs inline asm register assignment
Fixes Ticket3177

gcc from 4.4 to 4.6 is affected at least, no non affected gccs known
clang seems not affected

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 0538b29ae8002c44f27bae8a1a6fc6e646998be5)

libavcodec/cabac.c

index 14ef30a..ba59dab 100644 (file)
@@ -305,7 +305,7 @@ STOP_TIMER("get_cabac_bypass")
 
     for(i=0; i<SIZE; i++){
 START_TIMER
-        if( (r[i]&1) != get_cabac(&c, state) )
+        if( (r[i]&1) != get_cabac_noinline(&c, state) )
             av_log(NULL, AV_LOG_ERROR, "CABAC failure at %d\n", i);
 STOP_TIMER("get_cabac")
     }