[FFmpeg-devel] cavs.c DECLARE_ALIGNED in ff_cavs_filter
Måns Rullgård
mans
Mon May 25 21:02:41 CEST 2009
Loren Merritt <lorenm at u.washington.edu> writes:
> On Mon, 25 May 2009, M?ns Rullg?rd wrote:
>> Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:
>>
>>> currently there is this code in cavs.c:
>>> DECLARE_ALIGNED_8(uint8_t, bs[8]);
>>> The reason for it is that kind of code:
>>>> *((uint64_t *)bs) = 0x0202020202020202ULL;
>>>> if( *((uint64_t *)bs) ) {
>>>
>>> I thought of "solving" this via a union, but is this code really this
>>> speed critical that we need such a mess?
>>> Can't we just use memset for the writes and e.g. AV_RN64 for the read?
>
> Are you complaining about the aliasing, or trying to simplify the code?
>
>> Such huge literals are fairly inefficient anyway on most CPUs.
>
> As opposed to what?
memset() or repeated stores of a smaller value.
> The compiler should emit the same code for memset as for
> *(uint64_t*),
I thought we'd already established that compilers suck.
> and gcc on x86 does.
Impressive. What about other targets?
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list