summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC/ARM/diagnostics.s
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2013-10-22 19:00:39 +0000
committerTim Northover <tnorthover@apple.com>2013-10-22 19:00:39 +0000
commit08a8660260a10b93e49e718be6aedacb5560a250 (patch)
treea4e61345955802ab9b1ded2599699e448df8e559 /llvm/test/MC/ARM/diagnostics.s
parent476bbb02529e023043e1711e08024e2c8dd5dd6c (diff)
downloadbcm5719-llvm-08a8660260a10b93e49e718be6aedacb5560a250.tar.gz
bcm5719-llvm-08a8660260a10b93e49e718be6aedacb5560a250.zip
ARM: provide diagnostics on more writeback LDM/STM instructions
The set of circumstances where the writeback register is allowed to be in the list of registers is rather baroque, but I think this implements them all on the assembly parsing side. For disassembly, we still warn about an ARM-mode LDM even if the architecture revision is < v7 (the required architecture information isn't available). It's a silly instruction anyway, so hopefully no-one will mind. rdar://problem/15223374 llvm-svn: 193185
Diffstat (limited to 'llvm/test/MC/ARM/diagnostics.s')
-rw-r--r--llvm/test/MC/ARM/diagnostics.s7
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/test/MC/ARM/diagnostics.s b/llvm/test/MC/ARM/diagnostics.s
index 55bb1dd37ca..5eae4d216e4 100644
--- a/llvm/test/MC/ARM/diagnostics.s
+++ b/llvm/test/MC/ARM/diagnostics.s
@@ -429,3 +429,10 @@
bkpteq #7
@ CHECK-ERRORS: error: instruction 'bkpt' is not predicable, but condition code specified
+
+ ldm r2!, {r2, r3}
+ ldmdb r2!, {r2, r3}
+ ldmda r2!, {r2, r3}
+@ CHECK-ERRORS: error: writeback operator '!' not allowed when base register in register list
+@ CHECK-ERRORS: error: writeback operator '!' not allowed when base register in register list
+@ CHECK-ERRORS: error: writeback operator '!' not allowed when base register in register list
OpenPOWER on IntegriCloud