[llvm-commits] [llvm] r93436 - /llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp

Jakob Stoklund Olesen stoklund at 2pi.dk
Thu Jan 14 10:19:56 PST 2010


Author: stoklund
Date: Thu Jan 14 12:19:56 2010
New Revision: 93436

URL: http://llvm.org/viewvc/llvm-project?rev=93436&view=rev
Log:
ARM "l" constraint for inline asm means R0-R7, also for Thumb2.

This is consistent with llvm-gcc's arm/constraints.md.

Certain instructions (e.g. CBZ, CBNZ) require a low register, even in Thumb2
mode.

Modified:
    llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp

Modified: llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp?rev=93436&r1=93435&r2=93436&view=diff

==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp Thu Jan 14 12:19:56 2010
@@ -4258,10 +4258,10 @@
 ARMTargetLowering::getRegForInlineAsmConstraint(const std::string &Constraint,
                                                 EVT VT) const {
   if (Constraint.size() == 1) {
-    // GCC RS6000 Constraint Letters
+    // GCC ARM Constraint Letters
     switch (Constraint[0]) {
     case 'l':
-      if (Subtarget->isThumb1Only())
+      if (Subtarget->isThumb())
         return std::make_pair(0U, ARM::tGPRRegisterClass);
       else
         return std::make_pair(0U, ARM::GPRRegisterClass);





More information about the llvm-commits mailing list