Use base AAPCS for varargs functions even for AAPCS-VFP CC
authorAnton Korobeynikov <asl@math.spbu.ru>
Sun, 29 Jan 2012 09:06:09 +0000 (09:06 +0000)
committerAnton Korobeynikov <asl@math.spbu.ru>
Sun, 29 Jan 2012 09:06:09 +0000 (09:06 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149194 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMISelLowering.cpp

index 3e8f2b011f5894d025c1a9256890fa98f0ca12ee..2f78f7a5ae828ce4ed1a034da8e2db68b19c5b6f 100644 (file)
@@ -1127,7 +1127,9 @@ CCAssignFn *ARMTargetLowering::CCAssignFnForNode(CallingConv::ID CC,
     return (Return ? RetCC_ARM_AAPCS : CC_ARM_AAPCS);
   }
   case CallingConv::ARM_AAPCS_VFP:
-    return (Return ? RetCC_ARM_AAPCS_VFP : CC_ARM_AAPCS_VFP);
+    if (!isVarArg)
+      return (Return ? RetCC_ARM_AAPCS_VFP : CC_ARM_AAPCS_VFP);
+    // Fallthrough
   case CallingConv::ARM_AAPCS:
     return (Return ? RetCC_ARM_AAPCS : CC_ARM_AAPCS);
   case CallingConv::ARM_APCS: