Fix a major bug in the signed shr code, which apparently only breaks 134.perl!
authorChris Lattner <sabre@nondot.org>
Tue, 16 Nov 2004 18:40:52 +0000 (18:40 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 16 Nov 2004 18:40:52 +0000 (18:40 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17902 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86CodeEmitter.cpp
lib/Target/X86/X86ISelSimple.cpp

index eaa15419a8ac5ec391c556c2190b6253c7a6c67d..42946c29b9e436251995850cfc7facca53eb1417 100644 (file)
@@ -635,7 +635,8 @@ void Emitter::emitInstruction(const MachineInstr &MI) {
                      (Desc.TSFlags & X86II::FormMask)-X86II::MRM0r);
 
     if (MI.getOperand(MI.getNumOperands()-1).isImmediate()) {
-      emitConstant(MI.getOperand(MI.getNumOperands()-1).getImmedValue(), sizeOfImm(Desc));
+      emitConstant(MI.getOperand(MI.getNumOperands()-1).getImmedValue(),
+                   sizeOfImm(Desc));
     }
     break;
 
index e890e6bb2f9ec0cc582de84e6c2b5da4742246f4..89842a4e9f11e506d87929f0eda637beba65746b 100644 (file)
@@ -2984,7 +2984,7 @@ void X86ISel::emitShiftOperation(MachineBasicBlock *MBB,
           BuildMI(*MBB, IP, X86::MOV32rr, 1, DestReg+1).addReg(SrcReg);
           BuildMI(*MBB, IP, X86::MOV32ri, 1, DestReg).addImm(0);
         } else {
-          BuildMI(*MBB, IP, X86::MOV32rr, 1, DestReg).addReg(SrcReg);
+          BuildMI(*MBB, IP, X86::MOV32rr, 1, DestReg).addReg(SrcReg+1);
           if (!isSigned) {
             BuildMI(*MBB, IP, X86::MOV32ri, 1, DestReg+1).addImm(0);
           } else {