Use comments to document non-obvious code rather than
authorDan Gohman <gohman@apple.com>
Wed, 2 Jun 2010 19:13:40 +0000 (19:13 +0000)
committerDan Gohman <gohman@apple.com>
Wed, 2 Jun 2010 19:13:40 +0000 (19:13 +0000)
mailing list archives.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105341 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index bb80ace3c247f22f9eeffb2c5cc18a3f0e62f1cd..a322ad2aa25e8542f3603a1fee35b2276c547e0d 100644 (file)
@@ -980,6 +980,17 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM)
   setOperationAction(ISD::SSUBO, MVT::i32, Custom);
   setOperationAction(ISD::USUBO, MVT::i32, Custom);
   setOperationAction(ISD::SMULO, MVT::i32, Custom);
+
+  // Don't try to custom-lower 64-bit add-with-overflow and friends
+  // on x86-32; the x86 backend currently doesn't know how to handle them.
+  //
+  // This doesn't really fix anything because LegalizeTypes doesn't know
+  // how to handle them either.  We do get a better error message, though.
+  //
+  // This may not be hard to implement though.
+  // In fact you could even cheat, and turn the 64 bit add-with-overflow
+  // into a 65 bit add, with the top bit being used to compute the overflow
+  // flag.  That should then all get expanded out automagically.
   if (Subtarget->is64Bit()) {
     setOperationAction(ISD::SADDO, MVT::i64, Custom);
     setOperationAction(ISD::UADDO, MVT::i64, Custom);