[llvm-commits] [llvm-gcc-4.2] r132251 - /llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm.cpp

Bob Wilson bob.wilson at apple.com
Fri May 27 22:51:46 PDT 2011


Author: bwilson
Date: Sat May 28 00:51:46 2011
New Revision: 132251

URL: http://llvm.org/viewvc/llvm-project?rev=132251&view=rev
Log:
Fix check for APCS calling convention to enable byval argument passing.
The previous check did not handle the case where the default C calling
convention uses APCS.  Radar 7662569.

Modified:
    llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm.cpp

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm.cpp?rev=132251&r1=132250&r2=132251&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/llvm-arm.cpp Sat May 28 00:51:46 2011
@@ -2878,14 +2878,14 @@
 bool llvm_arm_should_pass_aggregate_using_byval_attr(tree TreeType,
                                                      const Type *Ty,
                                                      CallingConv::ID &CC) {
-  if (CC == CallingConv::ARM_APCS) {
+  if (CC == CallingConv::ARM_APCS ||
+      (CC == CallingConv::C && !TARGET_AAPCS_BASED)) {
     enum machine_mode Mode = TYPE_MODE(TreeType);
-    HOST_WIDE_INT Bytes =
-      (Mode == BLKmode) ? int_size_in_bytes(TreeType) : (int) GET_MODE_SIZE(Mode);
-
+    HOST_WIDE_INT Bytes = (Mode == BLKmode) ? int_size_in_bytes(TreeType) :
+      (int) GET_MODE_SIZE(Mode);
     return Bytes > 64;
-  } else
-    return false;
+  }
+  return false;
 }
 
 /* LLVM LOCAL end (ENTIRE FILE!)  */





More information about the llvm-commits mailing list