void (*add_pixels_clamped)(const DCTELEM *block/*align 16*/, uint8_t *pixels/*align 8*/, int line_size);
void (*add_pixels8)(uint8_t *pixels, DCTELEM *block, int line_size);
void (*add_pixels4)(uint8_t *pixels, DCTELEM *block, int line_size);
+ int (*sum_abs_dctelem)(DCTELEM *block/*align 16*/);
/**
* translational global motion compensation.
*/
one or more MultiMedia extension */
int mm_support(void);
-#ifdef __GNUC__
- #define DECLARE_ALIGNED_16(t,v) t v __attribute__ ((aligned (16)))
-#else
- #define DECLARE_ALIGNED_16(t,v) __declspec(align(16)) t v
-#endif
+#define DECLARE_ALIGNED_16(t, v) DECLARE_ALIGNED(16, t, v)
#if defined(HAVE_MMX)
emms();\
}
-#ifdef __GNUC__
- #define DECLARE_ALIGNED_8(t,v) t v __attribute__ ((aligned (8)))
-#else
- #define DECLARE_ALIGNED_8(t,v) __declspec(align(8)) t v
-#endif
+#define DECLARE_ALIGNED_8(t, v) DECLARE_ALIGNED(8, t, v)
#define STRIDE_ALIGN 8
/* This is to use 4 bytes read to the IDCT pointers for some 'zero'
line optimizations */
-#define DECLARE_ALIGNED_8(t,v) t v __attribute__ ((aligned (4)))
+#define DECLARE_ALIGNED_8(t, v) DECLARE_ALIGNED(4, t, v)
#define STRIDE_ALIGN 4
#define MM_IWMMXT 0x0100 /* XScale IWMMXT */
#elif defined(HAVE_MLIB)
/* SPARC/VIS IDCT needs 8-byte aligned DCT blocks */
-#define DECLARE_ALIGNED_8(t,v) t v __attribute__ ((aligned (8)))
+#define DECLARE_ALIGNED_8(t, v) DECLARE_ALIGNED(8, t, v)
#define STRIDE_ALIGN 8
void dsputil_init_mlib(DSPContext* c, AVCodecContext *avctx);
#elif defined(ARCH_SPARC)
/* SPARC/VIS IDCT needs 8-byte aligned DCT blocks */
-#define DECLARE_ALIGNED_8(t,v) t v __attribute__ ((aligned (8)))
+#define DECLARE_ALIGNED_8(t, v) DECLARE_ALIGNED(8, t, v)
#define STRIDE_ALIGN 8
void dsputil_init_vis(DSPContext* c, AVCodecContext *avctx);
#elif defined(ARCH_ALPHA)
-#define DECLARE_ALIGNED_8(t,v) t v __attribute__ ((aligned (8)))
+#define DECLARE_ALIGNED_8(t, v) DECLARE_ALIGNED(8, t, v)
#define STRIDE_ALIGN 8
void dsputil_init_alpha(DSPContext* c, AVCodecContext *avctx);
#undef pixel
#endif
-#define DECLARE_ALIGNED_8(t,v) t v __attribute__ ((aligned (16)))
+#define DECLARE_ALIGNED_8(t, v) DECLARE_ALIGNED(16, t, v)
#define STRIDE_ALIGN 16
void dsputil_init_ppc(DSPContext* c, AVCodecContext *avctx);
#elif defined(HAVE_MMI)
-#define DECLARE_ALIGNED_8(t,v) t v __attribute__ ((aligned (16)))
+#define DECLARE_ALIGNED_8(t, v) DECLARE_ALIGNED(16, t, v)
#define STRIDE_ALIGN 16
void dsputil_init_mmi(DSPContext* c, AVCodecContext *avctx);
#elif defined(ARCH_SH4)
-#define DECLARE_ALIGNED_8(t,v) t v __attribute__ ((aligned (8)))
+#define DECLARE_ALIGNED_8(t, v) DECLARE_ALIGNED(8, t, v)
#define STRIDE_ALIGN 8
void dsputil_init_sh4(DSPContext* c, AVCodecContext *avctx);
#elif defined(ARCH_BFIN)
-#define DECLARE_ALIGNED_8(t,v) t v __attribute__ ((aligned (8)))
+#define DECLARE_ALIGNED_8(t, v) DECLARE_ALIGNED(8, t, v)
#define STRIDE_ALIGN 8
void dsputil_init_bfin(DSPContext* c, AVCodecContext *avctx);
#else
-#define DECLARE_ALIGNED_8(t,v) t v __attribute__ ((aligned (8)))
+#define DECLARE_ALIGNED_8(t, v) DECLARE_ALIGNED(8, t, v)
#define STRIDE_ALIGN 8
#endif