Go to the documentation of this file.
21 #ifndef AVUTIL_MEM_INTERNAL_H
22 #define AVUTIL_MEM_INTERNAL_H
77 #if defined(__DJGPP__)
78 #define DECLARE_ALIGNED_T(n,t,v) alignas(FFMIN(n, 16)) t v
79 #define DECLARE_ASM_ALIGNED(n,t,v) alignas(FFMIN(n, 16)) t av_used v
80 #define DECLARE_ASM_CONST(n,t,v) alignas(FFMIN(n, 16)) static const t av_used v
81 #elif defined(_MSC_VER)
82 #define DECLARE_ALIGNED_T(n,t,v) __declspec(align(n)) t v
83 #define DECLARE_ASM_ALIGNED(n,t,v) __declspec(align(n)) t v
84 #define DECLARE_ASM_CONST(n,t,v) __declspec(align(n)) static const t v
86 #define DECLARE_ALIGNED_T(n,t,v) alignas(n) t v
87 #define DECLARE_ASM_ALIGNED(n,t,v) alignas(n) t av_used v
88 #define DECLARE_ASM_CONST(n,t,v) alignas(n) static const t av_used v
91 #if HAVE_SIMD_ALIGN_64
94 #elif HAVE_SIMD_ALIGN_32
102 #define DECLARE_ALIGNED(n,t,v) DECLARE_ALIGNED_V(n,t,v)
106 #define DECLARE_ALIGNED_V(n,t,v) DECLARE_ALIGNED_##n(t,v)
108 #define DECLARE_ALIGNED_4(t,v) DECLARE_ALIGNED_T( 4, t, v)
109 #define DECLARE_ALIGNED_8(t,v) DECLARE_ALIGNED_T( 8, t, v)
110 #define DECLARE_ALIGNED_16(t,v) DECLARE_ALIGNED_T( 16, t, v)
111 #define DECLARE_ALIGNED_32(t,v) DECLARE_ALIGNED_T(ALIGN_32, t, v)
112 #define DECLARE_ALIGNED_64(t,v) DECLARE_ALIGNED_T(ALIGN_64, t, v)
118 #define LOCAL_ALIGNED_D(a, t, v, s, o, ...) \
119 DECLARE_ALIGNED(a, t, la_##v) s o; \
122 #define LOCAL_ALIGNED(a, t, v, ...) LOCAL_ALIGNED_##a(t, v, __VA_ARGS__)
124 #define LOCAL_ALIGNED_4(t, v, ...) E1(LOCAL_ALIGNED_D(4, t, v, __VA_ARGS__,,))
126 #define LOCAL_ALIGNED_8(t, v, ...) E1(LOCAL_ALIGNED_D(8, t, v, __VA_ARGS__,,))
128 #define LOCAL_ALIGNED_16(t, v, ...) E1(LOCAL_ALIGNED_D(16, t, v, __VA_ARGS__,,))
130 #define LOCAL_ALIGNED_32(t, v, ...) E1(LOCAL_ALIGNED_D(32, t, v, __VA_ARGS__,,))