|
@@ -185,7 +185,7 @@ static void SDL_Convert_F32_to_S32_Scalar(Sint32 *dst, const float *src, int num
|
|
|
|
|
|
#undef SIGNMASK
|
|
|
|
|
|
-static void SDL_Convert_Swap16_Scalar(Uint16* dst, const Uint16* src, int num_samples)
|
|
|
+static void SDL_Convert_Swap16_Scalar(Uint16 *dst, const Uint16 *src, int num_samples)
|
|
|
{
|
|
|
int i;
|
|
|
|
|
@@ -194,7 +194,7 @@ static void SDL_Convert_Swap16_Scalar(Uint16* dst, const Uint16* src, int num_sa
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static void SDL_Convert_Swap32_Scalar(Uint32* dst, const Uint32* src, int num_samples)
|
|
|
+static void SDL_Convert_Swap32_Scalar(Uint32 *dst, const Uint32 *src, int num_samples)
|
|
|
{
|
|
|
int i;
|
|
|
|
|
@@ -375,7 +375,7 @@ static void SDL_TARGETING("sse2") SDL_Convert_F32_to_S8_SSE2(Sint8 *dst, const f
|
|
|
|
|
|
const __m128i bytes = _mm_packus_epi16(shorts0, shorts1);
|
|
|
|
|
|
- _mm_store_si128((__m128i*)&dst[i], bytes);
|
|
|
+ _mm_store_si128((__m128i *)&dst[i], bytes);
|
|
|
})
|
|
|
}
|
|
|
|
|
@@ -409,7 +409,7 @@ static void SDL_TARGETING("sse2") SDL_Convert_F32_to_U8_SSE2(Uint8 *dst, const f
|
|
|
|
|
|
const __m128i bytes = _mm_packus_epi16(shorts0, shorts1);
|
|
|
|
|
|
- _mm_store_si128((__m128i*)&dst[i], bytes);
|
|
|
+ _mm_store_si128((__m128i *)&dst[i], bytes);
|
|
|
})
|
|
|
}
|
|
|
|
|
@@ -441,8 +441,8 @@ static void SDL_TARGETING("sse2") SDL_Convert_F32_to_S16_SSE2(Sint16 *dst, const
|
|
|
const __m128i shorts0 = _mm_packs_epi32(ints0, ints1);
|
|
|
const __m128i shorts1 = _mm_packs_epi32(ints2, ints3);
|
|
|
|
|
|
- _mm_store_si128((__m128i*)&dst[i], shorts0);
|
|
|
- _mm_store_si128((__m128i*)&dst[i + 8], shorts1);
|
|
|
+ _mm_store_si128((__m128i *)&dst[i], shorts0);
|
|
|
+ _mm_store_si128((__m128i *)&dst[i + 8], shorts1);
|
|
|
})
|
|
|
}
|
|
|
|
|
@@ -477,55 +477,55 @@ static void SDL_TARGETING("sse2") SDL_Convert_F32_to_S32_SSE2(Sint32 *dst, const
|
|
|
const __m128i ints2 = _mm_xor_si128(_mm_cvttps_epi32(values3), _mm_castps_si128(_mm_cmpge_ps(values3, limit)));
|
|
|
const __m128i ints3 = _mm_xor_si128(_mm_cvttps_epi32(values4), _mm_castps_si128(_mm_cmpge_ps(values4, limit)));
|
|
|
|
|
|
- _mm_store_si128((__m128i*)&dst[i], ints0);
|
|
|
- _mm_store_si128((__m128i*)&dst[i + 4], ints1);
|
|
|
- _mm_store_si128((__m128i*)&dst[i + 8], ints2);
|
|
|
- _mm_store_si128((__m128i*)&dst[i + 12], ints3);
|
|
|
+ _mm_store_si128((__m128i *)&dst[i], ints0);
|
|
|
+ _mm_store_si128((__m128i *)&dst[i + 4], ints1);
|
|
|
+ _mm_store_si128((__m128i *)&dst[i + 8], ints2);
|
|
|
+ _mm_store_si128((__m128i *)&dst[i + 12], ints3);
|
|
|
})
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
// FIXME: SDL doesn't have SSSE3 detection, so use the next one up
|
|
|
#ifdef SDL_SSE4_1_INTRINSICS
|
|
|
-static void SDL_TARGETING("ssse3") SDL_Convert_Swap16_SSSE3(Uint16* dst, const Uint16* src, int num_samples)
|
|
|
+static void SDL_TARGETING("ssse3") SDL_Convert_Swap16_SSSE3(Uint16 *dst, const Uint16 *src, int num_samples)
|
|
|
{
|
|
|
const __m128i shuffle = _mm_set_epi8(14, 15, 12, 13, 10, 11, 8, 9, 6, 7, 4, 5, 2, 3, 0, 1);
|
|
|
|
|
|
CONVERT_16_FWD({
|
|
|
dst[i] = SDL_Swap16(src[i]);
|
|
|
}, {
|
|
|
- __m128i ints0 = _mm_loadu_si128((const __m128i*)&src[i]);
|
|
|
- __m128i ints1 = _mm_loadu_si128((const __m128i*)&src[i + 8]);
|
|
|
+ __m128i ints0 = _mm_loadu_si128((const __m128i *)&src[i]);
|
|
|
+ __m128i ints1 = _mm_loadu_si128((const __m128i *)&src[i + 8]);
|
|
|
|
|
|
ints0 = _mm_shuffle_epi8(ints0, shuffle);
|
|
|
ints1 = _mm_shuffle_epi8(ints1, shuffle);
|
|
|
|
|
|
- _mm_store_si128((__m128i*)&dst[i], ints0);
|
|
|
- _mm_store_si128((__m128i*)&dst[i + 8], ints1);
|
|
|
+ _mm_store_si128((__m128i *)&dst[i], ints0);
|
|
|
+ _mm_store_si128((__m128i *)&dst[i + 8], ints1);
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-static void SDL_TARGETING("ssse3") SDL_Convert_Swap32_SSSE3(Uint32* dst, const Uint32* src, int num_samples)
|
|
|
+static void SDL_TARGETING("ssse3") SDL_Convert_Swap32_SSSE3(Uint32 *dst, const Uint32 *src, int num_samples)
|
|
|
{
|
|
|
const __m128i shuffle = _mm_set_epi8(12, 13, 14, 15, 8, 9, 10, 11, 4, 5, 6, 7, 0, 1, 2, 3);
|
|
|
|
|
|
CONVERT_16_FWD({
|
|
|
dst[i] = SDL_Swap32(src[i]);
|
|
|
}, {
|
|
|
- __m128i ints0 = _mm_loadu_si128((const __m128i*)&src[i]);
|
|
|
- __m128i ints1 = _mm_loadu_si128((const __m128i*)&src[i + 4]);
|
|
|
- __m128i ints2 = _mm_loadu_si128((const __m128i*)&src[i + 8]);
|
|
|
- __m128i ints3 = _mm_loadu_si128((const __m128i*)&src[i + 12]);
|
|
|
+ __m128i ints0 = _mm_loadu_si128((const __m128i *)&src[i]);
|
|
|
+ __m128i ints1 = _mm_loadu_si128((const __m128i *)&src[i + 4]);
|
|
|
+ __m128i ints2 = _mm_loadu_si128((const __m128i *)&src[i + 8]);
|
|
|
+ __m128i ints3 = _mm_loadu_si128((const __m128i *)&src[i + 12]);
|
|
|
|
|
|
ints0 = _mm_shuffle_epi8(ints0, shuffle);
|
|
|
ints1 = _mm_shuffle_epi8(ints1, shuffle);
|
|
|
ints2 = _mm_shuffle_epi8(ints2, shuffle);
|
|
|
ints3 = _mm_shuffle_epi8(ints3, shuffle);
|
|
|
|
|
|
- _mm_store_si128((__m128i*)&dst[i], ints0);
|
|
|
- _mm_store_si128((__m128i*)&dst[i + 4], ints1);
|
|
|
- _mm_store_si128((__m128i*)&dst[i + 8], ints2);
|
|
|
- _mm_store_si128((__m128i*)&dst[i + 12], ints3);
|
|
|
+ _mm_store_si128((__m128i *)&dst[i], ints0);
|
|
|
+ _mm_store_si128((__m128i *)&dst[i + 4], ints1);
|
|
|
+ _mm_store_si128((__m128i *)&dst[i + 8], ints2);
|
|
|
+ _mm_store_si128((__m128i *)&dst[i + 12], ints3);
|
|
|
})
|
|
|
}
|
|
|
#endif
|
|
@@ -774,41 +774,41 @@ static void SDL_Convert_F32_to_S32_NEON(Sint32 *dst, const float *src, int num_s
|
|
|
fesetenv(&fenv);
|
|
|
}
|
|
|
|
|
|
-static void SDL_Convert_Swap16_NEON(Uint16* dst, const Uint16* src, int num_samples)
|
|
|
+static void SDL_Convert_Swap16_NEON(Uint16 *dst, const Uint16 *src, int num_samples)
|
|
|
{
|
|
|
CONVERT_16_FWD({
|
|
|
dst[i] = SDL_Swap16(src[i]);
|
|
|
}, {
|
|
|
- uint8x16_t ints0 = vld1q_u8((const Uint8*)&src[i]);
|
|
|
- uint8x16_t ints1 = vld1q_u8((const Uint8*)&src[i + 8]);
|
|
|
+ uint8x16_t ints0 = vld1q_u8((const Uint8 *)&src[i]);
|
|
|
+ uint8x16_t ints1 = vld1q_u8((const Uint8 *)&src[i + 8]);
|
|
|
|
|
|
ints0 = vrev16q_u8(ints0);
|
|
|
ints1 = vrev16q_u8(ints1);
|
|
|
|
|
|
- vst1q_u8((Uint8*)&dst[i], ints0);
|
|
|
- vst1q_u8((Uint8*)&dst[i + 8], ints1);
|
|
|
+ vst1q_u8((Uint8 *)&dst[i], ints0);
|
|
|
+ vst1q_u8((Uint8 *)&dst[i + 8], ints1);
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-static void SDL_Convert_Swap32_NEON(Uint32* dst, const Uint32* src, int num_samples)
|
|
|
+static void SDL_Convert_Swap32_NEON(Uint32 *dst, const Uint32 *src, int num_samples)
|
|
|
{
|
|
|
CONVERT_16_FWD({
|
|
|
dst[i] = SDL_Swap32(src[i]);
|
|
|
}, {
|
|
|
- uint8x16_t ints0 = vld1q_u8((const Uint8*)&src[i]);
|
|
|
- uint8x16_t ints1 = vld1q_u8((const Uint8*)&src[i + 4]);
|
|
|
- uint8x16_t ints2 = vld1q_u8((const Uint8*)&src[i + 8]);
|
|
|
- uint8x16_t ints3 = vld1q_u8((const Uint8*)&src[i + 12]);
|
|
|
+ uint8x16_t ints0 = vld1q_u8((const Uint8 *)&src[i]);
|
|
|
+ uint8x16_t ints1 = vld1q_u8((const Uint8 *)&src[i + 4]);
|
|
|
+ uint8x16_t ints2 = vld1q_u8((const Uint8 *)&src[i + 8]);
|
|
|
+ uint8x16_t ints3 = vld1q_u8((const Uint8 *)&src[i + 12]);
|
|
|
|
|
|
ints0 = vrev32q_u8(ints0);
|
|
|
ints1 = vrev32q_u8(ints1);
|
|
|
ints2 = vrev32q_u8(ints2);
|
|
|
ints3 = vrev32q_u8(ints3);
|
|
|
|
|
|
- vst1q_u8((Uint8*)&dst[i], ints0);
|
|
|
- vst1q_u8((Uint8*)&dst[i + 4], ints1);
|
|
|
- vst1q_u8((Uint8*)&dst[i + 8], ints2);
|
|
|
- vst1q_u8((Uint8*)&dst[i + 12], ints3);
|
|
|
+ vst1q_u8((Uint8 *)&dst[i], ints0);
|
|
|
+ vst1q_u8((Uint8 *)&dst[i + 4], ints1);
|
|
|
+ vst1q_u8((Uint8 *)&dst[i + 8], ints2);
|
|
|
+ vst1q_u8((Uint8 *)&dst[i + 12], ints3);
|
|
|
})
|
|
|
}
|
|
|
|
|
@@ -839,8 +839,8 @@ static void (*SDL_Convert_F32_to_U8)(Uint8 *dst, const float *src, int num_sampl
|
|
|
static void (*SDL_Convert_F32_to_S16)(Sint16 *dst, const float *src, int num_samples) = NULL;
|
|
|
static void (*SDL_Convert_F32_to_S32)(Sint32 *dst, const float *src, int num_samples) = NULL;
|
|
|
|
|
|
-static void (*SDL_Convert_Swap16)(Uint16* dst, const Uint16* src, int num_samples) = NULL;
|
|
|
-static void (*SDL_Convert_Swap32)(Uint32* dst, const Uint32* src, int num_samples) = NULL;
|
|
|
+static void (*SDL_Convert_Swap16)(Uint16 *dst, const Uint16 *src, int num_samples) = NULL;
|
|
|
+static void (*SDL_Convert_Swap32)(Uint32 *dst, const Uint32 *src, int num_samples) = NULL;
|
|
|
|
|
|
void ConvertAudioToFloat(float *dst, const void *src, int num_samples, SDL_AudioFormat src_fmt)
|
|
|
{
|
|
@@ -858,7 +858,7 @@ void ConvertAudioToFloat(float *dst, const void *src, int num_samples, SDL_Audio
|
|
|
break;
|
|
|
|
|
|
case SDL_AUDIO_S16 ^ SDL_AUDIO_MASK_BIG_ENDIAN:
|
|
|
- SDL_Convert_Swap16((Uint16*) dst, (const Uint16*) src, num_samples);
|
|
|
+ SDL_Convert_Swap16((Uint16 *)dst, (const Uint16 *)src, num_samples);
|
|
|
SDL_Convert_S16_to_F32(dst, (const Sint16 *) dst, num_samples);
|
|
|
break;
|
|
|
|
|
@@ -867,12 +867,12 @@ void ConvertAudioToFloat(float *dst, const void *src, int num_samples, SDL_Audio
|
|
|
break;
|
|
|
|
|
|
case SDL_AUDIO_S32 ^ SDL_AUDIO_MASK_BIG_ENDIAN:
|
|
|
- SDL_Convert_Swap32((Uint32*) dst, (const Uint32*) src, num_samples);
|
|
|
+ SDL_Convert_Swap32((Uint32 *)dst, (const Uint32 *)src, num_samples);
|
|
|
SDL_Convert_S32_to_F32(dst, (const Sint32 *) dst, num_samples);
|
|
|
break;
|
|
|
|
|
|
case SDL_AUDIO_F32 ^ SDL_AUDIO_MASK_BIG_ENDIAN:
|
|
|
- SDL_Convert_Swap32((Uint32*) dst, (const Uint32*) src, num_samples);
|
|
|
+ SDL_Convert_Swap32((Uint32 *)dst, (const Uint32 *)src, num_samples);
|
|
|
break;
|
|
|
|
|
|
default: SDL_assert(!"Unexpected audio format!"); break;
|
|
@@ -896,7 +896,7 @@ void ConvertAudioFromFloat(void *dst, const float *src, int num_samples, SDL_Aud
|
|
|
|
|
|
case SDL_AUDIO_S16 ^ SDL_AUDIO_MASK_BIG_ENDIAN:
|
|
|
SDL_Convert_F32_to_S16((Sint16 *) dst, src, num_samples);
|
|
|
- SDL_Convert_Swap16((Uint16*) dst, (const Uint16*) dst, num_samples);
|
|
|
+ SDL_Convert_Swap16((Uint16 *)dst, (const Uint16 *)dst, num_samples);
|
|
|
break;
|
|
|
|
|
|
case SDL_AUDIO_S32:
|
|
@@ -905,22 +905,22 @@ void ConvertAudioFromFloat(void *dst, const float *src, int num_samples, SDL_Aud
|
|
|
|
|
|
case SDL_AUDIO_S32 ^ SDL_AUDIO_MASK_BIG_ENDIAN:
|
|
|
SDL_Convert_F32_to_S32((Sint32 *) dst, src, num_samples);
|
|
|
- SDL_Convert_Swap32((Uint32*) dst, (const Uint32*) dst, num_samples);
|
|
|
+ SDL_Convert_Swap32((Uint32 *)dst, (const Uint32 *)dst, num_samples);
|
|
|
break;
|
|
|
|
|
|
case SDL_AUDIO_F32 ^ SDL_AUDIO_MASK_BIG_ENDIAN:
|
|
|
- SDL_Convert_Swap32((Uint32*) dst, (const Uint32*) src, num_samples);
|
|
|
+ SDL_Convert_Swap32((Uint32 *)dst, (const Uint32 *)src, num_samples);
|
|
|
break;
|
|
|
|
|
|
default: SDL_assert(!"Unexpected audio format!"); break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void ConvertAudioSwapEndian(void* dst, const void* src, int num_samples, int bitsize)
|
|
|
+void ConvertAudioSwapEndian(void *dst, const void *src, int num_samples, int bitsize)
|
|
|
{
|
|
|
switch (bitsize) {
|
|
|
- case 16: SDL_Convert_Swap16((Uint16*) dst, (const Uint16*) src, num_samples); break;
|
|
|
- case 32: SDL_Convert_Swap32((Uint32*) dst, (const Uint32*) src, num_samples); break;
|
|
|
+ case 16: SDL_Convert_Swap16((Uint16 *)dst, (const Uint16 *)src, num_samples); break;
|
|
|
+ case 32: SDL_Convert_Swap32((Uint32 *)dst, (const Uint32 *)src, num_samples); break;
|
|
|
default: SDL_assert(!"Unexpected audio format!"); break;
|
|
|
}
|
|
|
}
|