aboutsummaryrefslogtreecommitdiffstats
path: root/core/mixer/mixer_c.cpp
diff options
context:
space:
mode:
authorChris Robinson <chris.kcat@gmail.com>2021-02-16 05:49:09 -0800
committerChris Robinson <chris.kcat@gmail.com>2021-02-16 05:49:09 -0800
commit8fd83778b8e5108f2bfd3157d7d1dccfc13bd272 (patch)
tree8c0beff7e27c124ac3672a78ccb8e1736cb832f0 /core/mixer/mixer_c.cpp
parent9665171ea3e8d4dbfe0270894ccad92cca6e18f8 (diff)
Add some optimization hints
Diffstat (limited to 'core/mixer/mixer_c.cpp')
-rw-r--r--core/mixer/mixer_c.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/core/mixer/mixer_c.cpp b/core/mixer/mixer_c.cpp
index 6b9c4344..8c2c60c5 100644
--- a/core/mixer/mixer_c.cpp
+++ b/core/mixer/mixer_c.cpp
@@ -32,15 +32,16 @@ inline float do_cubic(const InterpState&, const float *RESTRICT vals, const uint
inline float do_bsinc(const InterpState &istate, const float *RESTRICT vals, const uint frac)
{
const size_t m{istate.bsinc.m};
+ ASSUME(m > 0);
// Calculate the phase index and factor.
const uint pi{frac >> FracPhaseBitDiff};
const float pf{static_cast<float>(frac & (FracPhaseDiffOne-1)) * (1.0f/FracPhaseDiffOne)};
- const float *fil{istate.bsinc.filter + m*pi*4};
- const float *phd{fil + m};
- const float *scd{phd + m};
- const float *spd{scd + m};
+ const float *RESTRICT fil{istate.bsinc.filter + m*pi*4};
+ const float *RESTRICT phd{fil + m};
+ const float *RESTRICT scd{phd + m};
+ const float *RESTRICT spd{scd + m};
// Apply the scale and phase interpolated filter.
float r{0.0f};
@@ -51,13 +52,14 @@ inline float do_bsinc(const InterpState &istate, const float *RESTRICT vals, con
inline float do_fastbsinc(const InterpState &istate, const float *RESTRICT vals, const uint frac)
{
const size_t m{istate.bsinc.m};
+ ASSUME(m > 0);
// Calculate the phase index and factor.
const uint pi{frac >> FracPhaseBitDiff};
const float pf{static_cast<float>(frac & (FracPhaseDiffOne-1)) * (1.0f/FracPhaseDiffOne)};
- const float *fil{istate.bsinc.filter + m*pi*4};
- const float *phd{fil + m};
+ const float *RESTRICT fil{istate.bsinc.filter + m*pi*4};
+ const float *RESTRICT phd{fil + m};
// Apply the phase interpolated filter.
float r{0.0f};