Add a PPC inline asm constraint type for single CR bits
authorHal Finkel <hfinkel@anl.gov>
Sun, 2 Mar 2014 18:23:39 +0000 (18:23 +0000)
committerHal Finkel <hfinkel@anl.gov>
Sun, 2 Mar 2014 18:23:39 +0000 (18:23 +0000)
commit5a49125fec49cd13972fa0d6fa59509fd1d9c419
tree1d2d433df725e356775b0035478e95d7c7a5945f
parent3de6ee1ae69644ccdbb2f2f4550817de00719e90
Add a PPC inline asm constraint type for single CR bits

Now that the PowerPC backend can track individual CR bits as first-class
registers, we should also have a way of allocating them for inline asm
statements. Because these registers are only one bit, if an output variable is
implicitly cast to a larger integer size, we'll get an any_extend to that
larger type (this is part of the existing target-independent logic). As a
result, regardless of the size of the output type, only the first bit is
meaningful.

The constraint identifier "wc" has been chosen for this purpose. Although gcc
does not currently support allocating individual CR bits, this identifier
choice has been coordinated with the gcc PowerPC team, and will be marked as
reserved for this purpose in the gcc constraints.md file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202657 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/PowerPC/PPCISelLowering.cpp
test/CodeGen/PowerPC/crbit-asm.ll [new file with mode: 0644]