Add support for the MVE VMOV instruction to the ARM assembler. This instruction...
authorSrinath Parvathaneni <srinath.parvathaneni@arm.com>
Tue, 27 Aug 2019 11:08:21 +0000 (12:08 +0100)
committerNick Clifton <nickc@redhat.com>
Tue, 27 Aug 2019 11:08:21 +0000 (12:08 +0100)
gas     * 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.

opcodes * 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.

gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/gas/arm/mve-vmov-1.d
gas/testsuite/gas/arm/mve-vmov-1.s
gas/testsuite/gas/arm/mve-vorr.d
opcodes/ChangeLog
opcodes/arm-dis.c

index ff9b3e47622c0e3a813c46d1ef791bab4864cba4..980d970bbc647a602badcc6c23053752831a8efe 100644 (file)
@@ -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.
index 27c6f0e52fa32799485ba225b58ffa17a74fbfa6..9a367ca72895f268400bc5b3007ba8d89c081bd0 100644 (file)
@@ -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>
index 5f317d86467501091b8ab53a04dd47c9d6ea9a74..504b3e79365b355e8647d07747ecabde6429dc57 100644 (file)
@@ -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
index 60c77d0a7c2d6705ce8f48f41cad41b9231b51d0..d24fae60f37336176b2de88f6e2bb04ec29f9d4c 100644 (file)
@@ -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
index 72dcc8953840c7baafac7ed36dd2a343bd23cf2e..96a69d8d13cfaf8773181e45ab1b3821679ddb69 100644 (file)
@@ -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
index 0017bd47f51e6d223c0546babed3c067bce20926..bec2b59cc40d4d76eb17a52547bad8d873d90c14 100644 (file)
@@ -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,
index 50d1306c19d950ba0c22cb72fcb2ccfd317795c8..8ff86bf4d62ff69ed9a4a5f3f5bc5c81b3abbe85 100644 (file)
@@ -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 == '%')