Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/speex.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libspeex/fixed_bfin.h')
-rw-r--r--libspeex/fixed_bfin.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/libspeex/fixed_bfin.h b/libspeex/fixed_bfin.h
index aa26f6a..9eb21e3 100644
--- a/libspeex/fixed_bfin.h
+++ b/libspeex/fixed_bfin.h
@@ -36,6 +36,8 @@
#ifndef FIXED_BFIN_H
#define FIXED_BFIN_H
+#include "bfin.h"
+
#undef PDIV32_16
static inline spx_word16_t PDIV32_16(spx_word32_t a, spx_word16_t b)
{
@@ -57,7 +59,7 @@ static inline spx_word16_t PDIV32_16(spx_word32_t a, spx_word16_t b)
"%0 = R0;\n\t"
: "=m" (res)
: "m" (a), "m" (bb)
- : "P0", "R0", "R1", "cc");
+ : "P0", "R0", "R1", "ASTAT" BFIN_HWLOOP0_REGS);
return res;
}
@@ -84,7 +86,7 @@ static inline spx_word16_t DIV32_16(spx_word32_t a, spx_word16_t b)
"%0 = R0;\n\t"
: "=m" (res)
: "m" (a), "m" (bb)
- : "P0", "R0", "R1", "cc");
+ : "P0", "R0", "R1", "ASTAT" BFIN_HWLOOP0_REGS);
return res;
}
@@ -98,6 +100,7 @@ static inline spx_word16_t MAX16(spx_word16_t a, spx_word16_t b)
"%0 = MAX(%1,%2);"
: "=d" (res)
: "%d" (a), "d" (b)
+ : "ASTAT"
);
return res;
}
@@ -113,7 +116,7 @@ static inline spx_word32_t MULT16_32_Q15(spx_word16_t a, spx_word32_t b)
"%0 = (A1 += %2.L*%1.H) ;\n\t"
: "=&W" (res), "=&d" (b)
: "d" (a), "1" (b)
- : "A1"
+ : "A1", "ASTAT"
);
return res;
}
@@ -130,7 +133,7 @@ static inline spx_word32_t MAC16_32_Q15(spx_word32_t c, spx_word16_t a, spx_word
"%0 = %0 + %4;\n\t"
: "=&W" (res), "=&d" (b)
: "d" (a), "1" (b), "d" (c)
- : "A1"
+ : "A1", "ASTAT"
);
return res;
}
@@ -147,7 +150,7 @@ static inline spx_word32_t MULT16_32_Q14(spx_word16_t a, spx_word32_t b)
"%0 = (A1 += %1.L*%2.H);\n\t"
: "=W" (res), "=d" (a), "=d" (b)
: "1" (a), "2" (b)
- : "A1"
+ : "A1", "ASTAT"
);
return res;
}
@@ -165,7 +168,7 @@ static inline spx_word32_t MAC16_32_Q14(spx_word32_t c, spx_word16_t a, spx_word
"%0 = %0 + %4;\n\t"
: "=&W" (res), "=&d" (b)
: "d" (a), "1" (b), "d" (c)
- : "A1"
+ : "A1", "ASTAT"
);
return res;
}