21 #ifndef AVUTIL_ARM_INTMATH_H
22 #define AVUTIL_ARM_INTMATH_H
33 #define av_clip_uint8 av_clip_uint8_arm
37 __asm__ (
"usat %0, #8, %1" :
"=r"(x) :
"r"(a));
41 #define av_clip_int8 av_clip_int8_arm
45 __asm__ (
"ssat %0, #8, %1" :
"=r"(x) :
"r"(a));
49 #define av_clip_uint16 av_clip_uint16_arm
53 __asm__ (
"usat %0, #16, %1" :
"=r"(x) :
"r"(a));
57 #define av_clip_int16 av_clip_int16_arm
61 __asm__ (
"ssat %0, #16, %1" :
"=r"(x) :
"r"(a));
65 #define av_clip_intp2 av_clip_intp2_arm
69 __asm__ (
"ssat %0, %2, %1" :
"=r"(x) :
"r"(a),
"i"(p+1));
73 #define av_clip_uintp2 av_clip_uintp2_arm
77 __asm__ (
"usat %0, %2, %1" :
"=r"(x) :
"r"(a),
"i"(p));
81 #define av_sat_add32 av_sat_add32_arm
85 __asm__ (
"qadd %0, %1, %2" :
"=r"(r) :
"r"(a),
"r"(b));
89 #define av_sat_dadd32 av_sat_dadd32_arm
93 __asm__ (
"qdadd %0, %1, %2" :
"=r"(r) :
"r"(a),
"r"(b));
101 #define av_clipl_int32 av_clipl_int32_arm
105 __asm__ (
"adds %1, %R2, %Q2, lsr #31 \n\t"
107 "mvnne %1, #1<<31 \n\t"
109 "eorne %0, %1, %R2, asr #31 \n\t"
110 :
"=r"(x),
"=&r"(y) :
"r"(a) :
"cc");