On Mon, Sep 17, 2012 at 08:36:31AM -0700, Richard Henderson wrote: > On 09/16/2012 04:08 PM, Aurelien Jarno wrote: > > + tcg_gen_setcondi_i32(TCG_COND_GE, tmp2, tmp1, 32); \ > > + tcg_gen_andi_i32(tmp1, tmp1, 0x1f); \ > > + tcg_gen_##name##_i32(dest, t0, tmp1); \ > > + tcg_temp_free_i32(tmp1); \ > > + tcg_gen_subi_i32(tmp2, tmp2, 1); \ > > + tcg_gen_and_i32(dest, dest, tmp2); \ > > Ought I revive my movcond patch? > > Surely you can agree it's much more natural to write this > as a conditional move of zero than playing masking games. >
I agree it's more natural, that said in that case it doesn't spare that many instructions, and I am still not sure we want to introduce such a TCG op. What is important is to avoid helpers and branches which are really killing the performances. If you insist, maybe we can just add a movcond op that uses setcond, so it makes the code more readable? We introduced setcond a lot of time ago, and there are still plenty of places where it's not used. We can get higher performances already by fixing that. -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurel...@aurel32.net http://www.aurel32.net