diff options
author | Chris Robinson <chris.kcat@gmail.com> | 2021-02-16 05:49:09 -0800 |
---|---|---|
committer | Chris Robinson <chris.kcat@gmail.com> | 2021-02-16 05:49:09 -0800 |
commit | 8fd83778b8e5108f2bfd3157d7d1dccfc13bd272 (patch) | |
tree | 8c0beff7e27c124ac3672a78ccb8e1736cb832f0 /core/mixer/mixer_c.cpp | |
parent | 9665171ea3e8d4dbfe0270894ccad92cca6e18f8 (diff) |
Add some optimization hints
Diffstat (limited to 'core/mixer/mixer_c.cpp')
-rw-r--r-- | core/mixer/mixer_c.cpp | 14 |
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}; |