ARM assembly parsing and encoding test for BKPT.
[oota-llvm.git] / test / MC / ARM / thumb-diagnostics.s
1 @ RUN: not llvm-mc -triple=thumbv6-apple-darwin < %s 2> %t
2 @ RUN: FileCheck --check-prefix=CHECK-ERRORS < %t %s
3
4 @ Check for various assembly diagnostic messages on invalid input.
5
6 @ ADD instruction w/o 'S' suffix.
7         add r1, r2, r3
8 @ CHECK-ERRORS: error: invalid instruction
9 @ CHECK-ERRORS:         add r1, r2, r3
10 @ CHECK-ERRORS:         ^
11
12 @ Instructions which require v6+ for both registers to be low regs.
13         add r2, r3
14         mov r2, r3
15 @ CHECK-ERRORS: error: instruction variant requires Thumb2
16 @ CHECK-ERRORS:         add r2, r3
17 @ CHECK-ERRORS:         ^
18 @ CHECK-ERRORS: error: instruction variant requires ARMv6 or later
19 @ CHECK-ERRORS:         mov r2, r3
20 @ CHECK-ERRORS:         ^
21
22
23 @ Out of range immediates for ASR instruction.
24         asrs r2, r3, #33
25         asrs r2, r3, #0
26 @ CHECK-ERRORS: error: invalid operand for instruction
27 @ CHECK-ERRORS:         asrs r2, r3, #33
28 @ CHECK-ERRORS:                      ^
29 @ CHECK-ERRORS: error: invalid operand for instruction
30 @ CHECK-ERRORS:         asrs r2, r3, #0
31 @ CHECK-ERRORS:                      ^
32
33 @ Out of range immediates for BKPT instruction.
34         bkpt #256
35         bkpt #-1
36 error: invalid operand for instruction
37         bkpt #256
38              ^
39 error: invalid operand for instruction
40         bkpt #-1
41              ^