aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2019-07-02 10:51:05 +0100
committerRichard Sandiford <richard.sandiford@arm.com>2019-07-02 10:51:05 +0100
commit8941884429c305ad42a41f759a98c8cca4d4aacc (patch)
treec198a6e2bbe1d26851bc4716b68840793ef5359c /gas
parent390b205f456be85e309570f1b6e9b75f27194de7 (diff)
downloadfsf-binutils-gdb-8941884429c305ad42a41f759a98c8cca4d4aacc.zip
fsf-binutils-gdb-8941884429c305ad42a41f759a98c8cca4d4aacc.tar.gz
fsf-binutils-gdb-8941884429c305ad42a41f759a98c8cca4d4aacc.tar.bz2
[AArch64] Fix bogus MOVPRFX warning for GPR form of CPY
One of the MOVPRFX tests has: output register of preceding `movprfx' used as input at operand 3 -- `cpy z1.d,p1/m,x1' But X1 and Z1 are not the same register, so the instruction is actually OK. 2019-07-02 Richard Sandiford <richard.sandiford@arm.com> opcodes/ * aarch64-opc.c (verify_constraints): Skip GPRs when scanning the registers in an instruction prefixed by MOVPRFX. gas/ * testsuite/gas/aarch64/sve-movprfx_25.s: Allow CPY Z1.D.P1/M,X1 to be prefixed by MOVPRFX. * testsuite/gas/aarch64/sve-movprfx_25.d: Update accordingly. * testsuite/gas/aarch64/sve-movprfx_25.l: Likewise.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/testsuite/gas/aarch64/sve-movprfx_25.d2
-rw-r--r--gas/testsuite/gas/aarch64/sve-movprfx_25.l1
-rw-r--r--gas/testsuite/gas/aarch64/sve-movprfx_25.s2
4 files changed, 9 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 355de66..05537e2 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2019-07-02 Richard Sandiford <richard.sandiford@arm.com>
+
+ * testsuite/gas/aarch64/sve-movprfx_25.s: Allow CPY Z1.D.P1/M,X1
+ to be prefixed by MOVPRFX.
+ * testsuite/gas/aarch64/sve-movprfx_25.d: Update accordingly.
+ * testsuite/gas/aarch64/sve-movprfx_25.l: Likewise.
+
2019-07-01 Nick Clifton <nickc@redhat.com>
PR 24748
diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_25.d b/gas/testsuite/gas/aarch64/sve-movprfx_25.d
index 1573856..2b4f654 100644
--- a/gas/testsuite/gas/aarch64/sve-movprfx_25.d
+++ b/gas/testsuite/gas/aarch64/sve-movprfx_25.d
@@ -21,7 +21,7 @@ Disassembly of section .*:
[^:]+: 04d12461 movprfx z1.d, p1/m, z3.d
[^:]+: 05e8a441 mov z1.d, p1/m, x2
[^:]+: 04d12461 movprfx z1.d, p1/m, z3.d
-[^:]+: 05e8a421 mov z1.d, p1/m, x1 // note: output register of preceding `movprfx' used as input at operand 3
+[^:]+: 05e8a421 mov z1.d, p1/m, x1
[^:]+: 04d12461 movprfx z1.d, p1/m, z3.d
[^:]+: 05e08441 mov z1.d, p1/m, d2
[^:]+: 04d12461 movprfx z1.d, p1/m, z3.d
diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_25.l b/gas/testsuite/gas/aarch64/sve-movprfx_25.l
index ec7e2db..259ad55 100644
--- a/gas/testsuite/gas/aarch64/sve-movprfx_25.l
+++ b/gas/testsuite/gas/aarch64/sve-movprfx_25.l
@@ -1,5 +1,4 @@
[^:]*: Assembler messages:
.*: Warning: predicate register differs from that in preceding `movprfx' at operand 2 -- `cpy z1.d,p9/m,#12'
.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `cpy z1.d,p1/z,#12'
-.*: Warning: output register of preceding `movprfx' used as input at operand 3 -- `cpy z1.d,p1/m,x1'
.*: Warning: output register of preceding `movprfx' used as input at operand 3 -- `cpy z1.d,p1/m,d1'
diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_25.s b/gas/testsuite/gas/aarch64/sve-movprfx_25.s
index 58124ce..0e64763 100644
--- a/gas/testsuite/gas/aarch64/sve-movprfx_25.s
+++ b/gas/testsuite/gas/aarch64/sve-movprfx_25.s
@@ -29,7 +29,7 @@ f:
movprfx z1.d, p1/m, z3.d
cpy z1.d, p1/m, x2
- /* Not OK, scalar but register z1 and x1 are architecturally the same. */
+ /* OK, scalar predicated, alias mov. */
movprfx z1.d, p1/m, z3.d
cpy z1.d, p1/m, x1