target/arm: Drop tcg_temp_free from translator-m-nocp.c
Translators are no longer required to free tcg temporaries. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
659aed5fed
commit
fa03160f99
@ -91,7 +91,6 @@ static bool trans_VLLDM_VLSTM(DisasContext *s, arg_VLLDM_VLSTM *a)
|
||||
} else {
|
||||
gen_helper_v7m_vlstm(cpu_env, fptr);
|
||||
}
|
||||
tcg_temp_free_i32(fptr);
|
||||
|
||||
clear_eci_state(s);
|
||||
|
||||
@ -303,8 +302,6 @@ static void gen_branch_fpInactive(DisasContext *s, TCGCond cond,
|
||||
tcg_gen_andi_i32(fpca, fpca, R_V7M_CONTROL_FPCA_MASK);
|
||||
tcg_gen_or_i32(fpca, fpca, aspen);
|
||||
tcg_gen_brcondi_i32(tcg_invert_cond(cond), fpca, 0, label);
|
||||
tcg_temp_free_i32(aspen);
|
||||
tcg_temp_free_i32(fpca);
|
||||
}
|
||||
|
||||
static bool gen_M_fp_sysreg_write(DisasContext *s, int regno,
|
||||
@ -328,7 +325,6 @@ static bool gen_M_fp_sysreg_write(DisasContext *s, int regno,
|
||||
case ARM_VFP_FPSCR:
|
||||
tmp = loadfn(s, opaque, true);
|
||||
gen_helper_vfp_set_fpscr(cpu_env, tmp);
|
||||
tcg_temp_free_i32(tmp);
|
||||
gen_lookup_tb(s);
|
||||
break;
|
||||
case ARM_VFP_FPSCR_NZCVQC:
|
||||
@ -351,7 +347,6 @@ static bool gen_M_fp_sysreg_write(DisasContext *s, int regno,
|
||||
tcg_gen_andi_i32(fpscr, fpscr, ~FPCR_NZCV_MASK);
|
||||
tcg_gen_or_i32(fpscr, fpscr, tmp);
|
||||
store_cpu_field(fpscr, vfp.xregs[ARM_VFP_FPSCR]);
|
||||
tcg_temp_free_i32(tmp);
|
||||
break;
|
||||
}
|
||||
case ARM_VFP_FPCXT_NS:
|
||||
@ -400,8 +395,6 @@ static bool gen_M_fp_sysreg_write(DisasContext *s, int regno,
|
||||
tcg_gen_andi_i32(tmp, tmp, ~FPCR_NZCV_MASK);
|
||||
gen_helper_vfp_set_fpscr(cpu_env, tmp);
|
||||
s->base.is_jmp = DISAS_UPDATE_NOCHAIN;
|
||||
tcg_temp_free_i32(tmp);
|
||||
tcg_temp_free_i32(sfpa);
|
||||
break;
|
||||
}
|
||||
case ARM_VFP_VPR:
|
||||
@ -423,7 +416,6 @@ static bool gen_M_fp_sysreg_write(DisasContext *s, int regno,
|
||||
R_V7M_VPR_P0_SHIFT, R_V7M_VPR_P0_LENGTH);
|
||||
store_cpu_field(vpr, v7m.vpr);
|
||||
s->base.is_jmp = DISAS_UPDATE_NOCHAIN;
|
||||
tcg_temp_free_i32(tmp);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@ -491,7 +483,6 @@ static bool gen_M_fp_sysreg_read(DisasContext *s, int regno,
|
||||
tcg_gen_andi_i32(sfpa, control, R_V7M_CONTROL_SFPA_MASK);
|
||||
tcg_gen_shli_i32(sfpa, sfpa, 31 - R_V7M_CONTROL_SFPA_SHIFT);
|
||||
tcg_gen_or_i32(tmp, tmp, sfpa);
|
||||
tcg_temp_free_i32(sfpa);
|
||||
/*
|
||||
* Store result before updating FPSCR etc, in case
|
||||
* it is a memory write which causes an exception.
|
||||
@ -505,7 +496,6 @@ static bool gen_M_fp_sysreg_read(DisasContext *s, int regno,
|
||||
store_cpu_field(control, v7m.control[M_REG_S]);
|
||||
fpscr = load_cpu_field(v7m.fpdscr[M_REG_NS]);
|
||||
gen_helper_vfp_set_fpscr(cpu_env, fpscr);
|
||||
tcg_temp_free_i32(fpscr);
|
||||
lookup_tb = true;
|
||||
break;
|
||||
}
|
||||
@ -546,7 +536,6 @@ static bool gen_M_fp_sysreg_read(DisasContext *s, int regno,
|
||||
tcg_gen_andi_i32(sfpa, control, R_V7M_CONTROL_SFPA_MASK);
|
||||
tcg_gen_shli_i32(sfpa, sfpa, 31 - R_V7M_CONTROL_SFPA_SHIFT);
|
||||
tcg_gen_or_i32(tmp, tmp, sfpa);
|
||||
tcg_temp_free_i32(control);
|
||||
/* Store result before updating FPSCR, in case it faults */
|
||||
storefn(s, opaque, tmp, true);
|
||||
/* If SFPA is zero then set FPSCR from FPDSCR_NS */
|
||||
@ -554,9 +543,6 @@ static bool gen_M_fp_sysreg_read(DisasContext *s, int regno,
|
||||
tcg_gen_movcond_i32(TCG_COND_EQ, fpscr, sfpa, tcg_constant_i32(0),
|
||||
fpdscr, fpscr);
|
||||
gen_helper_vfp_set_fpscr(cpu_env, fpscr);
|
||||
tcg_temp_free_i32(sfpa);
|
||||
tcg_temp_free_i32(fpdscr);
|
||||
tcg_temp_free_i32(fpscr);
|
||||
break;
|
||||
}
|
||||
case ARM_VFP_VPR:
|
||||
@ -598,7 +584,6 @@ static void fp_sysreg_to_gpr(DisasContext *s, void *opaque, TCGv_i32 value,
|
||||
if (a->rt == 15) {
|
||||
/* Set the 4 flag bits in the CPSR */
|
||||
gen_set_nzcv(value);
|
||||
tcg_temp_free_i32(value);
|
||||
} else {
|
||||
store_reg(s, a->rt, value);
|
||||
}
|
||||
@ -666,7 +651,6 @@ static void fp_sysreg_to_memory(DisasContext *s, void *opaque, TCGv_i32 value,
|
||||
if (do_access) {
|
||||
gen_aa32_st_i32(s, value, addr, get_mem_index(s),
|
||||
MO_UL | MO_ALIGN | s->be_data);
|
||||
tcg_temp_free_i32(value);
|
||||
}
|
||||
|
||||
if (a->w) {
|
||||
@ -675,8 +659,6 @@ static void fp_sysreg_to_memory(DisasContext *s, void *opaque, TCGv_i32 value,
|
||||
tcg_gen_addi_i32(addr, addr, offset);
|
||||
}
|
||||
store_reg(s, a->rn, addr);
|
||||
} else {
|
||||
tcg_temp_free_i32(addr);
|
||||
}
|
||||
}
|
||||
|
||||
@ -717,8 +699,6 @@ static TCGv_i32 memory_to_fp_sysreg(DisasContext *s, void *opaque,
|
||||
tcg_gen_addi_i32(addr, addr, offset);
|
||||
}
|
||||
store_reg(s, a->rn, addr);
|
||||
} else {
|
||||
tcg_temp_free_i32(addr);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user