| @@ -294,7 +294,6 @@ Advanced options (experts only): | |||||
| --disable-safe-bitstream-reader | --disable-safe-bitstream-reader | ||||
| disable buffer boundary checking in bitreaders | disable buffer boundary checking in bitreaders | ||||
| (faster, but may crash) | (faster, but may crash) | ||||
| --enable-memalign-hack emulate memalign, interferes with memory debuggers | |||||
| --enable-sram allow use of on-chip SRAM | --enable-sram allow use of on-chip SRAM | ||||
| Optimization options (experts only): | Optimization options (experts only): | ||||
| @@ -1354,7 +1353,6 @@ CONFIG_LIST=" | |||||
| $LIBRARY_LIST | $LIBRARY_LIST | ||||
| $PROGRAM_LIST | $PROGRAM_LIST | ||||
| $SUBSYSTEM_LIST | $SUBSYSTEM_LIST | ||||
| memalign_hack | |||||
| neon_clobber_test | neon_clobber_test | ||||
| pic | pic | ||||
| pod2man | pod2man | ||||
| @@ -1471,7 +1469,6 @@ ARCH_FEATURES=" | |||||
| local_aligned_8 | local_aligned_8 | ||||
| local_aligned_16 | local_aligned_16 | ||||
| local_aligned_32 | local_aligned_32 | ||||
| simd_align | |||||
| simd_align_16 | simd_align_16 | ||||
| simd_align_32 | simd_align_32 | ||||
| " | " | ||||
| @@ -1884,7 +1881,6 @@ aligned_stack_if_any="aarch64 ppc x86" | |||||
| fast_64bit_if_any="aarch64 alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" | fast_64bit_if_any="aarch64 alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" | ||||
| fast_clz_if_any="aarch64 alpha avr32 mips ppc x86" | fast_clz_if_any="aarch64 alpha avr32 mips ppc x86" | ||||
| fast_unaligned_if_any="aarch64 ppc x86" | fast_unaligned_if_any="aarch64 ppc x86" | ||||
| simd_align_if_any="simd_align_16 simd_align_32" | |||||
| simd_align_16_if_any="altivec neon sse" | simd_align_16_if_any="altivec neon sse" | ||||
| simd_align_32_if_any="avx" | simd_align_32_if_any="avx" | ||||
| @@ -5041,9 +5037,6 @@ enabled_all dxva2 CoTaskMemFree && | |||||
| prepend avconv_libs $($ldflags_filter "-lole32") && | prepend avconv_libs $($ldflags_filter "-lole32") && | ||||
| enable dxva2_lib | enable dxva2_lib | ||||
| ! enabled_any memalign posix_memalign aligned_malloc && | |||||
| enabled simd_align && enable memalign_hack | |||||
| map 'enabled $v && intrinsics=${v#intrinsics_}' $INTRINSICS_LIST | map 'enabled $v && intrinsics=${v#intrinsics_}' $INTRINSICS_LIST | ||||
| for thread in $THREADS_LIST; do | for thread in $THREADS_LIST; do | ||||
| @@ -62,22 +62,12 @@ void free(void *ptr); | |||||
| void *av_malloc(size_t size) | void *av_malloc(size_t size) | ||||
| { | { | ||||
| void *ptr = NULL; | void *ptr = NULL; | ||||
| #if CONFIG_MEMALIGN_HACK | |||||
| long diff; | |||||
| #endif | |||||
| /* let's disallow possibly ambiguous cases */ | /* let's disallow possibly ambiguous cases */ | ||||
| if (size > (INT_MAX - 32) || !size) | if (size > (INT_MAX - 32) || !size) | ||||
| return NULL; | return NULL; | ||||
| #if CONFIG_MEMALIGN_HACK | |||||
| ptr = malloc(size + 32); | |||||
| if (!ptr) | |||||
| return ptr; | |||||
| diff = ((-(long)ptr - 1) & 31) + 1; | |||||
| ptr = (char *)ptr + diff; | |||||
| ((char *)ptr)[-1] = diff; | |||||
| #elif HAVE_POSIX_MEMALIGN | |||||
| #if HAVE_POSIX_MEMALIGN | |||||
| if (posix_memalign(&ptr, 32, size)) | if (posix_memalign(&ptr, 32, size)) | ||||
| ptr = NULL; | ptr = NULL; | ||||
| #elif HAVE_ALIGNED_MALLOC | #elif HAVE_ALIGNED_MALLOC | ||||
| @@ -116,21 +106,11 @@ void *av_malloc(size_t size) | |||||
| void *av_realloc(void *ptr, size_t size) | void *av_realloc(void *ptr, size_t size) | ||||
| { | { | ||||
| #if CONFIG_MEMALIGN_HACK | |||||
| int diff; | |||||
| #endif | |||||
| /* let's disallow possibly ambiguous cases */ | /* let's disallow possibly ambiguous cases */ | ||||
| if (size > (INT_MAX - 16)) | if (size > (INT_MAX - 16)) | ||||
| return NULL; | return NULL; | ||||
| #if CONFIG_MEMALIGN_HACK | |||||
| //FIXME this isn't aligned correctly, though it probably isn't needed | |||||
| if (!ptr) | |||||
| return av_malloc(size); | |||||
| diff = ((char *)ptr)[-1]; | |||||
| return (char *)realloc((char *)ptr - diff, size + diff) + diff; | |||||
| #elif HAVE_ALIGNED_MALLOC | |||||
| #if HAVE_ALIGNED_MALLOC | |||||
| return _aligned_realloc(ptr, size, 32); | return _aligned_realloc(ptr, size, 32); | ||||
| #else | #else | ||||
| return realloc(ptr, size); | return realloc(ptr, size); | ||||
| @@ -189,10 +169,7 @@ int av_reallocp_array(void *ptr, size_t nmemb, size_t size) | |||||
| void av_free(void *ptr) | void av_free(void *ptr) | ||||
| { | { | ||||
| #if CONFIG_MEMALIGN_HACK | |||||
| if (ptr) | |||||
| free((char *)ptr - ((char *)ptr)[-1]); | |||||
| #elif HAVE_ALIGNED_MALLOC | |||||
| #if HAVE_ALIGNED_MALLOC | |||||
| _aligned_free(ptr); | _aligned_free(ptr); | ||||
| #else | #else | ||||
| free(ptr); | free(ptr); | ||||