From 59e648e3c8966e0678902a2994558f25c8573ce4 Mon Sep 17 00:00:00 2001 From: Tim Northover Date: Tue, 12 Nov 2013 21:32:41 +0000 Subject: ARM: diagnose invalid system LDM/STM The system LDM and STM instructions can't usually writeback to the base register. The one exception is when an LDM is actually an exception-return (i.e. contains PC in the register list). (There's already a test that "ldm sp!, {r0-r3, pc}^" works, which is why there is no positive test). rdar://problem/15223374 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194512 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/MC/ARM/diagnostics.s | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'test/MC') diff --git a/test/MC/ARM/diagnostics.s b/test/MC/ARM/diagnostics.s index 11c8306..3c26f6d 100644 --- a/test/MC/ARM/diagnostics.s +++ b/test/MC/ARM/diagnostics.s @@ -460,3 +460,8 @@ @ CHECK-ERRORS: error: instruction requires: FPARMv8 @ CHECK-ERRORS: error: instruction requires: FPARMv8 @ CHECK-ERRORS: error: instruction requires: FPARMv8 + + stm sp!, {r0, pc}^ + ldm sp!, {r0}^ +@ CHECK-ERRORS: error: system STM cannot have writeback register +@ CHECK-ERRORS: error: writeback register only allowed on system LDM if PC in register-list -- cgit v1.1