diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 66d9200008..841d85479b 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -5303,7 +5303,7 @@ static inline int get_cabac_cbf_ctx( H264Context *h, int cat, int idx ) { return ctx + 4 * cat; } -static const attribute_used uint8_t last_coeff_flag_offset_8x8[63] = { +DECLARE_ASM_CONST(1, const uint8_t, last_coeff_flag_offset_8x8[63]) = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, diff --git a/libavcodec/i386/motion_est_mmx.c b/libavcodec/i386/motion_est_mmx.c index 3c22393871..888d891d94 100644 --- a/libavcodec/i386/motion_est_mmx.c +++ b/libavcodec/i386/motion_est_mmx.c @@ -24,13 +24,13 @@ #include "dsputil.h" #include "x86_cpu.h" -static const __attribute__ ((aligned(8))) uint64_t round_tab[3]={ +DECLARE_ASM_CONST(8, uint64_t, round_tab[3])={ 0x0000000000000000ULL, 0x0001000100010001ULL, 0x0002000200020002ULL, }; -static attribute_used __attribute__ ((aligned(8))) uint64_t bone= 0x0101010101010101LL; +DECLARE_ASM_CONST(8, uint64_t, bone)= 0x0101010101010101LL; static inline void sad8_1_mmx(uint8_t *blk1, uint8_t *blk2, int stride, int h) { diff --git a/libavcodec/i386/simple_idct_mmx.c b/libavcodec/i386/simple_idct_mmx.c index 5f5d8386db..059f473a0c 100644 --- a/libavcodec/i386/simple_idct_mmx.c +++ b/libavcodec/i386/simple_idct_mmx.c @@ -48,8 +48,8 @@ #define ROW_SHIFT 11 #define COL_SHIFT 20 // 6 -static const uint64_t attribute_used __attribute__((aligned(8))) wm1010= 0xFFFF0000FFFF0000ULL; -static const uint64_t attribute_used __attribute__((aligned(8))) d40000= 0x0000000000040000ULL; +DECLARE_ASM_CONST(8, uint64_t, wm1010)= 0xFFFF0000FFFF0000ULL; +DECLARE_ASM_CONST(8, uint64_t, d40000)= 0x0000000000040000ULL; DECLARE_ALIGNED(8, static const int16_t, coeffs[])= { 1<<(ROW_SHIFT-1), 0, 1<<(ROW_SHIFT-1), 0, diff --git a/libavutil/mem.h b/libavutil/mem.h index 86953531d5..b9ff44d4f1 100644 --- a/libavutil/mem.h +++ b/libavutil/mem.h @@ -28,8 +28,10 @@ #ifdef __GNUC__ #define DECLARE_ALIGNED(n,t,v) t v __attribute__ ((aligned (n))) + #define DECLARE_ASM_CONST(n,t,v) static const t v attribute_used __attribute__ ((aligned (n))) #else #define DECLARE_ALIGNED(n,t,v) __declspec(align(n)) t v + #define DECLARE_ASM_CONST(n,t,v) __declspec(align(n)) static const t v #endif /**