mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-23 21:13:02 +02:00
33d655fd7a
Currently, our diagnostics for assembly operands are not consistent. Some start with (for example) "immediate operand must be ...", and some with "operand must be an immediate ...". I think the latter form is preferable for a few reasons: * It's unambiguous that it is referring to the expected type of operand, not the type the user provided. For example, the user could provide an register operand, and get a message taking about an operand is if it is already an immediate, just not in the accepted range. * It allows us to have a consistent style once we add diagnostics for operands that could take two forms, for example a label or pc-relative memory operand. Differential revision: https://reviews.llvm.org/D36689 llvm-svn: 314887
33 lines
1.3 KiB
ArmAsm
33 lines
1.3 KiB
ArmAsm
# RUN: not llvm-mc -triple thumbv7 -mcpu=cortex-m0 %s 2>&1 | FileCheck %s
|
|
|
|
.thumb
|
|
|
|
ADDs r1, r0, #0xFFFFFFF5
|
|
# CHECK: error: invalid instruction, any one of the following would fix this:
|
|
# CHECK-DAG: note: instruction requires: thumb2
|
|
# CHECK-DAG: note: invalid operand for instruction
|
|
# CHECK-DAG: note: operand must be an immediate in the range [0,7]
|
|
|
|
ADDs r0, #0xFFFFFEFF
|
|
# CHECK: error: invalid instruction, any one of the following would fix this:
|
|
# CHECK-DAG: note: invalid operand for instruction
|
|
# CHECK-DAG: note: operand must be an immediate in the range [0,255]
|
|
|
|
SUBs r1, r0, #0xFFFFFFF5
|
|
# CHECK: error: invalid instruction, any one of the following would fix this:
|
|
# CHECK-DAG: note: invalid operand for instruction
|
|
# CHECK-DAG: note: operand must be an immediate in the range [0,7]
|
|
|
|
SUBs r0, #0xFFFFFEFF
|
|
# CHECK: error: invalid instruction, any one of the following would fix this:
|
|
# CHECK-DAG: note: invalid operand for instruction
|
|
# CHECK-DAG: note: operand must be an immediate in the range [0,255]
|
|
|
|
ORRs r0, r1, #0xFFFFFF00
|
|
# CHECK: error: invalid instruction, any one of the following would fix this:
|
|
# CHECK-DAG: note: instruction requires: thumb2
|
|
# CHECK-DAG: note: too many operands for instruction
|
|
|
|
ORNs r0, r1, #0xFFFFFF00
|
|
# CHECK: error: instruction requires: thumb2
|