[llvm-commits] [llvm] r48224 - /llvm/trunk/lib/Target/X86/X86InstrInfo.cpp

Christopher Lamb christopher.lamb at gmail.com
Tue Mar 11 03:27:36 PDT 2008


Author: clamb
Date: Tue Mar 11 05:27:36 2008
New Revision: 48224

URL: http://llvm.org/viewvc/llvm-project?rev=48224&view=rev
Log:
Missed part of recommit.

Modified:
    llvm/trunk/lib/Target/X86/X86InstrInfo.cpp

Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.cpp?rev=48224&r1=48223&r2=48224&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.cpp Tue Mar 11 05:27:36 2008
@@ -904,15 +904,18 @@
       unsigned leaInReg = RegInfo.createVirtualRegister(&X86::GR32RegClass);
       unsigned leaOutReg = RegInfo.createVirtualRegister(&X86::GR32RegClass);
             
-      MachineInstr *Ins =
-        BuildMI(get(X86::INSERT_SUBREG), leaInReg).addReg(Src).addImm(2);
-      Ins->copyKillDeadInfo(MI);
+      // Build and insert into an implicit UNDEF value. This is OK because
+      // well be shifting and then extracting the lower 16-bits. 
+      MachineInstr *Ins = 
+       BuildMI(get(X86::INSERT_SUBREG),leaInReg).addImm(X86::IMPL_VAL_UNDEF)
+         .addReg(Src).addImm(X86::SUBREG_16BIT);
       
       NewMI = BuildMI(get(Opc), leaOutReg)
         .addReg(0).addImm(1 << ShAmt).addReg(leaInReg).addImm(0);
       
       MachineInstr *Ext =
-        BuildMI(get(X86::EXTRACT_SUBREG), Dest).addReg(leaOutReg).addImm(2);
+        BuildMI(get(X86::EXTRACT_SUBREG), Dest)
+         .addReg(leaOutReg).addImm(X86::SUBREG_16BIT);
       Ext->copyKillDeadInfo(MI);
       
       MFI->insert(MBBI, Ins);            // Insert the insert_subreg





More information about the llvm-commits mailing list