target-microblaze: Use clz opcode
authorRichard Henderson <rth@twiddle.net>
Wed, 16 Nov 2016 09:58:52 +0000 (10:58 +0100)
committerRichard Henderson <rth@twiddle.net>
Tue, 10 Jan 2017 16:06:11 +0000 (08:06 -0800)
Signed-off-by: Richard Henderson <rth@twiddle.net>
target/microblaze/helper.h
target/microblaze/op_helper.c
target/microblaze/translate.c

index bd13826de09fc0478d2d5a9403f6fd3670d410ec..71a6c0858d73f8517ef8bf65a41bb44b981933e8 100644 (file)
@@ -3,7 +3,6 @@ DEF_HELPER_1(debug, void, env)
 DEF_HELPER_FLAGS_3(carry, TCG_CALL_NO_RWG_SE, i32, i32, i32, i32)
 DEF_HELPER_2(cmp, i32, i32, i32)
 DEF_HELPER_2(cmpu, i32, i32, i32)
-DEF_HELPER_FLAGS_1(clz, TCG_CALL_NO_RWG_SE, i32, i32)
 
 DEF_HELPER_3(divs, i32, env, i32, i32)
 DEF_HELPER_3(divu, i32, env, i32, i32)
index 4a856e620471efaa9a7820f90401cd84afb7c762..1e07e21c1c0347d1ebb997d488616879b74b1ca9 100644 (file)
@@ -145,11 +145,6 @@ uint32_t helper_cmpu(uint32_t a, uint32_t b)
     return t;
 }
 
-uint32_t helper_clz(uint32_t t0)
-{
-    return clz32(t0);
-}
-
 uint32_t helper_carry(uint32_t a, uint32_t b, uint32_t cf)
 {
     return compute_carry(a, b, cf);
index de2090ac718efd2474cedd11442dbc0eaa07a342..0bb609513c8a897a0b25cafbbe2625dbfbdebfee 100644 (file)
@@ -768,7 +768,7 @@ static void dec_bit(DisasContext *dc)
                 t_gen_raise_exception(dc, EXCP_HW_EXCP);
             }
             if (dc->cpu->env.pvr.regs[2] & PVR2_USE_PCMP_INSTR) {
-                gen_helper_clz(cpu_R[dc->rd], cpu_R[dc->ra]);
+                tcg_gen_clzi_i32(cpu_R[dc->rd], cpu_R[dc->ra], 32);
             }
             break;
         case 0x1e0: