summaryrefslogtreecommitdiffstats
path: root/clang/docs/LibASTMatchersReference.html
diff options
context:
space:
mode:
authorSander de Smalen <sander.desmalen@arm.com>2018-05-08 10:01:04 +0000
committerSander de Smalen <sander.desmalen@arm.com>2018-05-08 10:01:04 +0000
commit20eede7093eb828968731ed7becafe6fd91c6749 (patch)
tree02bc631a23abf7af5b11ca6fb681174a6f56d05b /clang/docs/LibASTMatchersReference.html
parent7563624fcba42032e95442bb4e8f439f5edf7669 (diff)
downloadbcm5719-llvm-20eede7093eb828968731ed7becafe6fd91c6749.tar.gz
bcm5719-llvm-20eede7093eb828968731ed7becafe6fd91c6749.zip
[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
Diffstat (limited to 'clang/docs/LibASTMatchersReference.html')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud