From 6e3e6ad58782bbd5b6249700e6c52fc8e2a16809 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Thu, 22 Oct 2009 23:58:04 +0200 Subject: [PATCH] Add __aligned macro to gcc-compat.h. and use this instead of DECLARE_ALIGNED. Fix some whitespace issues in gcc-compat.h while we're at it. --- gcc-compat.h | 10 ++++++---- imdct.c | 30 ++++++++++++++++-------------- wma.h | 2 -- wmadec_filter.c | 14 ++++++++------ 4 files changed, 30 insertions(+), 26 deletions(-) diff --git a/gcc-compat.h b/gcc-compat.h index 1cd30af2..7367173a 100644 --- a/gcc-compat.h +++ b/gcc-compat.h @@ -1,7 +1,9 @@ -# define inline inline __attribute__ ((always_inline)) -# define __noreturn __attribute__ ((noreturn)) -# define __malloc __attribute__ ((malloc)) -# define __a_unused __attribute__ ((unused)) +#define inline inline __attribute__ ((always_inline)) +#define __noreturn __attribute__ ((noreturn)) +#define __malloc __attribute__ ((malloc)) +#define __a_unused __attribute__ ((unused)) +#define __aligned(alignment) __attribute__((__aligned__(alignment))) + /* * p is the number of the "format string" parameter, and q is * the number of the first variadic parameter. diff --git a/imdct.c b/imdct.c index ac085bbc..f77da7bb 100644 --- a/imdct.c +++ b/imdct.c @@ -51,20 +51,22 @@ struct mdct_context { struct fft_context fft; }; -/* cos(2*pi*x/n) for 0<=x<=n/4, followed by its reverse */ -DECLARE_ALIGNED_16(fftsample_t, ff_cos_16[8]); -DECLARE_ALIGNED_16(fftsample_t, ff_cos_32[16]); -DECLARE_ALIGNED_16(fftsample_t, ff_cos_64[32]); -DECLARE_ALIGNED_16(fftsample_t, ff_cos_128[64]); -DECLARE_ALIGNED_16(fftsample_t, ff_cos_256[128]); -DECLARE_ALIGNED_16(fftsample_t, ff_cos_512[256]); -DECLARE_ALIGNED_16(fftsample_t, ff_cos_1024[512]); -DECLARE_ALIGNED_16(fftsample_t, ff_cos_2048[1024]); -DECLARE_ALIGNED_16(fftsample_t, ff_cos_4096[2048]); -DECLARE_ALIGNED_16(fftsample_t, ff_cos_8192[4096]); -DECLARE_ALIGNED_16(fftsample_t, ff_cos_16384[8192]); -DECLARE_ALIGNED_16(fftsample_t, ff_cos_32768[16384]); -DECLARE_ALIGNED_16(fftsample_t, ff_cos_65536[32768]); +/** cos(2 * pi * x / n) for 0 <= x <= n / 4, followed by its reverse */ +#define COSINE_TAB(n) fftsample_t ff_cos_ ## n[n / 2] __aligned(16) + +COSINE_TAB(16); +COSINE_TAB(32); +COSINE_TAB(64); +COSINE_TAB(128); +COSINE_TAB(256); +COSINE_TAB(512); +COSINE_TAB(1024); +COSINE_TAB(2048); +COSINE_TAB(4096); +COSINE_TAB(8192); +COSINE_TAB(16384); +COSINE_TAB(32768); +COSINE_TAB(65536); static fftsample_t *ff_cos_tabs[] = { ff_cos_16, ff_cos_32, ff_cos_64, ff_cos_128, ff_cos_256, diff --git a/wma.h b/wma.h index df61c20a..33e34a35 100644 --- a/wma.h +++ b/wma.h @@ -31,5 +31,3 @@ const char *search_pattern(const char *pattern, int pattern_len, int read_asf_header(const char *buf, int loaded, struct asf_header_info *ahi); #define WMA_FRAME_SKIP 31 -#define DECLARE_ALIGNED(n,t,v) t v __attribute__ ((aligned (n))) -#define DECLARE_ALIGNED_16(t, v) DECLARE_ALIGNED(16, t, v) diff --git a/wmadec_filter.c b/wmadec_filter.c index c5a91e0f..d40cc3eb 100644 --- a/wmadec_filter.c +++ b/wmadec_filter.c @@ -131,12 +131,14 @@ struct private_wmadec_data { #define VLCBITS 9 #define VLCMAX ((22 + VLCBITS - 1) / VLCBITS) -DECLARE_ALIGNED(16, float, ff_sine_128[128]); -DECLARE_ALIGNED(16, float, ff_sine_256[256]); -DECLARE_ALIGNED(16, float, ff_sine_512[512]); -DECLARE_ALIGNED(16, float, ff_sine_1024[1024]); -DECLARE_ALIGNED(16, float, ff_sine_2048[2048]); -DECLARE_ALIGNED(16, float, ff_sine_4096[4096]); +#define SINE_WINDOW(x) float ff_sine_ ## x[x] __aligned(16) + +SINE_WINDOW(128); +SINE_WINDOW(256); +SINE_WINDOW(512); +SINE_WINDOW(1024); +SINE_WINDOW(2048); +SINE_WINDOW(4096); static float *ff_sine_windows[6] = { ff_sine_128, ff_sine_256, ff_sine_512, ff_sine_1024, -- 2.39.5