diff options
author | Richard Henderson | 2020-11-02 17:52:15 +0100 |
---|---|---|
committer | Peter Maydell | 2020-11-02 17:52:15 +0100 |
commit | 8aab18a2c5209e4e48998a61fbc2d89f374331ed (patch) | |
tree | 9f40086106ebe89fc36ccaeac45f7319bb5e0398 /target/arm/translate.c | |
parent | target/arm: Simplify do_long_3d and do_2scalar_long (diff) | |
download | qemu-8aab18a2c5209e4e48998a61fbc2d89f374331ed.tar.gz qemu-8aab18a2c5209e4e48998a61fbc2d89f374331ed.tar.xz qemu-8aab18a2c5209e4e48998a61fbc2d89f374331ed.zip |
target/arm: Improve do_prewiden_3d
We can use proper widening loads to extend 32-bit inputs,
and skip the "widenfn" step.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20201030022618.785675-12-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target/arm/translate.c')
-rw-r--r-- | target/arm/translate.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/target/arm/translate.c b/target/arm/translate.c index 7611c1f0f1..29ea1eb781 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -1183,6 +1183,12 @@ static void read_neon_element64(TCGv_i64 dest, int reg, int ele, MemOp memop) long off = neon_element_offset(reg, ele, memop); switch (memop) { + case MO_SL: + tcg_gen_ld32s_i64(dest, cpu_env, off); + break; + case MO_UL: + tcg_gen_ld32u_i64(dest, cpu_env, off); + break; case MO_Q: tcg_gen_ld_i64(dest, cpu_env, off); break; |