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));
97 #define av_sat_sub32 av_sat_sub32_arm 101 __asm__ (
"qsub %0, %1, %2" :
"=r"(r) :
"r"(a),
"r"(b));
105 #define av_sat_dsub32 av_sat_dsub32_arm 109 __asm__ (
"qdsub %0, %1, %2" :
"=r"(r) :
"r"(a),
"r"(b));
117 #define av_clipl_int32 av_clipl_int32_arm 121 __asm__ (
"adds %1, %R2, %Q2, lsr #31 \n\t" 123 "mvnne %1, #1<<31 \n\t" 125 "eorne %0, %1, %R2, asr #31 \n\t" 126 :
"=r"(x),
"=&r"(y) :
"r"(a) :
"cc");
Macro definitions for various function/variable attributes.