This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hello, This patch supports MVE VMOV instruction which copy the value of one vector register to another vector register. This patch also modifies the decoding of VORR instruction which is effecting decoding of VMOV instruction. Example1: $ cat test.s vmov q0, q1 Before this patch: $ arm-none-eabi-as test.s -march=armv8.1-m.main+mve -mfloat-abi=hard test.s: Assembler messages: test.s:1: Error: expected <Rm> or <Dm> or <Qm> operand -- `vmov q0,q1' After assembler support by this patch: Disassembly of section .text: 00000000 <.text> ef22 0152 vorr q0, q1, q1 After assembler and disassembler support by this patch: Disassembly of section .text: 00000000 <.text> ef22 0152 vmov q0, q1 Example2: $cat test.s vorr q0, q1, q2 vorr q0, q1, q1 Before this patch: Disassembly of section .text: 00000000 <.text> ef22 0154 vorr q0, q1, q2 00000004 <.text+0x4> ef22 0152 vorr q0, q1, q1 After this patch: Disassembly of section .text: 00000000 <.text> ef22 0154 vorr q0, q1, q2 00000004 <.text+0x4> ef22 0152 vmov q0, q1 For more details about the above mentioned instructions please refer to latest arm architecture reference manual [1]. [1] https://developer.arm.com/architectures/cpu-architecture/m-profile/docs/ddi0553/latest/armv81-m-architecture-reference-manual Bootstrapped on arm-none-linux-gnueabihf and regression tested on arm-none-eabi with no regressions. Ok for master? If okay please commit on my behalf, I don't have the commit rights. Thanks, Srinath. gas ChangeLog: 2019-08-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com> * gas/config/tc-arm.c (parse_neon_mov): Add check to accept vector register to both the arguments in VMOV instruction. * gas/testsuite/gas/arm/mve-vmov-1.d: Modify. * gas/testsuite/gas/arm/mve-vmov-1.s: Likewise. * gas/testsuite/gas/arm/mve-vorr.d: Likewise. opcodes ChangeLog: 2019-08-23 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. ############### Attachment also inlined for ease of reply ############### 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<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 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 == '%')
Attachment:
rb11683.patch.patch
Description: rb11683.patch.patch
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |