diff options
-rw-r--r-- | gas/ChangeLog | 8 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/mve-vmov-1.d | 25 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/mve-vmov-1.s | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/mve-vorr.d | 400 | ||||
-rw-r--r-- | opcodes/ChangeLog | 6 | ||||
-rw-r--r-- | opcodes/arm-dis.c | 23 |
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 == '%') |