Use ctz64 in favor of ffsll
authorJan Kiszka <jan.kiszka@web.de>
Thu, 2 Jul 2009 07:11:37 +0000 (09:11 +0200)
committerBlue Swirl <blauwirbel@gmail.com>
Thu, 2 Jul 2009 17:07:08 +0000 (17:07 +0000)
Not all host platforms support ffsll.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
target-i386/machine.c

index 259302cb0e16f676225460d91c65b2afc3f7e6e9..2a72b017f0ae3834eed8ed4be2157fc83af54792 100644 (file)
@@ -2,6 +2,7 @@
 #include "hw/boards.h"
 #include "hw/pc.h"
 #include "hw/isa.h"
+#include "host-utils.h"
 
 #include "exec-all.h"
 #include "kvm.h"
@@ -148,9 +149,9 @@ void cpu_save(QEMUFile *f, void *opaque)
        to find it and save its number instead (-1 for none). */
     pending_irq = -1;
     for (i = 0; i < ARRAY_SIZE(env->interrupt_bitmap); i++) {
-        bit = ffsll(env->interrupt_bitmap[i]);
-        if (bit) {
-            pending_irq = i * 64 + bit - 1;
+        if (env->interrupt_bitmap[i]) {
+            bit = ctz64(env->interrupt_bitmap[i]);
+            pending_irq = i * 64 + bit;
             break;
         }
     }