PR2985 / <rdar://problem/6584986>
authorJim Grosbach <grosbach@apple.com>
Tue, 7 Apr 2009 20:34:09 +0000 (20:34 +0000)
committerJim Grosbach <grosbach@apple.com>
Tue, 7 Apr 2009 20:34:09 +0000 (20:34 +0000)
commit30eae3c02244e18747f9f0dca6946d86d0ccb7f5
tree44e67111b90edc1491446bbf9fc880bd349477f5
parentf23e809be09aac2f1a01e84e2b03826322b2f856
PR2985 / <rdar://problem/6584986>

When compiling in Thumb mode, only the low (R0-R7) registers are available
for most instructions. Breaking the low registers into a new register class
handles this. Uses of R12, SP, etc, are handled explicitly where needed
with copies inserted to move results into low registers where the rest of
the code generator can deal with them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68545 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/TargetRegisterInfo.h
lib/Target/ARM/ARMISelDAGToDAG.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMInstrInfo.cpp
lib/Target/ARM/ARMInstrThumb.td
lib/Target/ARM/ARMRegisterInfo.cpp
lib/Target/ARM/ARMRegisterInfo.h
lib/Target/ARM/ARMRegisterInfo.td