From 5bd9b8b167a883a3b6c25de96c067d62e2e3e599 Mon Sep 17 00:00:00 2001 From: Ethan Lee Date: Fri, 14 Jun 2019 09:51:22 -0400 Subject: [PATCH] Check src alignment for S32_to_F32 conversions --- src/audio/SDL_audiotypecvt.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/audio/SDL_audiotypecvt.c b/src/audio/SDL_audiotypecvt.c index 83910fec7..c99641acc 100644 --- a/src/audio/SDL_audiotypecvt.c +++ b/src/audio/SDL_audiotypecvt.c @@ -526,8 +526,9 @@ SDL_Convert_S32_to_F32_SSE2(SDL_AudioCVT *cvt, SDL_AudioFormat format) } SDL_assert(!i || ((((size_t) dst) & 15) == 0)); - SDL_assert(!i || ((((size_t) src) & 15) == 0)); + /* Make sure src is aligned too. */ + if ((((size_t) src) & 15) == 0) { { /* Aligned! Do SSE blocks as long as we have 16 bytes available. */ const __m128 divby8388607 = _mm_set1_ps(DIVBY8388607); @@ -1060,9 +1061,9 @@ SDL_Convert_S32_to_F32_NEON(SDL_AudioCVT *cvt, SDL_AudioFormat format) } SDL_assert(!i || ((((size_t) dst) & 15) == 0)); - SDL_assert(!i || ((((size_t) src) & 15) == 0)); - { + /* Make sure src is aligned too. */ + if ((((size_t) src) & 15) == 0) { /* Aligned! Do NEON blocks as long as we have 16 bytes available. */ const float32x4_t divby8388607 = vdupq_n_f32(DIVBY8388607); const int32_t *mmsrc = (const int32_t *) src;