diff options
| author | Chris Lattner <sabre@nondot.org> | 2005-01-19 17:24:34 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2005-01-19 17:24:34 +0000 |
| commit | 474aac4da92875cb2826b6654b90821b10ebf65b (patch) | |
| tree | 1abf83520ccd2bb56fe371ff7c15ef713f77a67b | |
| parent | 1cffa73f2a1726b82e53ec95f330ab3a07a712fd (diff) | |
| download | bcm5719-llvm-474aac4da92875cb2826b6654b90821b10ebf65b.tar.gz bcm5719-llvm-474aac4da92875cb2826b6654b90821b10ebf65b.zip | |
Fix a problem where were were literally selecting for INCREASED register
pressure, not decreases register pressure. Fix problem where we accidentally
swapped the operands of SHLD, which caused fourinarow to fail. This fixes
fourinarow.
llvm-svn: 19697
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelPattern.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/llvm/lib/Target/X86/X86ISelPattern.cpp b/llvm/lib/Target/X86/X86ISelPattern.cpp index 574cbf7654c..901077b24ad 100644 --- a/llvm/lib/Target/X86/X86ISelPattern.cpp +++ b/llvm/lib/Target/X86/X86ISelPattern.cpp @@ -1185,11 +1185,11 @@ bool ISel::EmitOrOpOp(SDOperand Op1, SDOperand Op2, unsigned DestReg) { } else if (RegSize != 8) { unsigned AReg, BReg; if (getRegPressure(ShlVal) > getRegPressure(ShrVal)) { - AReg = SelectExpr(ShrVal); BReg = SelectExpr(ShlVal); + AReg = SelectExpr(ShrVal); } else { - BReg = SelectExpr(ShlVal); AReg = SelectExpr(ShrVal); + BReg = SelectExpr(ShlVal); } unsigned ShAmt = SelectExpr(ShrAmt); BuildMI(BB, X86::MOV8rr, 1, X86::CL).addReg(ShAmt); @@ -1221,11 +1221,11 @@ bool ISel::EmitOrOpOp(SDOperand Op1, SDOperand Op2, unsigned DestReg) { } else if (RegSize != 8) { unsigned AReg, BReg; if (getRegPressure(ShlVal) > getRegPressure(ShrVal)) { - AReg = SelectExpr(ShrVal); - BReg = SelectExpr(ShlVal); + AReg = SelectExpr(ShlVal); + BReg = SelectExpr(ShrVal); } else { - BReg = SelectExpr(ShlVal); - AReg = SelectExpr(ShrVal); + BReg = SelectExpr(ShrVal); + AReg = SelectExpr(ShlVal); } unsigned ShAmt = SelectExpr(ShlAmt); BuildMI(BB, X86::MOV8rr, 1, X86::CL).addReg(ShAmt); @@ -1250,11 +1250,11 @@ bool ISel::EmitOrOpOp(SDOperand Op1, SDOperand Op2, unsigned DestReg) { } else if (RegSize != 8) { unsigned AReg, BReg; if (getRegPressure(ShlVal) > getRegPressure(ShrVal)) { - AReg = SelectExpr(ShrVal); BReg = SelectExpr(ShlVal); + AReg = SelectExpr(ShrVal); } else { - BReg = SelectExpr(ShlVal); AReg = SelectExpr(ShrVal); + BReg = SelectExpr(ShlVal); } unsigned Opc = RegSize == 16 ? X86::SHRD16rri8 : X86::SHRD32rri8; BuildMI(BB, Opc, 3, DestReg).addReg(AReg).addReg(BReg) |

