[FFmpeg-devel] [PATCH] Make DECLARE_ALIGNED macros take array specifiers as separate argument
Måns Rullgård
mans
Tue Oct 27 20:25:51 CET 2009
Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:
> On Tue, Oct 27, 2009 at 06:01:39PM +0000, M?ns Rullg?rd wrote:
>> Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:
>> > On Sun, Oct 18, 2009 at 04:41:09PM +0100, M?ns Rullg?rd wrote:
>> >> Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:
>> >> > On Sun, Oct 18, 2009 at 04:19:55PM +0100, Mans Rullgard wrote:
>> >> >> The macro implementation might need the name of the variable being
>> >> >> declared for compiler-specific syntax. Adding an optional fourth
>> >> >> argument allows us to pass the name and, if present, array specifiers
>> >> >> as separate arguments.
>> >> >
>> >> > Could you be more specific on the syntax? If possible moving the
>> >> > array specifiers just outside the DECLARE_ALIGNED would look nicer IMO.
>> >>
>> >> I don't think that will work. It certainly will not work with another
>> >> patch I'm preparing. What's so bad about this anyway?
>> >
>> > Sorry, old thread.
>> > Bad things about it:
>> > 1) I think it looks quite ugly
>>
>> I don't. It is also a prerequisite for compiling FFmpeg with TI
>> compilers.
>
> Don't worry, I wasn't going to object on that grounds, I just considered
> it reason enough to ask if there's an alternative.
> Could you give us an example for the syntax the TI compiler needs?
> In principle I guess it's ok, though checking if someone has a better
> idea can't hurt I'd think...
The following macros will need to be added in appropriate places:
#define AV_PRAGMA(s) _Pragma(#s)
#define DECLARE_ALIGNED(n,t,v,...) \
AV_PRAGMA(DATA_ALIGN(v,n)) \
t v __VA_ARGS__ __attribute__((aligned(n)))
#define DECLARE_ASM_CONST(n,t,v,...) \
AV_PRAGMA(DATA_ALIGN(v,n)) \
static const t v __VA_ARGS__ __attribute__((aligned(n)))
#define LOCAL_ALIGNED(a, t, v, s, ...) \
uint8_t la_##v[sizeof(t s __VA_ARGS__) + (a)]; \
t (*v) __VA_ARGS__ = (void *)FFALIGN((uintptr_t)la_##v, a)
The last one will have to be used for local vars needing alignment.
This is needed with gcc too on some platforms.
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list