diff options
author | Chris Lattner <sabre@nondot.org> | 2004-11-16 18:40:52 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-11-16 18:40:52 +0000 |
commit | 2004d90f97c47cbf8d0260b582185fcad07e685f (patch) | |
tree | c2267275f05f8b142f1600b1ac783f8af7ef7062 /llvm | |
parent | 1b13a7cdb8d5e299da8ec62c2dd4d14e65e3509c (diff) | |
download | bcm5719-llvm-2004d90f97c47cbf8d0260b582185fcad07e685f.tar.gz bcm5719-llvm-2004d90f97c47cbf8d0260b582185fcad07e685f.zip |
Fix a major bug in the signed shr code, which apparently only breaks 134.perl!
llvm-svn: 17902
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/lib/Target/X86/X86CodeEmitter.cpp | 3 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86ISelSimple.cpp | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86CodeEmitter.cpp b/llvm/lib/Target/X86/X86CodeEmitter.cpp index eaa15419a8a..42946c29b9e 100644 --- a/llvm/lib/Target/X86/X86CodeEmitter.cpp +++ b/llvm/lib/Target/X86/X86CodeEmitter.cpp @@ -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; diff --git a/llvm/lib/Target/X86/X86ISelSimple.cpp b/llvm/lib/Target/X86/X86ISelSimple.cpp index e890e6bb2f9..89842a4e9f1 100644 --- a/llvm/lib/Target/X86/X86ISelSimple.cpp +++ b/llvm/lib/Target/X86/X86ISelSimple.cpp @@ -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 { |