Fix a problem building llvm-gcc on amd64-unknown-freebsd6.2, due to the
authorChris Lattner <sabre@nondot.org>
Wed, 28 Mar 2007 00:58:40 +0000 (00:58 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 28 Mar 2007 00:58:40 +0000 (00:58 +0000)
system assembler not groking legal instructions like "leal (,%esi,8), %ecx".

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

lib/Target/X86/X86InstrInfo.cpp

index cd783f3cf8b416e6fbf6153a57a648002a4e6140..aa15723c46ea4b70f53a00fa4955084603f67acb 100644 (file)
@@ -158,7 +158,9 @@ X86InstrInfo::convertToThreeAddress(MachineFunction::iterator &MFI,
     unsigned ShAmt = MI->getOperand(2).getImm();
     if (ShAmt == 0 || ShAmt >= 4) return 0;
     
-    NewMI = BuildMI(get(X86::LEA32r), Dest)
+    unsigned Opc = TM.getSubtarget<X86Subtarget>().is64Bit() ?
+      X86::LEA64_32r : X86::LEA32r;
+    NewMI = BuildMI(get(Opc), Dest)
       .addReg(0).addImm(1 << ShAmt).addReg(Src).addImm(0);
     break;
   }