diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2020-09-06 17:33:18 -0700 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2021-01-13 08:39:08 -1000 |
commit | 0b4286dd15e2bcaf2aa53dfac0fb3103690f5a34 (patch) | |
tree | 0270104ef9f39141c70f5dce2c51226badd3c1bd /tcg/optimize.c | |
parent | 8fe35e0444be88de4e3ab80a2a0e210a1f6d663d (diff) | |
download | qemu-0b4286dd15e2bcaf2aa53dfac0fb3103690f5a34.zip qemu-0b4286dd15e2bcaf2aa53dfac0fb3103690f5a34.tar.gz qemu-0b4286dd15e2bcaf2aa53dfac0fb3103690f5a34.tar.bz2 |
tcg: Convert tcg_gen_dupi_vec to TCG_CONST
Because we now store uint64_t in TCGTemp, we can now always
store the full 64-bit duplicate immediate. So remove the
difference between 32- and 64-bit hosts.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'tcg/optimize.c')
-rw-r--r-- | tcg/optimize.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/tcg/optimize.c b/tcg/optimize.c index bda727d..dbb03ef 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1120,11 +1120,10 @@ void tcg_optimize(TCGContext *s) case INDEX_op_dup2_vec: assert(TCG_TARGET_REG_BITS == 32); if (arg_is_const(op->args[1]) && arg_is_const(op->args[2])) { - tmp = arg_info(op->args[1])->val; - if (tmp == arg_info(op->args[2])->val) { - tcg_opt_gen_movi(s, &temps_used, op, op->args[0], tmp); - break; - } + tcg_opt_gen_movi(s, &temps_used, op, op->args[0], + deposit64(arg_info(op->args[1])->val, 32, 32, + arg_info(op->args[2])->val)); + break; } else if (args_are_copies(op->args[1], op->args[2])) { op->opc = INDEX_op_dup_vec; TCGOP_VECE(op) = MO_32; |