ARM: intmath: use native-size return types for clipping functions
authorMans Rullgard <mans@mansr.com>
Sat, 11 Aug 2012 03:08:15 +0000 (04:08 +0100)
committerMans Rullgard <mans@mansr.com>
Mon, 13 Aug 2012 13:51:52 +0000 (14:51 +0100)
This avoids having the compiler redundantly mask the values to
the smaller size.

Signed-off-by: Mans Rullgard <mans@mansr.com>
libavutil/arm/intmath.h

index d5a343c..88e9c26 100644 (file)
@@ -44,7 +44,7 @@ static av_always_inline av_const int FASTDIV(int a, int b)
 }
 
 #define av_clip_uint8 av_clip_uint8_arm
-static av_always_inline av_const uint8_t av_clip_uint8_arm(int a)
+static av_always_inline av_const unsigned av_clip_uint8_arm(int a)
 {
     unsigned x;
     __asm__ ("usat %0, #8,  %1" : "=r"(x) : "r"(a));
@@ -52,15 +52,15 @@ static av_always_inline av_const uint8_t av_clip_uint8_arm(int a)
 }
 
 #define av_clip_int8 av_clip_int8_arm
-static av_always_inline av_const uint8_t av_clip_int8_arm(int a)
+static av_always_inline av_const int av_clip_int8_arm(int a)
 {
-    unsigned x;
+    int x;
     __asm__ ("ssat %0, #8,  %1" : "=r"(x) : "r"(a));
     return x;
 }
 
 #define av_clip_uint16 av_clip_uint16_arm
-static av_always_inline av_const uint16_t av_clip_uint16_arm(int a)
+static av_always_inline av_const unsigned av_clip_uint16_arm(int a)
 {
     unsigned x;
     __asm__ ("usat %0, #16, %1" : "=r"(x) : "r"(a));
@@ -68,7 +68,7 @@ static av_always_inline av_const uint16_t av_clip_uint16_arm(int a)
 }
 
 #define av_clip_int16 av_clip_int16_arm
-static av_always_inline av_const int16_t av_clip_int16_arm(int a)
+static av_always_inline av_const int av_clip_int16_arm(int a)
 {
     int x;
     __asm__ ("ssat %0, #16, %1" : "=r"(x) : "r"(a));