diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index e2b21ed915f4ede69ef926d6144d7a87e2dacdf4..1a968ca173640edf1e84f230d966eee838ad6b17 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -6748,8 +6748,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 , Case 1: VMOV
, diff --git a/gas/testsuite/gas/arm/mve-vmov-1.d b/gas/testsuite/gas/arm/mve-vmov-1.d index 5f317d86467501091b8ab53a04dd47c9d6ea9a74..504b3e79365b355e8647d07747ecabde6429dc57 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 60c77d0a7c2d6705ce8f48f41cad41b9231b51d0..d24fae60f37336176b2de88f6e2bb04ec29f9d4c 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 72dcc8953840c7baafac7ed36dd2a343bd23cf2e..96a69d8d13cfaf8773181e45ab1b3821679ddb69 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/arm-dis.c b/opcodes/arm-dis.c index 50d1306c19d950ba0c22cb72fcb2ccfd317795c8..8ff86bf4d62ff69ed9a4a5f3f5bc5c81b3abbe85 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 == '%')