[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] target/arm: Fix broken VQADD and VQSUB causing abor
From: |
Torbjorn SVENSSON |
Subject: |
[Qemu-devel] [PATCH] target/arm: Fix broken VQADD and VQSUB causing abort |
Date: |
Fri, 17 May 2019 15:34:55 +0000 |
In commit 89e68b575e138d0af1435f11a8ffcd8779c237bd, the handling of
VQADD and VQSUB was changed for Cortex-A and the new handling does
not return properly after calling tcg_gen_gvec_4(), thus the code
after is executed and that does not know about the VQADD or VQSUB
instructions and calls abort.
Detected running GCC testsuite for Cortex-A7 and executing the tests
in QEMU using Cortex-A15 since Cortex-A7 and Cortex-A15 have similar
instruction set.
Signed-off-by: Torbjörn SVENSSON <address@hidden>
---
target/arm/translate.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/target/arm/translate.c b/target/arm/translate.c
index dd053c80d6..298c262825 100644
--- a/target/arm/translate.c
+++ b/target/arm/translate.c
@@ -6598,13 +6598,13 @@ static int disas_neon_data_insn(DisasContext *s,
uint32_t insn)
tcg_gen_gvec_4(rd_ofs, offsetof(CPUARMState, vfp.qc),
rn_ofs, rm_ofs, vec_size, vec_size,
(u ? uqadd_op : sqadd_op) + size);
- break;
+ return 0;
case NEON_3R_VQSUB:
tcg_gen_gvec_4(rd_ofs, offsetof(CPUARMState, vfp.qc),
rn_ofs, rm_ofs, vec_size, vec_size,
(u ? uqsub_op : sqsub_op) + size);
- break;
+ return 0;
case NEON_3R_VMUL: /* VMUL */
if (u) {
--
2.18.0
- [Qemu-devel] [PATCH] target/arm: Fix broken VQADD and VQSUB causing abort,
Torbjorn SVENSSON <=