diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2007-09-26 00:45:55 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2007-09-26 00:45:55 +0000 |
| commit | 9b7f0e6eb4611e947c464ac7640e5a8b1e52151f (patch) | |
| tree | 0c2ca137ae2f080b8ccd635808fa79cd03fcaf11 /llvm/lib | |
| parent | e291f727e3db044b07846f90bd06ddd751400a88 (diff) | |
| download | bcm5719-llvm-9b7f0e6eb4611e947c464ac7640e5a8b1e52151f.tar.gz bcm5719-llvm-9b7f0e6eb4611e947c464ac7640e5a8b1e52151f.zip | |
translateX86CC updates the last two operands.
llvm-svn: 42333
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 1a8089688bf..f4e1cb11c93 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -3719,6 +3719,7 @@ SDOperand X86TargetLowering::LowerSETCC(SDOperand Op, SelectionDAG &DAG, SDOperand X86TargetLowering::LowerSETCC_New(SDOperand Op, SelectionDAG &DAG) { assert(Op.getValueType() == MVT::i8 && "SetCC type must be 8-bit integer"); + SDOperand Cond; SDOperand Op0 = Op.getOperand(0); SDOperand Op1 = Op.getOperand(1); SDOperand CC = Op.getOperand(2); @@ -3726,14 +3727,16 @@ SDOperand X86TargetLowering::LowerSETCC_New(SDOperand Op, SelectionDAG &DAG) { bool isFP = MVT::isFloatingPoint(Op.getOperand(1).getValueType()); unsigned X86CC; - SDOperand Cond = DAG.getNode(X86ISD::CMP_NEW, MVT::i32, Op0, Op1); if (translateX86CC(cast<CondCodeSDNode>(CC)->get(), isFP, X86CC, - Op0, Op1, DAG)) + Op0, Op1, DAG)) { + Cond = DAG.getNode(X86ISD::CMP_NEW, MVT::i32, Op0, Op1); return DAG.getNode(X86ISD::SETCC_NEW, MVT::i8, DAG.getConstant(X86CC, MVT::i8), Cond); + } assert(isFP && "Illegal integer SetCC!"); + Cond = DAG.getNode(X86ISD::CMP_NEW, MVT::i32, Op0, Op1); switch (SetCCOpcode) { default: assert(false && "Illegal floating point SetCC!"); case ISD::SETOEQ: { // !PF & ZF |

