aboutsummaryrefslogtreecommitdiffstats
path: root/alc
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2020-10-13 01:21:44 -0700
committerChris Robinson <[email protected]>2020-10-13 01:21:44 -0700
commit303ca3af72aa7aecc25d94690f3886085c5c6e5b (patch)
tree05c0a6626b7884a76d181c8972d04f69800c2ece /alc
parent45ff10fb4d847662ec7d1048f7e740c0ca55cf27 (diff)
Use inline functions for popcnt and ctz instead of macros
Diffstat (limited to 'alc')
-rw-r--r--alc/alc.cpp19
-rw-r--r--alc/backends/base.cpp2
-rw-r--r--alc/backends/wasapi.cpp2
-rw-r--r--alc/converter.cpp2
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