aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog8
-rw-r--r--gas/config/tc-arm.c6
-rw-r--r--gas/testsuite/gas/arm/mve-vmov-1.d25
-rw-r--r--gas/testsuite/gas/arm/mve-vmov-1.s6
-rw-r--r--gas/testsuite/gas/arm/mve-vorr.d400
-rw-r--r--opcodes/ChangeLog6
-rw-r--r--opcodes/arm-dis.c23
7 files changed, 272 insertions, 202 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index ff9b3e4..980d970 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-27 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+
+ * config/tc-arm.c (parse_neon_mov): Add check to accept vector
+ register to both the arguments in VMOV instruction.
+ * testsuite/gas/arm/mve-vmov-1.d: Modify.
+ * testsuite/gas/arm/mve-vmov-1.s: Likewise.
+ * testsuite/gas/arm/mve-vorr.d: Likewise.
+
2019-08-23 Nick Clifton <nickc@redhat.com>
* po/sv.po: Updated Swedish translation.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 27c6f0e..9a367ca 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -6743,8 +6743,10 @@ parse_neon_mov (char **str, int *which_operand)
inst.operands[i].present = 1;
}
}
- else if ((val = arm_typed_reg_parse (&ptr, REG_TYPE_NSDQ, &rtype,
- &optype)) != FAIL)
+ else if (((val = arm_typed_reg_parse (&ptr, REG_TYPE_NSDQ, &rtype,
+ &optype)) != FAIL)
+ || ((val = arm_typed_reg_parse (&ptr, REG_TYPE_MQ, &rtype,
+ &optype)) != FAIL))
{
/* Case 0: VMOV<c><q> <Qd>, <Qm>
Case 1: VMOV<c><q> <Dd>, <Dm>
diff --git a/gas/testsuite/gas/arm/mve-vmov-1.d b/gas/testsuite/gas/arm/mve-vmov-1.d
index 5f317d8..504b3e7 100644
--- a/gas/testsuite/gas/arm/mve-vmov-1.d
+++ b/gas/testsuite/gas/arm/mve-vmov-1.d
@@ -4154,3 +4154,28 @@ Disassembly of section .text:
[^>]*> ef80 0e74 vmov.i64 q0, #0x0000000000ff0000
[^>]*> ef80 0e72 vmov.i64 q0, #0x000000000000ff00
[^>]*> ef80 0e71 vmov.i64 q0, #0x00000000000000ff
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef2e e15e vmov q7, q7
diff --git a/gas/testsuite/gas/arm/mve-vmov-1.s b/gas/testsuite/gas/arm/mve-vmov-1.s
index 60c77d0..d24fae6 100644
--- a/gas/testsuite/gas/arm/mve-vmov-1.s
+++ b/gas/testsuite/gas/arm/mve-vmov-1.s
@@ -130,3 +130,9 @@ vmov.i64 q0, #4278190080 @ 0x00000000FF000000
vmov.i64 q0, #16711680 @ 0x00000000000FF0000
vmov.i64 q0, #65280 @ 0x0000000000000FF00
vmov.i64 q0, #255 @ 0x000000000000000FF
+
+.irp op1, q0, q1, q2, q4, q7
+.irp op2, q0, q1, q2, q4, q7
+vmov \op1, \op2
+.endr
+.endr
diff --git a/gas/testsuite/gas/arm/mve-vorr.d b/gas/testsuite/gas/arm/mve-vorr.d
index 72dcc89..96a69d8 100644
--- a/gas/testsuite/gas/arm/mve-vorr.d
+++ b/gas/testsuite/gas/arm/mve-vorr.d
@@ -5,14 +5,14 @@
.*: +file format .*arm.*
Disassembly of section .text:
-[^>]*> ef20 0150 vorr q0, q0, q0
-[^>]*> ef20 0150 vorr q0, q0, q0
-[^>]*> ef20 0150 vorr q0, q0, q0
-[^>]*> ef20 0150 vorr q0, q0, q0
-[^>]*> ef20 0150 vorr q0, q0, q0
-[^>]*> ef20 0150 vorr q0, q0, q0
-[^>]*> ef20 0150 vorr q0, q0, q0
-[^>]*> ef20 0150 vorr q0, q0, q0
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef20 0150 vmov q0, q0
+[^>]*> ef20 0150 vmov q0, q0
[^>]*> ef20 0152 vorr q0, q0, q1
[^>]*> ef20 0152 vorr q0, q0, q1
[^>]*> ef20 0152 vorr q0, q0, q1
@@ -53,14 +53,14 @@ Disassembly of section .text:
[^>]*> ef22 0150 vorr q0, q1, q0
[^>]*> ef22 0150 vorr q0, q1, q0
[^>]*> ef22 0150 vorr q0, q1, q0
-[^>]*> ef22 0152 vorr q0, q1, q1
-[^>]*> ef22 0152 vorr q0, q1, q1
-[^>]*> ef22 0152 vorr q0, q1, q1
-[^>]*> ef22 0152 vorr q0, q1, q1
-[^>]*> ef22 0152 vorr q0, q1, q1
-[^>]*> ef22 0152 vorr q0, q1, q1
-[^>]*> ef22 0152 vorr q0, q1, q1
-[^>]*> ef22 0152 vorr q0, q1, q1
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef22 0152 vmov q0, q1
+[^>]*> ef22 0152 vmov q0, q1
[^>]*> ef22 0154 vorr q0, q1, q2
[^>]*> ef22 0154 vorr q0, q1, q2
[^>]*> ef22 0154 vorr q0, q1, q2
@@ -101,14 +101,14 @@ Disassembly of section .text:
[^>]*> ef24 0152 vorr q0, q2, q1
[^>]*> ef24 0152 vorr q0, q2, q1
[^>]*> ef24 0152 vorr q0, q2, q1
-[^>]*> ef24 0154 vorr q0, q2, q2
-[^>]*> ef24 0154 vorr q0, q2, q2
-[^>]*> ef24 0154 vorr q0, q2, q2
-[^>]*> ef24 0154 vorr q0, q2, q2
-[^>]*> ef24 0154 vorr q0, q2, q2
-[^>]*> ef24 0154 vorr q0, q2, q2
-[^>]*> ef24 0154 vorr q0, q2, q2
-[^>]*> ef24 0154 vorr q0, q2, q2
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef24 0154 vmov q0, q2
+[^>]*> ef24 0154 vmov q0, q2
[^>]*> ef24 0158 vorr q0, q2, q4
[^>]*> ef24 0158 vorr q0, q2, q4
[^>]*> ef24 0158 vorr q0, q2, q4
@@ -149,14 +149,14 @@ Disassembly of section .text:
[^>]*> ef28 0154 vorr q0, q4, q2
[^>]*> ef28 0154 vorr q0, q4, q2
[^>]*> ef28 0154 vorr q0, q4, q2
-[^>]*> ef28 0158 vorr q0, q4, q4
-[^>]*> ef28 0158 vorr q0, q4, q4
-[^>]*> ef28 0158 vorr q0, q4, q4
-[^>]*> ef28 0158 vorr q0, q4, q4
-[^>]*> ef28 0158 vorr q0, q4, q4
-[^>]*> ef28 0158 vorr q0, q4, q4
-[^>]*> ef28 0158 vorr q0, q4, q4
-[^>]*> ef28 0158 vorr q0, q4, q4
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef28 0158 vmov q0, q4
+[^>]*> ef28 0158 vmov q0, q4
[^>]*> ef28 015e vorr q0, q4, q7
[^>]*> ef28 015e vorr q0, q4, q7
[^>]*> ef28 015e vorr q0, q4, q7
@@ -197,22 +197,22 @@ Disassembly of section .text:
[^>]*> ef2e 0158 vorr q0, q7, q4
[^>]*> ef2e 0158 vorr q0, q7, q4
[^>]*> ef2e 0158 vorr q0, q7, q4
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef2e 015e vorr q0, q7, q7
-[^>]*> ef20 2150 vorr q1, q0, q0
-[^>]*> ef20 2150 vorr q1, q0, q0
-[^>]*> ef20 2150 vorr q1, q0, q0
-[^>]*> ef20 2150 vorr q1, q0, q0
-[^>]*> ef20 2150 vorr q1, q0, q0
-[^>]*> ef20 2150 vorr q1, q0, q0
-[^>]*> ef20 2150 vorr q1, q0, q0
-[^>]*> ef20 2150 vorr q1, q0, q0
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef2e 015e vmov q0, q7
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef20 2150 vmov q1, q0
+[^>]*> ef20 2150 vmov q1, q0
[^>]*> ef20 2152 vorr q1, q0, q1
[^>]*> ef20 2152 vorr q1, q0, q1
[^>]*> ef20 2152 vorr q1, q0, q1
@@ -253,14 +253,14 @@ Disassembly of section .text:
[^>]*> ef22 2150 vorr q1, q1, q0
[^>]*> ef22 2150 vorr q1, q1, q0
[^>]*> ef22 2150 vorr q1, q1, q0
-[^>]*> ef22 2152 vorr q1, q1, q1
-[^>]*> ef22 2152 vorr q1, q1, q1
-[^>]*> ef22 2152 vorr q1, q1, q1
-[^>]*> ef22 2152 vorr q1, q1, q1
-[^>]*> ef22 2152 vorr q1, q1, q1
-[^>]*> ef22 2152 vorr q1, q1, q1
-[^>]*> ef22 2152 vorr q1, q1, q1
-[^>]*> ef22 2152 vorr q1, q1, q1
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef22 2152 vmov q1, q1
+[^>]*> ef22 2152 vmov q1, q1
[^>]*> ef22 2154 vorr q1, q1, q2
[^>]*> ef22 2154 vorr q1, q1, q2
[^>]*> ef22 2154 vorr q1, q1, q2
@@ -301,14 +301,14 @@ Disassembly of section .text:
[^>]*> ef24 2152 vorr q1, q2, q1
[^>]*> ef24 2152 vorr q1, q2, q1
[^>]*> ef24 2152 vorr q1, q2, q1
-[^>]*> ef24 2154 vorr q1, q2, q2
-[^>]*> ef24 2154 vorr q1, q2, q2
-[^>]*> ef24 2154 vorr q1, q2, q2
-[^>]*> ef24 2154 vorr q1, q2, q2
-[^>]*> ef24 2154 vorr q1, q2, q2
-[^>]*> ef24 2154 vorr q1, q2, q2
-[^>]*> ef24 2154 vorr q1, q2, q2
-[^>]*> ef24 2154 vorr q1, q2, q2
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef24 2154 vmov q1, q2
+[^>]*> ef24 2154 vmov q1, q2
[^>]*> ef24 2158 vorr q1, q2, q4
[^>]*> ef24 2158 vorr q1, q2, q4
[^>]*> ef24 2158 vorr q1, q2, q4
@@ -349,14 +349,14 @@ Disassembly of section .text:
[^>]*> ef28 2154 vorr q1, q4, q2
[^>]*> ef28 2154 vorr q1, q4, q2
[^>]*> ef28 2154 vorr q1, q4, q2
-[^>]*> ef28 2158 vorr q1, q4, q4
-[^>]*> ef28 2158 vorr q1, q4, q4
-[^>]*> ef28 2158 vorr q1, q4, q4
-[^>]*> ef28 2158 vorr q1, q4, q4
-[^>]*> ef28 2158 vorr q1, q4, q4
-[^>]*> ef28 2158 vorr q1, q4, q4
-[^>]*> ef28 2158 vorr q1, q4, q4
-[^>]*> ef28 2158 vorr q1, q4, q4
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef28 2158 vmov q1, q4
+[^>]*> ef28 2158 vmov q1, q4
[^>]*> ef28 215e vorr q1, q4, q7
[^>]*> ef28 215e vorr q1, q4, q7
[^>]*> ef28 215e vorr q1, q4, q7
@@ -397,22 +397,22 @@ Disassembly of section .text:
[^>]*> ef2e 2158 vorr q1, q7, q4
[^>]*> ef2e 2158 vorr q1, q7, q4
[^>]*> ef2e 2158 vorr q1, q7, q4
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef2e 215e vorr q1, q7, q7
-[^>]*> ef20 4150 vorr q2, q0, q0
-[^>]*> ef20 4150 vorr q2, q0, q0
-[^>]*> ef20 4150 vorr q2, q0, q0
-[^>]*> ef20 4150 vorr q2, q0, q0
-[^>]*> ef20 4150 vorr q2, q0, q0
-[^>]*> ef20 4150 vorr q2, q0, q0
-[^>]*> ef20 4150 vorr q2, q0, q0
-[^>]*> ef20 4150 vorr q2, q0, q0
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef2e 215e vmov q1, q7
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef20 4150 vmov q2, q0
+[^>]*> ef20 4150 vmov q2, q0
[^>]*> ef20 4152 vorr q2, q0, q1
[^>]*> ef20 4152 vorr q2, q0, q1
[^>]*> ef20 4152 vorr q2, q0, q1
@@ -453,14 +453,14 @@ Disassembly of section .text:
[^>]*> ef22 4150 vorr q2, q1, q0
[^>]*> ef22 4150 vorr q2, q1, q0
[^>]*> ef22 4150 vorr q2, q1, q0
-[^>]*> ef22 4152 vorr q2, q1, q1
-[^>]*> ef22 4152 vorr q2, q1, q1
-[^>]*> ef22 4152 vorr q2, q1, q1
-[^>]*> ef22 4152 vorr q2, q1, q1
-[^>]*> ef22 4152 vorr q2, q1, q1
-[^>]*> ef22 4152 vorr q2, q1, q1
-[^>]*> ef22 4152 vorr q2, q1, q1
-[^>]*> ef22 4152 vorr q2, q1, q1
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef22 4152 vmov q2, q1
+[^>]*> ef22 4152 vmov q2, q1
[^>]*> ef22 4154 vorr q2, q1, q2
[^>]*> ef22 4154 vorr q2, q1, q2
[^>]*> ef22 4154 vorr q2, q1, q2
@@ -501,14 +501,14 @@ Disassembly of section .text:
[^>]*> ef24 4152 vorr q2, q2, q1
[^>]*> ef24 4152 vorr q2, q2, q1
[^>]*> ef24 4152 vorr q2, q2, q1
-[^>]*> ef24 4154 vorr q2, q2, q2
-[^>]*> ef24 4154 vorr q2, q2, q2
-[^>]*> ef24 4154 vorr q2, q2, q2
-[^>]*> ef24 4154 vorr q2, q2, q2
-[^>]*> ef24 4154 vorr q2, q2, q2
-[^>]*> ef24 4154 vorr q2, q2, q2
-[^>]*> ef24 4154 vorr q2, q2, q2
-[^>]*> ef24 4154 vorr q2, q2, q2
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef24 4154 vmov q2, q2
+[^>]*> ef24 4154 vmov q2, q2
[^>]*> ef24 4158 vorr q2, q2, q4
[^>]*> ef24 4158 vorr q2, q2, q4
[^>]*> ef24 4158 vorr q2, q2, q4
@@ -549,14 +549,14 @@ Disassembly of section .text:
[^>]*> ef28 4154 vorr q2, q4, q2
[^>]*> ef28 4154 vorr q2, q4, q2
[^>]*> ef28 4154 vorr q2, q4, q2
-[^>]*> ef28 4158 vorr q2, q4, q4
-[^>]*> ef28 4158 vorr q2, q4, q4
-[^>]*> ef28 4158 vorr q2, q4, q4
-[^>]*> ef28 4158 vorr q2, q4, q4
-[^>]*> ef28 4158 vorr q2, q4, q4
-[^>]*> ef28 4158 vorr q2, q4, q4
-[^>]*> ef28 4158 vorr q2, q4, q4
-[^>]*> ef28 4158 vorr q2, q4, q4
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef28 4158 vmov q2, q4
+[^>]*> ef28 4158 vmov q2, q4
[^>]*> ef28 415e vorr q2, q4, q7
[^>]*> ef28 415e vorr q2, q4, q7
[^>]*> ef28 415e vorr q2, q4, q7
@@ -597,22 +597,22 @@ Disassembly of section .text:
[^>]*> ef2e 4158 vorr q2, q7, q4
[^>]*> ef2e 4158 vorr q2, q7, q4
[^>]*> ef2e 4158 vorr q2, q7, q4
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef2e 415e vorr q2, q7, q7
-[^>]*> ef20 8150 vorr q4, q0, q0
-[^>]*> ef20 8150 vorr q4, q0, q0
-[^>]*> ef20 8150 vorr q4, q0, q0
-[^>]*> ef20 8150 vorr q4, q0, q0
-[^>]*> ef20 8150 vorr q4, q0, q0
-[^>]*> ef20 8150 vorr q4, q0, q0
-[^>]*> ef20 8150 vorr q4, q0, q0
-[^>]*> ef20 8150 vorr q4, q0, q0
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef2e 415e vmov q2, q7
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef20 8150 vmov q4, q0
+[^>]*> ef20 8150 vmov q4, q0
[^>]*> ef20 8152 vorr q4, q0, q1
[^>]*> ef20 8152 vorr q4, q0, q1
[^>]*> ef20 8152 vorr q4, q0, q1
@@ -653,14 +653,14 @@ Disassembly of section .text:
[^>]*> ef22 8150 vorr q4, q1, q0
[^>]*> ef22 8150 vorr q4, q1, q0
[^>]*> ef22 8150 vorr q4, q1, q0
-[^>]*> ef22 8152 vorr q4, q1, q1
-[^>]*> ef22 8152 vorr q4, q1, q1
-[^>]*> ef22 8152 vorr q4, q1, q1
-[^>]*> ef22 8152 vorr q4, q1, q1
-[^>]*> ef22 8152 vorr q4, q1, q1
-[^>]*> ef22 8152 vorr q4, q1, q1
-[^>]*> ef22 8152 vorr q4, q1, q1
-[^>]*> ef22 8152 vorr q4, q1, q1
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef22 8152 vmov q4, q1
+[^>]*> ef22 8152 vmov q4, q1
[^>]*> ef22 8154 vorr q4, q1, q2
[^>]*> ef22 8154 vorr q4, q1, q2
[^>]*> ef22 8154 vorr q4, q1, q2
@@ -701,14 +701,14 @@ Disassembly of section .text:
[^>]*> ef24 8152 vorr q4, q2, q1
[^>]*> ef24 8152 vorr q4, q2, q1
[^>]*> ef24 8152 vorr q4, q2, q1
-[^>]*> ef24 8154 vorr q4, q2, q2
-[^>]*> ef24 8154 vorr q4, q2, q2
-[^>]*> ef24 8154 vorr q4, q2, q2
-[^>]*> ef24 8154 vorr q4, q2, q2
-[^>]*> ef24 8154 vorr q4, q2, q2
-[^>]*> ef24 8154 vorr q4, q2, q2
-[^>]*> ef24 8154 vorr q4, q2, q2
-[^>]*> ef24 8154 vorr q4, q2, q2
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef24 8154 vmov q4, q2
+[^>]*> ef24 8154 vmov q4, q2
[^>]*> ef24 8158 vorr q4, q2, q4
[^>]*> ef24 8158 vorr q4, q2, q4
[^>]*> ef24 8158 vorr q4, q2, q4
@@ -749,14 +749,14 @@ Disassembly of section .text:
[^>]*> ef28 8154 vorr q4, q4, q2
[^>]*> ef28 8154 vorr q4, q4, q2
[^>]*> ef28 8154 vorr q4, q4, q2
-[^>]*> ef28 8158 vorr q4, q4, q4
-[^>]*> ef28 8158 vorr q4, q4, q4
-[^>]*> ef28 8158 vorr q4, q4, q4
-[^>]*> ef28 8158 vorr q4, q4, q4
-[^>]*> ef28 8158 vorr q4, q4, q4
-[^>]*> ef28 8158 vorr q4, q4, q4
-[^>]*> ef28 8158 vorr q4, q4, q4
-[^>]*> ef28 8158 vorr q4, q4, q4
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef28 8158 vmov q4, q4
+[^>]*> ef28 8158 vmov q4, q4
[^>]*> ef28 815e vorr q4, q4, q7
[^>]*> ef28 815e vorr q4, q4, q7
[^>]*> ef28 815e vorr q4, q4, q7
@@ -797,22 +797,22 @@ Disassembly of section .text:
[^>]*> ef2e 8158 vorr q4, q7, q4
[^>]*> ef2e 8158 vorr q4, q7, q4
[^>]*> ef2e 8158 vorr q4, q7, q4
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef2e 815e vorr q4, q7, q7
-[^>]*> ef20 e150 vorr q7, q0, q0
-[^>]*> ef20 e150 vorr q7, q0, q0
-[^>]*> ef20 e150 vorr q7, q0, q0
-[^>]*> ef20 e150 vorr q7, q0, q0
-[^>]*> ef20 e150 vorr q7, q0, q0
-[^>]*> ef20 e150 vorr q7, q0, q0
-[^>]*> ef20 e150 vorr q7, q0, q0
-[^>]*> ef20 e150 vorr q7, q0, q0
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef2e 815e vmov q4, q7
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef20 e150 vmov q7, q0
+[^>]*> ef20 e150 vmov q7, q0
[^>]*> ef20 e152 vorr q7, q0, q1
[^>]*> ef20 e152 vorr q7, q0, q1
[^>]*> ef20 e152 vorr q7, q0, q1
@@ -853,14 +853,14 @@ Disassembly of section .text:
[^>]*> ef22 e150 vorr q7, q1, q0
[^>]*> ef22 e150 vorr q7, q1, q0
[^>]*> ef22 e150 vorr q7, q1, q0
-[^>]*> ef22 e152 vorr q7, q1, q1
-[^>]*> ef22 e152 vorr q7, q1, q1
-[^>]*> ef22 e152 vorr q7, q1, q1
-[^>]*> ef22 e152 vorr q7, q1, q1
-[^>]*> ef22 e152 vorr q7, q1, q1
-[^>]*> ef22 e152 vorr q7, q1, q1
-[^>]*> ef22 e152 vorr q7, q1, q1
-[^>]*> ef22 e152 vorr q7, q1, q1
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef22 e152 vmov q7, q1
+[^>]*> ef22 e152 vmov q7, q1
[^>]*> ef22 e154 vorr q7, q1, q2
[^>]*> ef22 e154 vorr q7, q1, q2
[^>]*> ef22 e154 vorr q7, q1, q2
@@ -901,14 +901,14 @@ Disassembly of section .text:
[^>]*> ef24 e152 vorr q7, q2, q1
[^>]*> ef24 e152 vorr q7, q2, q1
[^>]*> ef24 e152 vorr q7, q2, q1
-[^>]*> ef24 e154 vorr q7, q2, q2
-[^>]*> ef24 e154 vorr q7, q2, q2
-[^>]*> ef24 e154 vorr q7, q2, q2
-[^>]*> ef24 e154 vorr q7, q2, q2
-[^>]*> ef24 e154 vorr q7, q2, q2
-[^>]*> ef24 e154 vorr q7, q2, q2
-[^>]*> ef24 e154 vorr q7, q2, q2
-[^>]*> ef24 e154 vorr q7, q2, q2
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef24 e154 vmov q7, q2
+[^>]*> ef24 e154 vmov q7, q2
[^>]*> ef24 e158 vorr q7, q2, q4
[^>]*> ef24 e158 vorr q7, q2, q4
[^>]*> ef24 e158 vorr q7, q2, q4
@@ -949,14 +949,14 @@ Disassembly of section .text:
[^>]*> ef28 e154 vorr q7, q4, q2
[^>]*> ef28 e154 vorr q7, q4, q2
[^>]*> ef28 e154 vorr q7, q4, q2
-[^>]*> ef28 e158 vorr q7, q4, q4
-[^>]*> ef28 e158 vorr q7, q4, q4
-[^>]*> ef28 e158 vorr q7, q4, q4
-[^>]*> ef28 e158 vorr q7, q4, q4
-[^>]*> ef28 e158 vorr q7, q4, q4
-[^>]*> ef28 e158 vorr q7, q4, q4
-[^>]*> ef28 e158 vorr q7, q4, q4
-[^>]*> ef28 e158 vorr q7, q4, q4
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef28 e158 vmov q7, q4
+[^>]*> ef28 e158 vmov q7, q4
[^>]*> ef28 e15e vorr q7, q4, q7
[^>]*> ef28 e15e vorr q7, q4, q7
[^>]*> ef28 e15e vorr q7, q4, q7
@@ -997,14 +997,14 @@ Disassembly of section .text:
[^>]*> ef2e e158 vorr q7, q7, q4
[^>]*> ef2e e158 vorr q7, q7, q4
[^>]*> ef2e e158 vorr q7, q7, q4
-[^>]*> ef2e e15e vorr q7, q7, q7
-[^>]*> ef2e e15e vorr q7, q7, q7
-[^>]*> ef2e e15e vorr q7, q7, q7
-[^>]*> ef2e e15e vorr q7, q7, q7
-[^>]*> ef2e e15e vorr q7, q7, q7
-[^>]*> ef2e e15e vorr q7, q7, q7
-[^>]*> ef2e e15e vorr q7, q7, q7
-[^>]*> ef2e e15e vorr q7, q7, q7
+[^>]*> ef2e e15e vmov q7, q7
+[^>]*> ef2e e15e vmov q7, q7
+[^>]*> ef2e e15e vmov q7, q7
+[^>]*> ef2e e15e vmov q7, q7
+[^>]*> ef2e e15e vmov q7, q7
+[^>]*> ef2e e15e vmov q7, q7
+[^>]*> ef2e e15e vmov q7, q7
+[^>]*> ef2e e15e vmov q7, q7
[^>]*> ef80 0150 vorr.i32 q0, #0 ; 0x00000000
[^>]*> ff87 015f vorr.i32 q0, #255 ; 0x000000ff
[^>]*> ff87 035f vorr.i32 q0, #65280 ; 0x0000ff00
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 0017bd4..bec2b59 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-27 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+
+ * arm-dis.c (mve_opcodes): Add entry for MVE_VMOV_VEC_TO_VEC.
+ (is_mve_undefined): Add case for MVE_VMOV_VEC_TO_VEC.
+ (print_insn_mve): Add condition to check Qm==Qn of VORR instruction.
+
2019-08-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* aarch64-opc.c (aarch64_sys_regs): Update encoding of tfsre0_el1,
diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c
index 50d1306..8ff86bf 100644
--- a/opcodes/arm-dis.c
+++ b/opcodes/arm-dis.c
@@ -2951,6 +2951,16 @@ static const struct mopcode32 mve_opcodes[] =
0xef200150, 0xffb11f51,
"vorr%v\t%13-15,22Q, %17-19,7Q, %1-3,5Q"},
+ /* Vector VMOV, vector to vector move. While decoding MVE_VORR_REG if
+ "Qm==Qn", VORR should replaced by its alias VMOV. For that to happen
+ MVE_VMOV_VEC_TO_VEC need to placed after MVE_VORR_REG in this mve_opcodes
+ array. */
+
+ {ARM_FEATURE_COPROC (FPU_MVE),
+ MVE_VMOV_VEC_TO_VEC,
+ 0xef200150, 0xffb11f51,
+ "vmov%v\t%13-15,22Q, %17-19,7Q"},
+
/* Vector VQDMULL T1 variant. */
{ARM_FEATURE_COPROC (FPU_MVE),
MVE_VQDMULL_T1,
@@ -6104,6 +6114,12 @@ is_mve_undefined (unsigned long given, enum mve_instructions matched_insn,
else
return FALSE;
+ case MVE_VMOV_VEC_TO_VEC:
+ if ((arm_decode_field (given, 5, 5) == 1)
+ || (arm_decode_field (given, 22, 22) == 1))
+ return TRUE;
+ return FALSE;
+
case MVE_VMOV_IMM_TO_VEC:
if (arm_decode_field (given, 5, 5) == 0)
{
@@ -9214,6 +9230,13 @@ print_insn_mve (struct disassemble_info *info, long given)
if (is_mve_undefined (given, insn->mve_op, &undefined_cond))
is_undefined = TRUE;
+ /* In "VORR Qd, Qm, Qn", if Qm==Qn, VORR is nothing but VMOV,
+ i.e "VMOV Qd, Qm". */
+ if ((insn->mve_op == MVE_VORR_REG)
+ && (arm_decode_field (given, 1, 3)
+ == arm_decode_field (given, 17, 19)))
+ continue;
+
for (c = insn->assembler; *c; c++)
{
if (*c == '%')