summaryrefslogtreecommitdiff
path: root/target-arm
diff options
context:
space:
mode:
authorJuha Riihimäki <juha.riihimaki@nokia.com>2010-02-05 15:52:29 +0000
committerAurelien Jarno <aurelien@aurel32.net>2010-02-28 19:30:56 +0100
commit30d11a2a01747ff7d811120528e44046f0fd16b2 (patch)
tree7c865c12ca67d7a028c73e460c5e0785b58bdc41 /target-arm
parent79b0e534c0378fa6c96b0489216b17a99782a671 (diff)
downloadqemu-30d11a2a01747ff7d811120528e44046f0fd16b2.tar.gz
target-arm: neon vshll instruction fix
implementation only widened the 32bit source vector elements into a 64bit destination vector but forgot to perform the actual shifting operation. Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com> Signed-off-by: Riku Voipio <riku.voipio@nokia.com> Acked-by: Laurent Desnogues <laurent.desnogues@gmail.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'target-arm')
-rw-r--r--target-arm/translate.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/target-arm/translate.c b/target-arm/translate.c
index cac157d2c1..9607aaeaa3 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -5438,6 +5438,7 @@ static int disas_neon_data_insn(CPUState * env, DisasContext *s, uint32_t insn)
if (pass == 1)
tmp = tmp2;
gen_neon_widen(cpu_V0, tmp, size, 1);
+ tcg_gen_shli_i64(cpu_V0, cpu_V0, 8 << size);
neon_store_reg64(cpu_V0, rd + pass);
}
break;