diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 26 | 
1 files changed, 6 insertions, 20 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 9037ece8c9c..05cd3afa93e 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -132,26 +132,6 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM)    setLoadExtAction(ISD::SEXTLOAD, MVT::i1, Promote); -    setOperationAction(ISD::ADDC, MVT::i8, Custom); -    setOperationAction(ISD::ADDC, MVT::i16, Custom); -    setOperationAction(ISD::ADDC, MVT::i32, Custom); -    setOperationAction(ISD::ADDC, MVT::i64, Custom); -     -    setOperationAction(ISD::ADDE, MVT::i8, Custom); -    setOperationAction(ISD::ADDE, MVT::i16, Custom); -    setOperationAction(ISD::ADDE, MVT::i32, Custom); -    setOperationAction(ISD::ADDE, MVT::i64, Custom); - -    setOperationAction(ISD::SUBC, MVT::i8, Custom); -    setOperationAction(ISD::SUBC, MVT::i16, Custom); -    setOperationAction(ISD::SUBC, MVT::i32, Custom); -    setOperationAction(ISD::SUBC, MVT::i64, Custom); -     -    setOperationAction(ISD::SUBE, MVT::i8, Custom); -    setOperationAction(ISD::SUBE, MVT::i16, Custom); -    setOperationAction(ISD::SUBE, MVT::i32, Custom); -    setOperationAction(ISD::SUBE, MVT::i64, Custom); -        // We don't accept any truncstore of integer registers.    setTruncStoreAction(MVT::i64, MVT::i32, Expand);    setTruncStoreAction(MVT::i64, MVT::i16, Expand); @@ -275,6 +255,12 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM)      setOperationAction(ISD::UDIV, VT, Expand);      setOperationAction(ISD::SREM, VT, Expand);      setOperationAction(ISD::UREM, VT, Expand); +     +    // Add/Sub overflow ops with MVT::Flags are lowered to EFLAGS dependences. +    setOperationAction(ISD::ADDC, VT, Custom); +    setOperationAction(ISD::ADDE, VT, Custom); +    setOperationAction(ISD::SUBC, VT, Custom); +    setOperationAction(ISD::SUBE, VT, Custom);    }    setOperationAction(ISD::BR_JT            , MVT::Other, Expand);  | 

