[FFmpeg-cvslog] ARM: add "cc" clobbers to inline asm where needed

Mans Rullgard git at videolan.org
Sun May 29 03:46:45 CEST 2011


ffmpeg | branch: master | Mans Rullgard <mans at mansr.com> | Fri May 27 21:59:46 2011 +0100| [5726ec171bf7cb833f8445d9a294f23fc047a549] | committer: Mans Rullgard

ARM: add "cc" clobbers to inline asm where needed

Signed-off-by: Mans Rullgard <mans at mansr.com>

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

 libavcodec/arm/aac.h        |    2 +-
 libavcodec/arm/mathops.h    |    3 ++-
 libavcodec/arm/vp56_arith.h |    6 ++++--
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/libavcodec/arm/aac.h b/libavcodec/arm/aac.h
index e907c9e..8355e9c 100644
--- a/libavcodec/arm/aac.h
+++ b/libavcodec/arm/aac.h
@@ -128,7 +128,7 @@ static inline float *VMUL4S(float *dst, const float *v, unsigned idx,
                       : "=&r"(v0), "=&r"(v1), "=&r"(v2), "=&r"(v3), "+r"(dst),
                         "+r"(sign), "=r"(nz)
                       : "r"(v), "r"(idx), "r"(scale)
-                      : "d0", "d1", "d2", "d3", "d4", "d5");
+                      : "cc", "d0", "d1", "d2", "d3", "d4", "d5");
     return dst;
 }
 
diff --git a/libavcodec/arm/mathops.h b/libavcodec/arm/mathops.h
index 1fce8e3..858e73d 100644
--- a/libavcodec/arm/mathops.h
+++ b/libavcodec/arm/mathops.h
@@ -107,7 +107,8 @@ static inline av_const int mid_pred(int a, int b, int c)
         "cmp   %0, %1  \n\t"
         "movgt %0, %1  \n\t"
         : "=&r"(m), "+r"(a)
-        : "r"(b), "r"(c));
+        : "r"(b), "r"(c)
+        : "cc");
     return m;
 }
 
diff --git a/libavcodec/arm/vp56_arith.h b/libavcodec/arm/vp56_arith.h
index 0591d61..8785a77 100644
--- a/libavcodec/arm/vp56_arith.h
+++ b/libavcodec/arm/vp56_arith.h
@@ -48,7 +48,8 @@ static inline int vp56_rac_get_prob_armv6(VP56RangeCoder *c, int pr)
                       : "=&r"(c->high), "=&r"(c->code_word), "=&r"(bit),
                         "+&r"(c->bits), "+&r"(c->buffer)
                       : "r"(high), "r"(pr), "r"(c->end - 1),
-                        "0"(shift), "1"(code_word));
+                        "0"(shift), "1"(code_word)
+                      : "cc");
 
     return bit;
 }
@@ -74,7 +75,8 @@ static inline int vp56_rac_get_prob_branchy_armv6(VP56RangeCoder *c, int pr)
                       "lsl     %2,  %0,  #16          \n"
                       : "=&r"(low), "+&r"(code_word), "=&r"(tmp),
                         "+&r"(c->bits), "+&r"(c->buffer)
-                      : "r"(high), "r"(pr), "r"(c->end - 1), "0"(shift));
+                      : "r"(high), "r"(pr), "r"(c->end - 1), "0"(shift)
+                      : "cc");
 
     if (code_word >= tmp) {
         c->high      = high - low;



More information about the ffmpeg-cvslog mailing list