mips64: mark hi/lo registers clobbered in MAC64/MLS64 macros
authorMans Rullgard <mans@mansr.com>
Wed, 17 Oct 2012 18:45:54 +0000 (19:45 +0100)
committerMans Rullgard <mans@mansr.com>
Wed, 17 Oct 2012 21:37:12 +0000 (22:37 +0100)
Signed-off-by: Mans Rullgard <mans@mansr.com>
libavcodec/mips/mathops.h

index 573745b..dd80f68 100644 (file)
@@ -57,7 +57,8 @@ static inline av_const int64_t MAC64(int64_t d, int a, int b)
     __asm__ ("dmult %2, %3     \n\t"
              "mflo  %1         \n\t"
              "daddu %0, %0, %1 \n\t"
     __asm__ ("dmult %2, %3     \n\t"
              "mflo  %1         \n\t"
              "daddu %0, %0, %1 \n\t"
-             : "+r"(d), "=&r"(m) : "r"(a), "r"(b));
+             : "+r"(d), "=&r"(m) : "r"(a), "r"(b)
+             : "hi", "lo");
     return d;
 }
 #define MAC64(d, a, b) ((d) = MAC64(d, a, b))
     return d;
 }
 #define MAC64(d, a, b) ((d) = MAC64(d, a, b))
@@ -68,7 +69,8 @@ static inline av_const int64_t MLS64(int64_t d, int a, int b)
     __asm__ ("dmult %2, %3     \n\t"
              "mflo  %1         \n\t"
              "dsubu %0, %0, %1 \n\t"
     __asm__ ("dmult %2, %3     \n\t"
              "mflo  %1         \n\t"
              "dsubu %0, %0, %1 \n\t"
-             : "+r"(d), "=&r"(m) : "r"(a), "r"(b));
+             : "+r"(d), "=&r"(m) : "r"(a), "r"(b)
+             : "hi", "lo");
     return d;
 }
 #define MLS64(d, a, b) ((d) = MLS64(d, a, b))
     return d;
 }
 #define MLS64(d, a, b) ((d) = MLS64(d, a, b))