mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-17 18:48:36 +00:00
target/arm: Split out set_btype_raw
Common code for reset_btype and set_btype. Use tcg_constant_i32. 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
a4c88675d6
commit
667a4e6235
@ -128,29 +128,28 @@ static int get_a64_user_mem_index(DisasContext *s)
|
||||
return arm_to_core_mmu_idx(useridx);
|
||||
}
|
||||
|
||||
static void reset_btype(DisasContext *s)
|
||||
static void set_btype_raw(int val)
|
||||
{
|
||||
if (s->btype != 0) {
|
||||
TCGv_i32 zero = tcg_const_i32(0);
|
||||
tcg_gen_st_i32(zero, cpu_env, offsetof(CPUARMState, btype));
|
||||
tcg_temp_free_i32(zero);
|
||||
s->btype = 0;
|
||||
}
|
||||
tcg_gen_st_i32(tcg_constant_i32(val), cpu_env,
|
||||
offsetof(CPUARMState, btype));
|
||||
}
|
||||
|
||||
static void set_btype(DisasContext *s, int val)
|
||||
{
|
||||
TCGv_i32 tcg_val;
|
||||
|
||||
/* BTYPE is a 2-bit field, and 0 should be done with reset_btype. */
|
||||
tcg_debug_assert(val >= 1 && val <= 3);
|
||||
|
||||
tcg_val = tcg_const_i32(val);
|
||||
tcg_gen_st_i32(tcg_val, cpu_env, offsetof(CPUARMState, btype));
|
||||
tcg_temp_free_i32(tcg_val);
|
||||
set_btype_raw(val);
|
||||
s->btype = -1;
|
||||
}
|
||||
|
||||
static void reset_btype(DisasContext *s)
|
||||
{
|
||||
if (s->btype != 0) {
|
||||
set_btype_raw(0);
|
||||
s->btype = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void gen_a64_set_pc_im(uint64_t val)
|
||||
{
|
||||
tcg_gen_movi_i64(cpu_pc, val);
|
||||
|
Loading…
x
Reference in New Issue
Block a user