Add support for 64-bit 'r' constraint. Patch by by Rafael ~Avila de Espíndol!
authorChris Lattner <sabre@nondot.org>
Mon, 4 Dec 2006 22:38:21 +0000 (22:38 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 4 Dec 2006 22:38:21 +0000 (22:38 +0000)
This fixes PR1029 and Regression/CodeGen/X86/x86-64-asm.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32206 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index 375777a3290da1c05ae8637f67aad10a66c73548..9358c8b3d4ac8d5e67b7e9f6d76fa57ac9440fb0 100644 (file)
@@ -5528,6 +5528,11 @@ getRegClassForInlineAsmConstraint(const std::string &Constraint,
       break;
     case 'r':   // GENERAL_REGS
     case 'R':   // LEGACY_REGS
+      if (VT == MVT::i64 && Subtarget->is64Bit())
+        return make_vector<unsigned>(X86::RAX, X86::RDX, X86::RCX, X86::RBX,
+                                     X86::RSI, X86::RDI, X86::RBP, X86::RSP,
+                                     X86::R8,  X86::R9,  X86::R10, X86::R11,
+                                     X86::R12, X86::R13, X86::R14, X86::R15, 0);
       if (VT == MVT::i32)
         return make_vector<unsigned>(X86::EAX, X86::EDX, X86::ECX, X86::EBX,
                                      X86::ESI, X86::EDI, X86::EBP, X86::ESP, 0);