On 09/21/2012 12:33 PM, Aurelien Jarno wrote: > +static void gen_sar(TCGv dest, TCGv t0, TCGv t1) > +{ > + TCGv tmp1, tmp2, tmp3; > + tmp1 = tcg_temp_new_i32(); > + tcg_gen_andi_i32(tmp1, t1, 0xff); > + tmp2 = tcg_const_i32(0x1f); > + tmp3 = tcg_const_i32(0); > + tcg_gen_movcond_i32(TCG_COND_GTU, tmp1, tmp1, tmp2, tmp2, tmp1); > + tcg_temp_free_i32(tmp3); > + tcg_temp_free_i32(tmp2); > + tcg_gen_andi_i32(tmp1, tmp1, 0x1f); > + tcg_gen_sar_i32(dest, t0, tmp1); > + tcg_temp_free_i32(tmp1); > +}
tmp3 is unused in this version. r~