]> granicus.if.org Git - llvm/commit
[AArch64] Implement lowering of the X constraint on AArch64
authorSilviu Baranga <silviu.baranga@arm.com>
Mon, 9 May 2016 11:10:44 +0000 (11:10 +0000)
committerSilviu Baranga <silviu.baranga@arm.com>
Mon, 9 May 2016 11:10:44 +0000 (11:10 +0000)
commit784cb3fef6a159ccc6f15eb6ab004af77d484920
treed60d6f5bd9d2afdb4ec1471a68b06b4dd5c2cf1b
parenta5df424f081771679d09b2c366c5ee3f011a2ae8
[AArch64] Implement lowering of the X constraint on AArch64

Summary:
This implements the lowering of the X constraint on
AArch64.

The default behaviour of the X constraint lowering is to
restrict it to "f". This is a problem because the "f"
constraint is not implemented on AArch64 and would be too
restrictive anyway. Therefore, the AArch64 hook will
lower this to "w" (if the operand is a floating point or
vector) or "r" otherwise.

The implementation is similar with the one added for
ARM (r267411).

This is the AArch64 side of the fix for http://llvm.org/PR26493

Reviewers: rengolin

Subscribers: aemerson, rengolin, llvm-commits, t.p.northover

Differential Revision: http://reviews.llvm.org/D19967

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268907 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64ISelLowering.cpp
lib/Target/AArch64/AArch64ISelLowering.h
test/CodeGen/AArch64/inlineasm-X-allocation.ll [new file with mode: 0644]
test/CodeGen/AArch64/inlineasm-X-constraint.ll [new file with mode: 0644]