Use the shiny new clz helpers.
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 28 Oct 2007 01:44:40 +0000 (01:44 +0000)
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 28 Oct 2007 01:44:40 +0000 (01:44 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3464 c046a42c-6fe2-441c-8c8c-71466251a162

target-cris/helper.c
target-cris/op.c

index 98305605a18256b7e51b557cec96c6cc47ac3985..d719593269f8de70a7655acb7c2acb8f7ae85da5 100644 (file)
@@ -26,6 +26,7 @@
 #include "cpu.h"
 #include "mmu.h"
 #include "exec-all.h"
+#include "host-utils.h"
 
 #if defined(CONFIG_USER_ONLY)
 
@@ -134,8 +135,7 @@ void do_interrupt(CPUState *env)
                                        return;
                                }
 
-                               irqnum = 31 -
-                                       __builtin_clz(env->pending_interrupts);
+                               irqnum = 31 - clz32(env->pending_interrupts);
                                irqnum += 0x30;
                                ebp = env->pregs[SR_EBP];
                                isr = ldl_code(ebp + irqnum * 4);
index 3ce9888bc07e2d2b590191427f9313fbb40c855c..6e17719b6fd613e0d1011957d97a4a60f4a6505c 100644 (file)
@@ -18,6 +18,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #include "exec.h"
+#include "host-utils.h"
 
 #define REGNAME r0
 #define REG (env->regs[0])
@@ -1003,10 +1004,7 @@ void OPPROTO op_bound_T0_T1 (void)
 
 void OPPROTO op_lz_T0_T1 (void)
 {
-       if (T1 == 0)
-               T0 = 32;
-       else
-               T0 = __builtin_clz(T1);
+       T0 = clz32(T1);
        RETURN();
 }