diff mbox series

[1/2] target/arm: Make VQDMULL undefined when U=1

Message ID 20200408115953.1158-1-fredrik@strupe.net (mailing list archive)
State New, archived
Headers show
Series [1/2] target/arm: Make VQDMULL undefined when U=1 | expand

Commit Message

Fredrik Strupe April 8, 2020, 11:59 a.m. UTC
According to Arm ARM, VQDMULL is only valid when U=0, while having
U=1 is unallocated.

Signed-off-by: Fredrik Strupe <fredrik@strupe.net>
Fixes: 695272dcb976 ("target-arm: Handle UNDEF cases for Neon 3-regs-different-widths")
---
 target/arm/translate.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Peter Maydell April 30, 2020, 3:51 p.m. UTC | #1
On Wed, 8 Apr 2020 at 15:54, Fredrik Strupe <fredrik@strupe.net> wrote:
>
> According to Arm ARM, VQDMULL is only valid when U=0, while having
> U=1 is unallocated.
>
> Signed-off-by: Fredrik Strupe <fredrik@strupe.net>
> Fixes: 695272dcb976 ("target-arm: Handle UNDEF cases for Neon 3-regs-different-widths")
> ---

I'm going to apply this patch to target-arm.next because
my refactoring of Neon hasn't got to this group of insns
yet, so putting the fix into the tree is the easiest way
to remind me to handle it during the refactoring.

(The other patch is in code I've already refactored; I'm
planning to send out a series with that refactoring shortly.)

thanks
-- PMM
diff mbox series

Patch

diff --git a/target/arm/translate.c b/target/arm/translate.c
index 9f9f4e19e0..dfe9dbbcfd 100644
--- a/target/arm/translate.c
+++ b/target/arm/translate.c
@@ -5817,7 +5817,7 @@  static int disas_neon_data_insn(DisasContext *s, uint32_t insn)
                     {0, 0, 0, 0}, /* VMLSL */
                     {0, 0, 0, 9}, /* VQDMLSL */
                     {0, 0, 0, 0}, /* Integer VMULL */
-                    {0, 0, 0, 1}, /* VQDMULL */
+                    {0, 0, 0, 9}, /* VQDMULL */
                     {0, 0, 0, 0xa}, /* Polynomial VMULL */
                     {0, 0, 0, 7}, /* Reserved: always UNDEF */
                 };