ARM: add "cc" clobbers to inline asm where needed
authorMans Rullgard <mans@mansr.com>
Fri, 27 May 2011 20:59:46 +0000 (21:59 +0100)
committerMans Rullgard <mans@mansr.com>
Sat, 28 May 2011 14:00:17 +0000 (15:00 +0100)
Signed-off-by: Mans Rullgard <mans@mansr.com>
libavcodec/arm/aac.h
libavcodec/arm/mathops.h
libavcodec/arm/vp56_arith.h

index e907c9e..8355e9c 100644 (file)
@@ -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;
 }
 
index 1fce8e3..858e73d 100644 (file)
@@ -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;
 }
 
index 0591d61..8785a77 100644 (file)
@@ -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;