target/arm: Simplify gen_sar
Use tcg_gen_umin_i32 instead of tcg_gen_movcond_i32. Use tcg_constant_i32 while we're at it. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
fe12080c5f
commit
099d1c2088
@ -568,12 +568,10 @@ GEN_SHIFT(shr)
|
||||
|
||||
static void gen_sar(TCGv_i32 dest, TCGv_i32 t0, TCGv_i32 t1)
|
||||
{
|
||||
TCGv_i32 tmp1, tmp2;
|
||||
tmp1 = tcg_temp_new_i32();
|
||||
TCGv_i32 tmp1 = tcg_temp_new_i32();
|
||||
|
||||
tcg_gen_andi_i32(tmp1, t1, 0xff);
|
||||
tmp2 = tcg_const_i32(0x1f);
|
||||
tcg_gen_movcond_i32(TCG_COND_GTU, tmp1, tmp1, tmp2, tmp2, tmp1);
|
||||
tcg_temp_free_i32(tmp2);
|
||||
tcg_gen_umin_i32(tmp1, tmp1, tcg_constant_i32(31));
|
||||
tcg_gen_sar_i32(dest, t0, tmp1);
|
||||
tcg_temp_free_i32(tmp1);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user