[FFmpeg-cvslog] get_cabac_inline_x86: workaround clang bug with disabled optimizations

Michael Niedermayer git at videolan.org
Tue Sep 18 00:54:47 CEST 2012


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Thu Sep 13 22:24:47 2012 +0200| [66bdc58550bcfe4d3e7dbe32ab8672865bd899aa] | committer: Michael Niedermayer

get_cabac_inline_x86: workaround clang bug with disabled optimizations

gcc produces binary identical output relative to before this change

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=66bdc58550bcfe4d3e7dbe32ab8672865bd899aa
---

 libavcodec/x86/cabac.h |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavcodec/x86/cabac.h b/libavcodec/x86/cabac.h
index dbac83f..35f4ca7 100644
--- a/libavcodec/x86/cabac.h
+++ b/libavcodec/x86/cabac.h
@@ -174,11 +174,12 @@ static av_always_inline int get_cabac_inline_x86(CABACContext *c,
                              AV_STRINGIFY(H264_LPS_RANGE_OFFSET),
                              AV_STRINGIFY(H264_MLPS_STATE_OFFSET),
                              "%8")
-        : "=&r"(bit), "+&r"(c->low), "+&r"(c->range), "=&q"(tmp)
+        : "=&r"(bit), "=&r"(c->low), "=&r"(c->range), "=&q"(tmp)
         : "r"(state), "r"(c),
           "i"(offsetof(CABACContext, bytestream)),
           "i"(offsetof(CABACContext, bytestream_end))
           TABLES_ARG
+          ,"1"(c->low), "2"(c->range)
         : "%"REG_c, "memory"
     );
     return bit & 1;



More information about the ffmpeg-cvslog mailing list