mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01: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
19 lines
783 B
ArmAsm
19 lines
783 B
ArmAsm
@ PR28647
|
|
@ RUN: not llvm-mc -triple=thumbv7a-linux-gnueabi -filetype=obj < %s 2>&1 | FileCheck %s
|
|
.text
|
|
.syntax unified
|
|
.balign 2
|
|
|
|
@ mov with :upper16: or :lower16: should not match mov with modified immediate
|
|
mov r0, :upper16: sym0
|
|
@ CHECK: error: invalid instruction, any one of the following would fix this:
|
|
@ CHECK: note: instruction requires: arm-mode
|
|
@ CHECK: note: invalid operand for instruction
|
|
@ CHECK: note: operand must be an immediate in the range [256,65535]
|
|
mov r0, :lower16: sym0
|
|
@ CHECK: error: invalid instruction, any one of the following would fix this:
|
|
@ CHECK: note: instruction requires: arm-mode
|
|
@ CHECK: note: invalid operand for instruction
|
|
@ CHECK: note: operand must be an immediate in the range [256,65535]
|
|
.equ sym0, 0x01abcdef
|