summary refs log tree commit diff stats
diff options
context:
space:
mode:
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-10-12 20:16:03 +0000
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-10-12 20:16:03 +0000
commitbb7e729397dc6e6f3147235feb8cda3b229355b0 (patch)
tree18604385474b11f2fd0c8220fdd4b6d9003ed70c
parenta013cc65933eb4ba51f58883cae5e362fd56ab46 (diff)
downloadfocaccia-qemu-bb7e729397dc6e6f3147235feb8cda3b229355b0.tar.gz
focaccia-qemu-bb7e729397dc6e6f3147235feb8cda3b229355b0.zip
hw/apic.c: use functions from host-utils.h
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5469 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--hw/apic.c38
1 files changed, 3 insertions, 35 deletions
diff --git a/hw/apic.c b/hw/apic.c
index 762852e90f..a2915f8121 100644
--- a/hw/apic.c
+++ b/hw/apic.c
@@ -20,7 +20,7 @@
 #include "hw.h"
 #include "pc.h"
 #include "qemu-timer.h"
-#include "osdep.h"
+#include "host-utils.h"
 
 //#define DEBUG_APIC
 //#define DEBUG_IOAPIC
@@ -108,45 +108,13 @@ static void apic_update_irq(APICState *s);
 /* Find first bit starting from msb */
 static int fls_bit(uint32_t value)
 {
-#if QEMU_GNUC_PREREQ(3, 4)
-    return 31 - __builtin_clz(value);
-#else
-    unsigned int ret = 0;
-
-    if (value > 0xffff)
-        value >>= 16, ret = 16;
-    if (value > 0xff)
-        value >>= 8, ret += 8;
-    if (value > 0xf)
-        value >>= 4, ret += 4;
-    if (value > 0x3)
-        value >>= 2, ret += 2;
-    return ret + (value >> 1);
-#endif
+    return 31 - clz32(value);
 }
 
 /* Find first bit starting from lsb */
 static int ffs_bit(uint32_t value)
 {
-#if QEMU_GNUC_PREREQ(3, 4)
-    return __builtin_ffs(value) - 1;
-#else
-    unsigned int ret = 0;
-
-    if (!value)
-        return 0;
-    if (!(value & 0xffff))
-        value >>= 16, ret = 16;
-    if (!(value & 0xff))
-        value >>= 8, ret += 8;
-    if (!(value & 0xf))
-        value >>= 4, ret += 4;
-    if (!(value & 0x3))
-        value >>= 2, ret += 2;
-    if (!(value & 0x1))
-        ret++;
-    return ret;
-#endif
+    return ctz32(value);
 }
 
 static inline void set_bit(uint32_t *tab, int index)