diff --git a/audio/audio.c b/audio/audio.c
index ea6ae1b..aa9ea3e 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -112,23 +112,6 @@
 #endif
 };
 
-/* http://www.df.lth.se/~john_e/gems/gem002d.html */
-/* http://www.multi-platforms.com/Tips/PopCount.htm */
-uint32_t popcount (uint32_t u)
-{
-    u = ((u&0x55555555) + ((u>>1)&0x55555555));
-    u = ((u&0x33333333) + ((u>>2)&0x33333333));
-    u = ((u&0x0f0f0f0f) + ((u>>4)&0x0f0f0f0f));
-    u = ((u&0x00ff00ff) + ((u>>8)&0x00ff00ff));
-    u = ( u&0x0000ffff) + (u>>16);
-    return u;
-}
-
-inline uint32_t lsbindex (uint32_t u)
-{
-    return popcount ((u&-u)-1);
-}
-
 #ifdef AUDIO_IS_FLAWLESS_AND_NO_CHECKS_ARE_REQURIED
 #error No its not
 #else
diff --git a/audio/audio.h b/audio/audio.h
index fda2af3..dec86e5 100644
--- a/audio/audio.h
+++ b/audio/audio.h
@@ -147,9 +147,6 @@
     return (d + incr);
 }
 
-uint32_t popcount (uint32_t u);
-uint32_t lsbindex (uint32_t u);
-
 #ifdef __GNUC__
 #define audio_MIN(a, b) ( __extension__ ({      \
     __typeof (a) ta = a;                        \
diff --git a/audio/ossaudio.c b/audio/ossaudio.c
index f2385df..2cc3c6f 100644
--- a/audio/ossaudio.c
+++ b/audio/ossaudio.c
@@ -31,6 +31,7 @@
 #include <sys/soundcard.h>
 #endif
 #include "qemu-common.h"
+#include "host-utils.h"
 #include "qemu-char.h"
 #include "audio.h"
 
@@ -273,7 +274,7 @@
         goto err;
     }
 
-    mmmmssss = (req->nfrags << 16) | lsbindex (req->fragsize);
+    mmmmssss = (req->nfrags << 16) | ctz32 (req->fragsize);
     if (ioctl (fd, SNDCTL_DSP_SETFRAGMENT, &mmmmssss)) {
         oss_logerr2 (errno, typ, "Failed to set buffer length (%d, %d)\n",
                      req->nfrags, req->fragsize);
diff --git a/hw/sb16.c b/hw/sb16.c
index f6be267..a222e21 100644
--- a/hw/sb16.c
+++ b/hw/sb16.c
@@ -27,6 +27,7 @@
 #include "isa.h"
 #include "qdev.h"
 #include "qemu-timer.h"
+#include "host-utils.h"
 
 #define dolog(...) AUD_log ("sb16", __VA_ARGS__)
 
@@ -1092,8 +1093,8 @@
         {
             int dma, hdma;
 
-            dma = lsbindex (val & 0xf);
-            hdma = lsbindex (val & 0xf0);
+            dma = ctz32 (val & 0xf);
+            hdma = ctz32 (val & 0xf0);
             if (dma != s->dma || hdma != s->hdma) {
                 dolog (
                     "attempt to change DMA "
