]> Git Repo - qemu.git/commitdiff
target-xtensa: Use clrsb helper
authorRichard Henderson <[email protected]>
Wed, 16 Nov 2016 16:38:10 +0000 (17:38 +0100)
committerRichard Henderson <[email protected]>
Tue, 10 Jan 2017 16:47:48 +0000 (08:47 -0800)
Signed-off-by: Richard Henderson <[email protected]>
target/xtensa/translate.c

index 5c719a41814203b14d68328cab5d8fde279e5eab..5a93705face6d3a7e1994f6088614575d6762a39 100644 (file)
@@ -1372,16 +1372,7 @@ static void disas_xtensa_insn(CPUXtensaState *env, DisasContext *dc)
                 case 14: /*NSAu*/
                     HAS_OPTION(XTENSA_OPTION_MISC_OP_NSA);
                     if (gen_window_check2(dc, RRR_S, RRR_T)) {
-                        TCGv_i32 t0 = tcg_temp_new_i32();
-
-                        /* if (v & 0x80000000) v = ~v; */
-                        tcg_gen_sari_i32(t0, cpu_R[RRR_S], 31);
-                        tcg_gen_xor_i32(t0, t0, cpu_R[RRR_S]);
-
-                        /* r = (v ? clz(v) : 32) - 1; */
-                        tcg_gen_clzi_i32(t0, t0, 32);
-                        tcg_gen_subi_i32(cpu_R[RRR_T], t0, 1);
-                        tcg_temp_free_i32(t0);
+                        tcg_gen_clrsb_i32(cpu_R[RRR_T], cpu_R[RRR_S]);
                     }
                     break;
 
This page took 0.029689 seconds and 4 git commands to generate.