Commit 08675bb3 authored by Michael Niedermayer's avatar Michael Niedermayer

mem: Choose alignment at compile time depending on AVX enabledness.

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 53789a27
...@@ -57,6 +57,8 @@ void free(void *ptr); ...@@ -57,6 +57,8 @@ void free(void *ptr);
#endif /* MALLOC_PREFIX */ #endif /* MALLOC_PREFIX */
#define ALIGN (HAVE_AVX ? 32 : 16)
/* You can redefine av_malloc and av_free in your project to use your /* You can redefine av_malloc and av_free in your project to use your
memory allocator. You do not need to suppress this file because the memory allocator. You do not need to suppress this file because the
linker will do it automatically. */ linker will do it automatically. */
...@@ -73,17 +75,17 @@ void *av_malloc(size_t size) ...@@ -73,17 +75,17 @@ void *av_malloc(size_t size)
return NULL; return NULL;
#if CONFIG_MEMALIGN_HACK #if CONFIG_MEMALIGN_HACK
ptr = malloc(size+32); ptr = malloc(size+ALIGN);
if(!ptr) if(!ptr)
return ptr; return ptr;
diff= ((-(long)ptr - 1)&31) + 1; diff= ((-(long)ptr - 1)&(ALIGN-1)) + 1;
ptr = (char*)ptr + diff; ptr = (char*)ptr + diff;
((char*)ptr)[-1]= diff; ((char*)ptr)[-1]= diff;
#elif HAVE_POSIX_MEMALIGN #elif HAVE_POSIX_MEMALIGN
if (posix_memalign(&ptr,32,size)) if (posix_memalign(&ptr,ALIGN,size))
ptr = NULL; ptr = NULL;
#elif HAVE_MEMALIGN #elif HAVE_MEMALIGN
ptr = memalign(32,size); ptr = memalign(ALIGN,size);
/* Why 64? /* Why 64?
Indeed, we should align it: Indeed, we should align it:
on 4 for 386 on 4 for 386
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment