target/arm: Remove helper_double_saturate
Replace x = double_saturate(y) with x = add_saturate(y, y). There is no need for a separate more specialized helper. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-id: 20190807045335.1361-12-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
3cb3663715
commit
640581a06d
@ -6,7 +6,6 @@ DEF_HELPER_3(add_saturate, i32, env, i32, i32)
|
||||
DEF_HELPER_3(sub_saturate, i32, env, i32, i32)
|
||||
DEF_HELPER_3(add_usaturate, i32, env, i32, i32)
|
||||
DEF_HELPER_3(sub_usaturate, i32, env, i32, i32)
|
||||
DEF_HELPER_2(double_saturate, i32, env, s32)
|
||||
DEF_HELPER_FLAGS_2(sdiv, TCG_CALL_NO_RWG_SE, s32, s32, s32)
|
||||
DEF_HELPER_FLAGS_2(udiv, TCG_CALL_NO_RWG_SE, i32, i32, i32)
|
||||
DEF_HELPER_FLAGS_1(rbit, TCG_CALL_NO_RWG_SE, i32, i32)
|
||||
|
@ -135,21 +135,6 @@ uint32_t HELPER(sub_saturate)(CPUARMState *env, uint32_t a, uint32_t b)
|
||||
return res;
|
||||
}
|
||||
|
||||
uint32_t HELPER(double_saturate)(CPUARMState *env, int32_t val)
|
||||
{
|
||||
uint32_t res;
|
||||
if (val >= 0x40000000) {
|
||||
res = ~SIGNBIT;
|
||||
env->QF = 1;
|
||||
} else if (val <= (int32_t)0xc0000000) {
|
||||
res = SIGNBIT;
|
||||
env->QF = 1;
|
||||
} else {
|
||||
res = val << 1;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
uint32_t HELPER(add_usaturate)(CPUARMState *env, uint32_t a, uint32_t b)
|
||||
{
|
||||
uint32_t res = a + b;
|
||||
|
@ -8107,7 +8107,7 @@ static void disas_arm_insn(DisasContext *s, unsigned int insn)
|
||||
tmp = load_reg(s, rm);
|
||||
tmp2 = load_reg(s, rn);
|
||||
if (op1 & 2)
|
||||
gen_helper_double_saturate(tmp2, cpu_env, tmp2);
|
||||
gen_helper_add_saturate(tmp2, cpu_env, tmp2, tmp2);
|
||||
if (op1 & 1)
|
||||
gen_helper_sub_saturate(tmp, cpu_env, tmp, tmp2);
|
||||
else
|
||||
@ -9950,7 +9950,7 @@ static void disas_thumb2_insn(DisasContext *s, uint32_t insn)
|
||||
tmp = load_reg(s, rn);
|
||||
tmp2 = load_reg(s, rm);
|
||||
if (op & 1)
|
||||
gen_helper_double_saturate(tmp, cpu_env, tmp);
|
||||
gen_helper_add_saturate(tmp, cpu_env, tmp, tmp);
|
||||
if (op & 2)
|
||||
gen_helper_sub_saturate(tmp, cpu_env, tmp2, tmp);
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user