OSDN Git Service

target-i386: Inline bitops_flsl
authorRichard Henderson <rth@twiddle.net>
Thu, 14 Feb 2013 01:47:40 +0000 (17:47 -0800)
committerBlue Swirl <blauwirbel@gmail.com>
Sat, 16 Feb 2013 11:12:29 +0000 (11:12 +0000)
Use clz32 directly.  Which makes slightly more sense given
that the input is type "int" and not type "long".

Signed-off-by: Richard Henderson <rth@twiddle.net>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
target-i386/topology.h

index 24ed525..07a6c5f 100644 (file)
@@ -52,10 +52,8 @@ typedef uint32_t apic_id_t;
 static unsigned apicid_bitwidth_for_count(unsigned count)
 {
     g_assert(count >= 1);
-    if (count == 1) {
-        return 0;
-    }
-    return bitops_flsl(count - 1) + 1;
+    count -= 1;
+    return count ? 32 - clz32(count) : 0;
 }
 
 /* Bit width of the SMT_ID (thread ID) field on the APIC ID