mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
bbccd10c81
This adds diagnostic strings for the ARM floating-point register classes, which will be used when these classes are expected by the assembler, but the provided operand is not valid. One of these, DPR, requires C++ code to select the correct error message, as that class contains different registers depending on the FPU. The rest can all have their diagnostic strings stored in the tablegen decription of them. Differential revision: https://reviews.llvm.org/D36693 llvm-svn: 315304
78 lines
3.2 KiB
ArmAsm
78 lines
3.2 KiB
ArmAsm
@ RUN: not llvm-mc -triple=armv7-linux-gnueabi %s 2>&1 | FileCheck %s
|
|
.text
|
|
|
|
vorr.i32 d2, #0xffffffff
|
|
vorr.i32 q2, #0xffffffff
|
|
vorr.i32 d2, #0xabababab
|
|
vorr.i32 q2, #0xabababab
|
|
vorr.i16 q2, #0xabab
|
|
vorr.i16 q2, #0xabab
|
|
|
|
@ CHECK: error: invalid instruction, any one of the following would fix this:
|
|
@ CHECK: operand must be a register in range [d0, d31]
|
|
@ CHECK: note: invalid operand for instruction
|
|
@ CHECK: vorr.i32 d2, #0xffffffff
|
|
@ CHECK: error: invalid instruction, any one of the following would fix this:
|
|
@ CHECK: note: operand must be a register in range [q0, q15]
|
|
@ CHECK: note: invalid operand for instruction
|
|
@ CHECK: vorr.i32 q2, #0xffffffff
|
|
@ CHECK: error: invalid instruction, any one of the following would fix this:
|
|
@ CHECK: operand must be a register in range [d0, d31]
|
|
@ CHECK: note: invalid operand for instruction
|
|
@ CHECK: vorr.i32 d2, #0xabababab
|
|
@ CHECK: error: invalid instruction, any one of the following would fix this:
|
|
@ CHECK: note: operand must be a register in range [q0, q15]
|
|
@ CHECK: note: invalid operand for instruction
|
|
@ CHECK: vorr.i32 q2, #0xabababab
|
|
@ CHECK: error: invalid instruction, any one of the following would fix this:
|
|
@ CHECK: note: operand must be a register in range [q0, q15]
|
|
@ CHECK: note: invalid operand for instruction
|
|
@ CHECK: vorr.i16 q2, #0xabab
|
|
@ CHECK: error: invalid instruction, any one of the following would fix this:
|
|
@ CHECK: note: operand must be a register in range [q0, q15]
|
|
@ CHECK: note: invalid operand for instruction
|
|
@ CHECK: vorr.i16 q2, #0xabab
|
|
|
|
vbic.i32 d2, #0xffffffff
|
|
vbic.i32 q2, #0xffffffff
|
|
vbic.i32 d2, #0xabababab
|
|
vbic.i32 q2, #0xabababab
|
|
vbic.i16 d2, #0xabab
|
|
vbic.i16 q2, #0xabab
|
|
|
|
@ CHECK: error: invalid operand for instruction
|
|
@ CHECK: vbic.i32 d2, #0xffffffff
|
|
@ CHECK: error: invalid operand for instruction
|
|
@ CHECK: vbic.i32 q2, #0xffffffff
|
|
@ CHECK: error: invalid operand for instruction
|
|
@ CHECK: vbic.i32 d2, #0xabababab
|
|
@ CHECK: error: invalid operand for instruction
|
|
@ CHECK: vbic.i32 q2, #0xabababab
|
|
@ CHECK: error: invalid operand for instruction
|
|
@ CHECK: vbic.i16 d2, #0xabab
|
|
@ CHECK: error: invalid operand for instruction
|
|
@ CHECK: vbic.i16 q2, #0xabab
|
|
|
|
vbic.i32 d2, #0x03ffffff
|
|
vbic.i32 q2, #0x03ffff
|
|
vbic.i32 d2, #0x03ff
|
|
vbic.i32 d2, #0xff00ff
|
|
vbic.i16 d2, #0x03ff
|
|
vbic.i16 q2, #0xf0f0
|
|
vbic.i16 q2, #0xf0f0f0
|
|
|
|
@ CHECK: error: invalid operand for instruction
|
|
@ CHECK: vbic.i32 d2, #0x03ffffff
|
|
@ CHECK: error: invalid operand for instruction
|
|
@ CHECK: vbic.i32 q2, #0x03ffff
|
|
@ CHECK: error: invalid operand for instruction
|
|
@ CHECK: vbic.i32 d2, #0x03ff
|
|
@ CHECK: error: invalid operand for instruction
|
|
@ CHECK: vbic.i32 d2, #0xff00ff
|
|
@ CHECK: error: invalid operand for instruction
|
|
@ CHECK: vbic.i16 d2, #0x03ff
|
|
@ CHECK: error: invalid operand for instruction
|
|
@ CHECK: vbic.i16 q2, #0xf0f0
|
|
@ CHECK: error: invalid operand for instruction
|
|
@ CHECK: vbic.i16 q2, #0xf0f0f0
|