llvm-project/llvm/test/MC
Sander de Smalen 20eede7093 [AArch64] Disallow vector operand if FPR128 Q register is required.
Patch https://reviews.llvm.org/D41445 changed the behaviour of 'isReg()'
to also return 'true' if the parsed register operand is a vector
register. Code in the AsmMatcher checks if a register is a subclass of the
expected register class. However, even though both parsed registers map
to the same physical register, the 'v' register is of kind 'NeonVector',
where 'q' is of type Scalar, where isSubclass() does not distinguish
between the two cases.

The solution is to use an AsmOperand instead of the register directly,
and use the PredicateMethod to distinguish the two operands.

This fixes for example:
  ldr v0, [x0]    // 'v0' is an invalid operand for this instruction
  ldr q0, [x0]    // valid

Reviewers: aemerson, Gerolf, SjoerdMeijer, javed.absar

Reviewed By: aemerson

Differential Revision: https://reviews.llvm.org/D46310

llvm-svn: 331755
2018-05-08 10:01:04 +00:00
..
AArch64 [AArch64] Disallow vector operand if FPR128 Q register is required. 2018-05-08 10:01:04 +00:00
AMDGPU AMDGPU: Add D16 instructions preserve unused bits feature 2018-05-04 20:06:57 +00:00
ARM [ARM] Do not convert some vmov instructions 2018-04-04 08:54:19 +00:00
AVR [AVR] Implement some missing code paths 2017-12-11 11:01:27 +00:00
AsmParser [MC] Change AsmParser to leverage Assembler during evaluation 2018-04-30 19:22:40 +00:00
BPF bpf: New disassembler testcases for 32-bit subregister support 2018-02-23 23:49:35 +00:00
COFF [codeview] Ignore .cv_loc directives at the end of a function 2018-04-25 23:34:15 +00:00
Disassembler [x86] Introduce the enclv instruction 2018-05-08 07:11:05 +00:00
ELF ELFObjectWriter: Allow one unique symver per symbol 2018-04-27 20:32:34 +00:00
Hexagon [Hexagon] Move clamping of extended operands directly to MC code emitter 2018-05-07 17:34:23 +00:00
Lanai
MachO MachO: trap unreachable instructions 2018-04-13 22:25:20 +00:00
Mips [mips] Correct clo/clz predicates 2018-05-08 09:50:37 +00:00
PowerPC [PowerPC] Code cleanup. Remove instructions that were withdrawn from Power 9. 2018-02-23 15:55:16 +00:00
RISCV [RISCV] Allow call pseudoinstruction to be used to call a function name that coincides with a register name 2018-04-25 17:25:29 +00:00
Sparc [Sparc] invalid adjustments in TLS_LE/TLS_LDO relocations removed 2017-07-25 15:28:28 +00:00
SystemZ [SystemZ, AsmParser] Enable the mnemonic spell corrector. 2017-07-18 09:17:00 +00:00
WebAssembly [WebAssembly] MC: Don't litter test directory. 2018-05-03 08:25:14 +00:00
X86 [x86] Introduce the enclv instruction 2018-05-08 07:11:05 +00:00