It has been mostly replaced by tcg_gen_ext_tl(), other than for a single appearance in gen_op_j_ecx(). No need to have a separate function.
Signed-off-by: Paolo Bonzini <[email protected]> --- target/i386/tcg/translate.c | 22 ++++++++-------------- target/i386/tcg/emit.c.inc | 4 ---- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c index d1791550772..70f9bb42209 100644 --- a/target/i386/tcg/translate.c +++ b/target/i386/tcg/translate.c @@ -640,23 +640,17 @@ static inline void gen_string_movl_A0_EDI(DisasContext *s) gen_lea_v_seg(s, cpu_regs[R_EDI], R_ES, -1); } -static TCGv gen_ext_tl(TCGv dst, TCGv src, MemOp size, bool sign) -{ - if (size == MO_TL) { - return src; - } - if (!dst) { - dst = tcg_temp_new(); - } - tcg_gen_ext_tl(dst, src, size | (sign ? MO_SIGN : 0)); - return dst; -} - static void gen_op_j_ecx(DisasContext *s, TCGCond cond, TCGLabel *label1) { - TCGv tmp = gen_ext_tl(NULL, cpu_regs[R_ECX], s->aflag, false); + TCGv cmpval; + if (s->aflag == MO_TL) { + cmpval = cpu_regs[R_ECX]; + } else { + cmpval = tcg_temp_new(); + tcg_gen_ext_tl(cmpval, cpu_regs[R_ECX], s->aflag); + } - tcg_gen_brcondi_tl(cond, tmp, 0, label1); + tcg_gen_brcondi_tl(cond, cmpval, 0, label1); } static inline void gen_op_jz_ecx(DisasContext *s, TCGLabel *label1) diff --git a/target/i386/tcg/emit.c.inc b/target/i386/tcg/emit.c.inc index 968abd47a73..c83ab809408 100644 --- a/target/i386/tcg/emit.c.inc +++ b/target/i386/tcg/emit.c.inc @@ -1686,10 +1686,6 @@ static void gen_CMPccXADD(DisasContext *s, X86DecodedInsn *decode) ot_full |= MO_SIGN; } - /* - * cmpv will be moved to cc_src *after* cpu_regs[] is written back, so use - * tcg_gen_ext_tl instead of gen_ext_tl. - */ tcg_gen_ext_tl(cmpv, cpu_regs[decode->op[1].n], ot_full); /* -- 2.55.0
