target/i386: Create eip_cur_tl
Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20221001140935.465607-24-richard.henderson@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
900cc7e536
commit
75ec746a07
@ -562,6 +562,11 @@ static TCGv eip_next_tl(DisasContext *s)
|
|||||||
return tcg_constant_tl(s->pc - s->cs_base);
|
return tcg_constant_tl(s->pc - s->cs_base);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static TCGv eip_cur_tl(DisasContext *s)
|
||||||
|
{
|
||||||
|
return tcg_constant_tl(s->base.pc_next - s->cs_base);
|
||||||
|
}
|
||||||
|
|
||||||
/* Compute SEG:REG into A0. SEG is selected from the override segment
|
/* Compute SEG:REG into A0. SEG is selected from the override segment
|
||||||
(OVR_SEG) and the default segment (DEF_SEG). OVR_SEG may be -1 to
|
(OVR_SEG) and the default segment (DEF_SEG). OVR_SEG may be -1 to
|
||||||
indicate no override. */
|
indicate no override. */
|
||||||
@ -6617,7 +6622,7 @@ static bool disas_insn(DisasContext *s, CPUState *cpu)
|
|||||||
offsetof(CPUX86State, segs[R_CS].selector));
|
offsetof(CPUX86State, segs[R_CS].selector));
|
||||||
tcg_gen_st16_i32(s->tmp2_i32, cpu_env,
|
tcg_gen_st16_i32(s->tmp2_i32, cpu_env,
|
||||||
offsetof(CPUX86State, fpcs));
|
offsetof(CPUX86State, fpcs));
|
||||||
tcg_gen_st_tl(tcg_constant_tl(s->base.pc_next - s->cs_base),
|
tcg_gen_st_tl(eip_cur_tl(s),
|
||||||
cpu_env, offsetof(CPUX86State, fpip));
|
cpu_env, offsetof(CPUX86State, fpip));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user