Commit bb7e729397dc6e6f3147235feb8cda3b229355b0
1 parent
a013cc65
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
Showing
1 changed file
with
3 additions
and
35 deletions
hw/apic.c
| ... | ... | @@ -20,7 +20,7 @@ |
| 20 | 20 | #include "hw.h" |
| 21 | 21 | #include "pc.h" |
| 22 | 22 | #include "qemu-timer.h" |
| 23 | -#include "osdep.h" | |
| 23 | +#include "host-utils.h" | |
| 24 | 24 | |
| 25 | 25 | //#define DEBUG_APIC |
| 26 | 26 | //#define DEBUG_IOAPIC |
| ... | ... | @@ -108,45 +108,13 @@ static void apic_update_irq(APICState *s); |
| 108 | 108 | /* Find first bit starting from msb */ |
| 109 | 109 | static int fls_bit(uint32_t value) |
| 110 | 110 | { |
| 111 | -#if QEMU_GNUC_PREREQ(3, 4) | |
| 112 | - return 31 - __builtin_clz(value); | |
| 113 | -#else | |
| 114 | - unsigned int ret = 0; | |
| 115 | - | |
| 116 | - if (value > 0xffff) | |
| 117 | - value >>= 16, ret = 16; | |
| 118 | - if (value > 0xff) | |
| 119 | - value >>= 8, ret += 8; | |
| 120 | - if (value > 0xf) | |
| 121 | - value >>= 4, ret += 4; | |
| 122 | - if (value > 0x3) | |
| 123 | - value >>= 2, ret += 2; | |
| 124 | - return ret + (value >> 1); | |
| 125 | -#endif | |
| 111 | + return 31 - clz32(value); | |
| 126 | 112 | } |
| 127 | 113 | |
| 128 | 114 | /* Find first bit starting from lsb */ |
| 129 | 115 | static int ffs_bit(uint32_t value) |
| 130 | 116 | { |
| 131 | -#if QEMU_GNUC_PREREQ(3, 4) | |
| 132 | - return __builtin_ffs(value) - 1; | |
| 133 | -#else | |
| 134 | - unsigned int ret = 0; | |
| 135 | - | |
| 136 | - if (!value) | |
| 137 | - return 0; | |
| 138 | - if (!(value & 0xffff)) | |
| 139 | - value >>= 16, ret = 16; | |
| 140 | - if (!(value & 0xff)) | |
| 141 | - value >>= 8, ret += 8; | |
| 142 | - if (!(value & 0xf)) | |
| 143 | - value >>= 4, ret += 4; | |
| 144 | - if (!(value & 0x3)) | |
| 145 | - value >>= 2, ret += 2; | |
| 146 | - if (!(value & 0x1)) | |
| 147 | - ret++; | |
| 148 | - return ret; | |
| 149 | -#endif | |
| 117 | + return ctz32(value); | |
| 150 | 118 | } |
| 151 | 119 | |
| 152 | 120 | static inline void set_bit(uint32_t *tab, int index) | ... | ... |