diff --git a/qemu/tcg/optimize.c b/qemu/tcg/optimize.c index 39900526..b1a4ffda 100644 --- a/qemu/tcg/optimize.c +++ b/qemu/tcg/optimize.c @@ -235,12 +235,6 @@ static void tcg_opt_gen_mov(TCGContext *s, TCGOp *op, TCGArg *args, } struct tcg_temp_info *temps = s->temps2; - - if (temp_is_const(s, src)) { - tcg_opt_gen_movi(s, op, args, dst, temps[src].val); - return; - } - TCGOpcode new_op = op_to_mov(s, op->opc); tcg_target_ulong mask; @@ -254,14 +248,13 @@ static void tcg_opt_gen_mov(TCGContext *s, TCGOp *op, TCGArg *args, } temps[dst].mask = mask; - assert(!temp_is_const(s, src)); - if (s->temps[src].type == s->temps[dst].type) { temps[dst].next_copy = temps[src].next_copy; temps[dst].prev_copy = src; temps[temps[dst].next_copy].prev_copy = dst; temps[src].next_copy = dst; - temps[dst].is_const = false; + temps[dst].is_const = temps[src].is_const; + temps[dst].val = temps[src].val; } args[0] = dst;