[FFmpeg-cvslog] r14245 - trunk/libavcodec/armv4l/mathops.h

Måns Rullgård mans
Tue Jul 15 23:39:44 CEST 2008


matthieu castet <castet.matthieu at free.fr> writes:

> mru wrote:
>> Author: mru
>> Date: Tue Jul 15 21:06:32 2008
>> New Revision: 14245
>> 
>> Log:
>> ARM: optimised MAC64 and MLS64
>> 
>> Modified:
>>    trunk/libavcodec/armv4l/mathops.h
>> 
>> Modified: trunk/libavcodec/armv4l/mathops.h
>> ==============================================================================
>> --- trunk/libavcodec/armv4l/mathops.h	(original)
>> +++ trunk/libavcodec/armv4l/mathops.h	Tue Jul 15 21:06:32 2008
>> @@ -57,6 +57,16 @@ static inline av_const int64_t MUL64(int
>>  }
>>  #define MUL64 MUL64
>>  
>> +static inline av_const int64_t MAC64(int64_t d, int a, int b)
>> +{
>> +    union { uint64_t x; unsigned hl[2]; } x = { d };
>> +    asm ("smlal %0, %1, %2, %3"
>> +         : "+r"(x.hl[0]), "+r"(x.hl[1]) : "r"(a), "r"(b));
>> +    return x.x;
>> +}
>> +#define MAC64(d, a, b) ((d) = MAC64(d, a, b))
>> +#define MLS64(d, a, b) MAC64(d, -(a), b)
>> +
> Will this work on big endian arm ?

Probably not.

> Or big endian is not supported by ffmpeg ?

Apparently not ;-)

Some of the existing ARM code in FFmpeg already assumes little endian,
and big endian ARM systems seem quite rare (I've never actually seen
one).  If you need big endian support, I'm not against it, but it's
not a priority for me.

-- 
M?ns Rullg?rd
mans at mansr.com




More information about the ffmpeg-cvslog mailing list