diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2020-03-31 05:43:23 -0700 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2021-01-13 08:39:08 -1000 |
commit | 0a6a8bc8ebfe5ae2a3f18ef48b92a74bc2df2f96 (patch) | |
tree | 489ac60019d091f02f9c8b0fcc092827c5185b1f /tcg/tcg.c | |
parent | 45240eed4f064576d589ea60ebadf3c11d7ab891 (diff) |
tcg: Use tcg_out_dupi_vec from temp_load
Having dupi pass though movi is confusing and arguably wrong.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'tcg/tcg.c')
-rw-r--r-- | tcg/tcg.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -3387,7 +3387,11 @@ static void temp_load(TCGContext *s, TCGTemp *ts, TCGRegSet desired_regs, case TEMP_VAL_CONST: reg = tcg_reg_alloc(s, desired_regs, allocated_regs, preferred_regs, ts->indirect_base); - tcg_out_movi(s, ts->type, reg, ts->val); + if (ts->type <= TCG_TYPE_I64) { + tcg_out_movi(s, ts->type, reg, ts->val); + } else { + tcg_out_dupi_vec(s, ts->type, reg, ts->val); + } ts->mem_coherent = 0; break; case TEMP_VAL_MEM: |