OSDN Git Service

hw/apic.c: use functions from host-utils.h
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 12 Oct 2008 20:16:03 +0000 (20:16 +0000)
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 12 Oct 2008 20:16:03 +0000 (20:16 +0000)
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5469 c046a42c-6fe2-441c-8c8c-71466251a162

hw/apic.c

index 762852e..a2915f8 100644 (file)
--- 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)