[FFmpeg-devel] [PATCH 4/5] ARM: SDIVMOD for gcc that does the right thing
Mans Rullgard
mans
Mon Apr 12 00:05:53 CEST 2010
---
libavcodec/arm/mathops.h | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/libavcodec/arm/mathops.h b/libavcodec/arm/mathops.h
index 2244fa1..7b7a54e 100644
--- a/libavcodec/arm/mathops.h
+++ b/libavcodec/arm/mathops.h
@@ -93,6 +93,16 @@ static inline av_const int MUL16(int ra, int rb)
#endif
+#define SDIVMOD(q, r, n, d) do { \
+ register int r0 __asm__ ("r0") = (n); \
+ register int r1 __asm__ ("r1") = (d); \
+ __asm__ volatile ("bl __aeabi_idivmod \n\t" \
+ : "+&r"(r0), "+&r"(r1) \
+ :: "r2", "r3", "r12", "lr"); \
+ (q) = r0; \
+ (r) = r1; \
+ } while (0)
+
#define mid_pred mid_pred
static inline av_const int mid_pred(int a, int b, int c)
{
--
1.7.0.4
More information about the ffmpeg-devel
mailing list