diff options
author | Chris Robinson <[email protected]> | 2020-10-13 01:21:44 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2020-10-13 01:21:44 -0700 |
commit | 303ca3af72aa7aecc25d94690f3886085c5c6e5b (patch) | |
tree | 05c0a6626b7884a76d181c8972d04f69800c2ece /alc | |
parent | 45ff10fb4d847662ec7d1048f7e740c0ca55cf27 (diff) |
Use inline functions for popcnt and ctz instead of macros
Diffstat (limited to 'alc')
-rw-r--r-- | alc/alc.cpp | 19 | ||||
-rw-r--r-- | alc/backends/base.cpp | 2 | ||||
-rw-r--r-- | alc/backends/wasapi.cpp | 2 | ||||
-rw-r--r-- | alc/converter.cpp | 2 |
4 files changed, 10 insertions, 15 deletions
diff --git a/alc/alc.cpp b/alc/alc.cpp index 2b43ebf5..1170800d 100644 --- a/alc/alc.cpp +++ b/alc/alc.cpp @@ -2117,7 +2117,7 @@ static ALCenum UpdateDeviceParams(ALCdevice *device, const int *attrList) uint64_t usemask{~sublist.FreeMask}; while(usemask) { - ALsizei idx{CTZ64(usemask)}; + const ALsizei idx{CountTrailingZeros(usemask)}; ALeffectslot *slot{sublist.EffectSlots + idx}; usemask &= ~(1_u64 << idx); @@ -2140,7 +2140,7 @@ static ALCenum UpdateDeviceParams(ALCdevice *device, const int *attrList) uint64_t usemask{~sublist.FreeMask}; while(usemask) { - ALsizei idx{CTZ64(usemask)}; + const ALsizei idx{CountTrailingZeros(usemask)}; ALsource *source{sublist.Sources + idx}; usemask &= ~(1_u64 << idx); @@ -2282,22 +2282,19 @@ ALCdevice::~ALCdevice() size_t count{std::accumulate(BufferList.cbegin(), BufferList.cend(), size_t{0u}, [](size_t cur, const BufferSubList &sublist) noexcept -> size_t - { return cur + static_cast<ALuint>(POPCNT64(~sublist.FreeMask)); } - )}; + { return cur + static_cast<ALuint>(PopCount(~sublist.FreeMask)); })}; if(count > 0) WARN("%zu Buffer%s not deleted\n", count, (count==1)?"":"s"); count = std::accumulate(EffectList.cbegin(), EffectList.cend(), size_t{0u}, [](size_t cur, const EffectSubList &sublist) noexcept -> size_t - { return cur + static_cast<ALuint>(POPCNT64(~sublist.FreeMask)); } - ); + { return cur + static_cast<ALuint>(PopCount(~sublist.FreeMask)); }); if(count > 0) WARN("%zu Effect%s not deleted\n", count, (count==1)?"":"s"); count = std::accumulate(FilterList.cbegin(), FilterList.cend(), size_t{0u}, [](size_t cur, const FilterSubList &sublist) noexcept -> size_t - { return cur + static_cast<ALuint>(POPCNT64(~sublist.FreeMask)); } - ); + { return cur + static_cast<ALuint>(PopCount(~sublist.FreeMask)); }); if(count > 0) WARN("%zu Filter%s not deleted\n", count, (count==1)?"":"s"); @@ -2350,8 +2347,7 @@ ALCcontext::~ALCcontext() count = std::accumulate(mSourceList.cbegin(), mSourceList.cend(), size_t{0u}, [](size_t cur, const SourceSubList &sublist) noexcept -> size_t - { return cur + static_cast<ALuint>(POPCNT64(~sublist.FreeMask)); } - ); + { return cur + static_cast<ALuint>(PopCount(~sublist.FreeMask)); }); if(count > 0) WARN("%zu Source%s not deleted\n", count, (count==1)?"":"s"); mSourceList.clear(); @@ -2377,8 +2373,7 @@ ALCcontext::~ALCcontext() count = std::accumulate(mEffectSlotList.cbegin(), mEffectSlotList.cend(), size_t{0u}, [](size_t cur, const EffectSlotSubList &sublist) noexcept -> size_t - { return cur + static_cast<ALuint>(POPCNT64(~sublist.FreeMask)); } - ); + { return cur + static_cast<ALuint>(PopCount(~sublist.FreeMask)); }); if(count > 0) WARN("%zu AuxiliaryEffectSlot%s not deleted\n", count, (count==1)?"":"s"); mEffectSlotList.clear(); diff --git a/alc/backends/base.cpp b/alc/backends/base.cpp index 5c53e3b8..04fc4d64 100644 --- a/alc/backends/base.cpp +++ b/alc/backends/base.cpp @@ -183,7 +183,7 @@ void BackendBase::setChannelOrderFromWFXMask(ALuint chanmask) ALuint idx{0}; while(chanmask) { - const int bit{CTZ32(chanmask)}; + const int bit{CountTrailingZeros(chanmask)}; const ALuint mask{1u << bit}; chanmask &= ~mask; diff --git a/alc/backends/wasapi.cpp b/alc/backends/wasapi.cpp index d7b763c4..ba0d52d5 100644 --- a/alc/backends/wasapi.cpp +++ b/alc/backends/wasapi.cpp @@ -1641,7 +1641,7 @@ HRESULT WasapiCapture::resetProxy() if((InputType.dwChannelMask&SPEAKER_LOW_FREQUENCY)) { constexpr auto lfemask = MaskFromTopBits(SPEAKER_LOW_FREQUENCY); - const int lfeidx{POPCNT32(InputType.dwChannelMask&lfemask) - 1}; + const int lfeidx{PopCount(uint32_t{InputType.dwChannelMask&lfemask}) - 1}; chanmask &= ~(1u << lfeidx); } diff --git a/alc/converter.cpp b/alc/converter.cpp index b07e8619..6e5b2207 100644 --- a/alc/converter.cpp +++ b/alc/converter.cpp @@ -340,7 +340,7 @@ void ChannelConverter::convert(const void *src, float *dst, ALuint frames) const { if(mDstChans == DevFmtMono) { - const float scale{std::sqrt(1.0f / static_cast<float>(POPCNT32(mChanMask)))}; + const float scale{std::sqrt(1.0f / static_cast<float>(PopCount(mChanMask)))}; switch(mSrcType) { #define HANDLE_FMT(T) case T: Multi2Mono<T>(mChanMask, mSrcStep, scale, dst, src, frames); break |