Commit cbbccffc7acebb3256f58b232b4f9d819f9596ec
1 parent
d78f3995
Fix ARM quadword VDUP (core register).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6857 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
6 additions
and
4 deletions
target-arm/translate.c
@@ -2783,10 +2783,12 @@ static int disas_vfp_insn(CPUState * env, DisasContext *s, uint32_t insn) | @@ -2783,10 +2783,12 @@ static int disas_vfp_insn(CPUState * env, DisasContext *s, uint32_t insn) | ||
2783 | } else if (size == 1) { | 2783 | } else if (size == 1) { |
2784 | gen_neon_dup_low16(tmp); | 2784 | gen_neon_dup_low16(tmp); |
2785 | } | 2785 | } |
2786 | - tmp2 = new_tmp(); | ||
2787 | - tcg_gen_mov_i32(tmp2, tmp); | ||
2788 | - neon_store_reg(rn, 0, tmp2); | ||
2789 | - neon_store_reg(rn, 1, tmp); | 2786 | + for (n = 0; n <= pass * 2; n++) { |
2787 | + tmp2 = new_tmp(); | ||
2788 | + tcg_gen_mov_i32(tmp2, tmp); | ||
2789 | + neon_store_reg(rn, n, tmp2); | ||
2790 | + } | ||
2791 | + neon_store_reg(rn, n, tmp); | ||
2790 | } else { | 2792 | } else { |
2791 | /* VMOV */ | 2793 | /* VMOV */ |
2792 | switch (size) { | 2794 | switch (size) { |