aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/mixer_sse.c
diff options
context:
space:
mode:
Diffstat (limited to 'Alc/mixer_sse.c')
-rw-r--r--Alc/mixer_sse.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/Alc/mixer_sse.c b/Alc/mixer_sse.c
index 68786573..bd7928e4 100644
--- a/Alc/mixer_sse.c
+++ b/Alc/mixer_sse.c
@@ -16,6 +16,7 @@ const ALfloat *Resample_bsinc32_SSE(const InterpState *state, const ALfloat *res
ALsizei frac, ALint increment, ALfloat *restrict dst,
ALsizei dstlen)
{
+ const ALfloat *filter = state->bsinc.filter;
const __m128 sf4 = _mm_set1_ps(state->bsinc.sf);
const ALsizei m = state->bsinc.m;
const ALfloat *fil, *scd, *phd, *spd;
@@ -32,10 +33,10 @@ const ALfloat *Resample_bsinc32_SSE(const InterpState *state, const ALfloat *res
pf = (frac & ((1<<FRAC_PHASE_BITDIFF)-1)) * (1.0f/(1<<FRAC_PHASE_BITDIFF));
#undef FRAC_PHASE_BITDIFF
- fil = ASSUME_ALIGNED(state->bsinc.coeffs[pi].filter, 16);
- scd = ASSUME_ALIGNED(state->bsinc.coeffs[pi].scDelta, 16);
- phd = ASSUME_ALIGNED(state->bsinc.coeffs[pi].phDelta, 16);
- spd = ASSUME_ALIGNED(state->bsinc.coeffs[pi].spDelta, 16);
+ fil = ASSUME_ALIGNED(filter + m*pi*4, 16);
+ scd = ASSUME_ALIGNED(fil + m, 16);
+ phd = ASSUME_ALIGNED(scd + m, 16);
+ spd = ASSUME_ALIGNED(phd + m, 16);
// Apply the scale and phase interpolated filter.
r4 = _mm_setzero_ps();