Rework this conditional a bit.
authorEric Christopher <echristo@apple.com>
Wed, 31 Aug 2011 04:17:21 +0000 (04:17 +0000)
committerEric Christopher <echristo@apple.com>
Wed, 31 Aug 2011 04:17:21 +0000 (04:17 +0000)
Patch by Sanjoy Das

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

lib/Target/X86/X86ISelLowering.cpp

index 8c3aca147986b9156e308aeeda8b8b7fda9a63f4..0d454149301cbe03bfe08f1e745d1ff819cfe851 100644 (file)
@@ -521,12 +521,16 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM)
 
   setOperationAction(ISD::STACKSAVE,          MVT::Other, Expand);
   setOperationAction(ISD::STACKRESTORE,       MVT::Other, Expand);
-  setOperationAction(ISD::DYNAMIC_STACKALLOC,
-                     (Subtarget->is64Bit() ? MVT::i64 : MVT::i32),
-                     ((Subtarget->isTargetCOFF()
-                       && !Subtarget->isTargetEnvMacho()) ||
-                      EnableSegmentedStacks
-                      ? Custom : Expand));
+
+  if (Subtarget->isTargetCOFF() && !Subtarget->isTargetEnvMacho())
+    setOperationAction(ISD::DYNAMIC_STACKALLOC, Subtarget->is64Bit() ?
+                       MVT::i64 : MVT::i32, Custom);
+  else if (EnableSegmentedStacks)
+    setOperationAction(ISD::DYNAMIC_STACKALLOC, Subtarget->is64Bit() ?
+                       MVT::i64 : MVT::i32, Custom);
+  else
+    setOperationAction(ISD::DYNAMIC_STACKALLOC, Subtarget->is64Bit() ?
+                       MVT::i64 : MVT::i32, Expand);
 
   if (!UseSoftFloat && X86ScalarSSEf64) {
     // f32 and f64 use SSE.